Mention that the -e COMMAND can contain options.
[rsync/rsync.git] / TODO
diff --git a/TODO b/TODO
index f299f16..704e579 100644 (file)
--- a/TODO
+++ b/TODO
@@ -2,6 +2,13 @@
 
 BUGS ---------------------------------------------------------------
 
 
 BUGS ---------------------------------------------------------------
 
+rsync-url barfs on upload
+
+  rsync foo rsync://localhost/transfer/
+
+  Fix the parser.
+
+
 There seems to be a bug with hardlinks
 
   mbp/2 build$ ls -l /tmp/a /tmp/b -i
 There seems to be a bug with hardlinks
 
   mbp/2 build$ ls -l /tmp/a /tmp/b -i
@@ -93,10 +100,28 @@ Progress indicator can produce corrupt output when transferring directories:
   main/binary-arm/misc/
 
 lchmod
   main/binary-arm/misc/
 
 lchmod
-
   I don't think we handle this properly on systems that don't have the
   call.
 
   I don't think we handle this properly on systems that don't have the
   call.
 
+Cross-test versions
+  Part of the regression suite should be making sure that we don't
+  break backwards compatibility: old clients vs new servers and so
+  on.  Ideally we would test the cross product of versions.  
+
+  It might be sufficient to test downloads from well-known public
+  rsync servers running different versions of rsync.  This will give
+  some testing and also be the most common case for having different
+  versions and not being able to upgrade.
+
+--no-blocking-io might be broken
+
+  in the same way as --no-whole-file; somebody needs to check.
+
+Do not rely on having a group called "nobody"
+
+  http://www.linuxbase.org/spec/refspecs/LSB_1.1.0/gLSB/usernames.html
+
+  On Debian it's "nogroup"
 
 DAEMON --------------------------------------------------------------
 
 
 DAEMON --------------------------------------------------------------
 
@@ -288,6 +313,15 @@ Hard-link handling
 
 IPv6
 
 
 IPv6
 
+  Put back the old socket code; if on a machine that does not properly
+  support the getaddrinfo API, then use it.  This is probably much
+  simpler than reimplementing it.  This might get us working again on
+  RedHat 5 and similar systems.  Although the Kame patch seems like a
+  good idea, in fact it is a much broader interface than the
+  relatively narrow "open by name", "accept and log" interface that
+  rsync uses internally, and it has the disadvantage of clashing with
+  half-arsed implementations of the API.
+
   Implement suggestions from http://www.kame.net/newsletter/19980604/
   and ftp://ftp.iij.ad.jp/pub/RFC/rfc2553.txt
 
   Implement suggestions from http://www.kame.net/newsletter/19980604/
   and ftp://ftp.iij.ad.jp/pub/RFC/rfc2553.txt
 
@@ -369,6 +403,21 @@ zlib
   do this is to just disable gzip (with a warning) when talking to old
   versions.
 
   do this is to just disable gzip (with a warning) when talking to old
   versions.
 
+
+logging
+
+  Perhaps flush stdout after each filename, so that people trying to
+  monitor progress in a log file can do so more easily.  See
+  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=48108
+
+  At the connections that just get a list of modules are not logged,
+  but they should be.
+
+  If a child of the rsync daemon dies with a signal, we should notice
+  that when we reap it and log a message.
+
+  Keep stderr and stdout properly separated (Debian #23626)
+
   After we get the @RSYNCD greeting from the server, we know it's
   version but we have not yet sent the command line, so we could just
   remove the -z option if the server is too old.  
   After we get the @RSYNCD greeting from the server, we know it's
   version but we have not yet sent the command line, so we could just
   remove the -z option if the server is too old.  
@@ -380,6 +429,10 @@ zlib
   that's a good tradeoff or not.
 
 
   that's a good tradeoff or not.
 
 
+rsyncd over ssh
+
+  There are already some patches to do this.
+
 proxy authentication
 
   Allow RSYNC_PROXY to be http://user:pass@proxy.foo:3128/, and do
 proxy authentication
 
   Allow RSYNC_PROXY to be http://user:pass@proxy.foo:3128/, and do
@@ -393,6 +446,16 @@ SOCKS
   Add --with-socks, and then perhaps a command-line option to put them
   on or off.  This might be more reliable than LD_PRELOAD hacks.
 
   Add --with-socks, and then perhaps a command-line option to put them
   on or off.  This might be more reliable than LD_PRELOAD hacks.
 
+FAT support
+
+  rsync to a FAT partition on a Unix machine doesn't work very well
+  at the moment.  I think we get errors about invalid filenames and 
+  perhaps also trying to do atomic renames.
+
+  I guess the code to do this is currently #ifdef'd on Windows; perhaps
+  we ought to intelligently fall back to it on Unix too.
+
+
 Better statistics:
 
   <Rasmus> mbp: hey, how about an rsync option that just gives you the
 Better statistics:
 
   <Rasmus> mbp: hey, how about an rsync option that just gives you the
@@ -438,6 +501,8 @@ chmod:
   the program.  For bonus points there would be a test case for the  
   parser.
 
   the program.  For bonus points there would be a test case for the  
   parser.
 
+  Possibly also --chown
+
   (Debian #23628)
 
 
   (Debian #23628)
 
 
@@ -498,7 +563,6 @@ String area code
   it's not (anymore), throw it out.
          
 
   it's not (anymore), throw it out.
          
 
-
 PLATFORMS ------------------------------------------------------------
 
 Win32
 PLATFORMS ------------------------------------------------------------
 
 Win32
@@ -514,6 +578,7 @@ Win32
   we are correct to call close(), because shutdown() discards
   untransmitted data.
 
   we are correct to call close(), because shutdown() discards
   untransmitted data.
 
+
 DEVELOPMENT ----------------------------------------------------------
 
 Splint
 DEVELOPMENT ----------------------------------------------------------
 
 Splint
@@ -604,6 +669,12 @@ Versions of read() and write() that corrupt the stream, or abruptly fail
 Separate makefile target to run rough tests -- or perhaps just run
 them every time?
 
 Separate makefile target to run rough tests -- or perhaps just run
 them every time?
 
+Test "refuse options" works
+
+  What about for --recursive?
+
+  If you specify an unrecognized option here, you should get an error.
+
 
 DOCUMENTATION --------------------------------------------------------
 
 
 DOCUMENTATION --------------------------------------------------------
 
@@ -697,7 +768,6 @@ internationalization
   get the manual translated first, because that's possibly more useful
   and at any rate demonstrates desire.
 
   get the manual translated first, because that's possibly more useful
   and at any rate demonstrates desire.
 
-
 rsyncsh 
 
    Write a small emulation of interactive ftp as a Pythonn program
 rsyncsh 
 
    Write a small emulation of interactive ftp as a Pythonn program