Hi,
I've found two weird things about openrsync that I thought I'd report:

First off, openrsync defaults to running (upstream) "rsync" for the
other end of the connection, even for local copies!  When upstream rsync
isn't installed (for example, if you're on a stock OpenBSD install), it
dies with a cryptic error message:

$ mkdir dir; echo hi > dir/file
$ openrsync dir dir2
openrsync: error: unexpected end of file
$ openrsync -vv dir dir2
openrsync: : exec[0] = rsync
openrsync: : exec[1] = --server
[...]

This can be worked around with --rsync-path=openrsync.
The examples in the manpage (which still refer to the binary as "rsync")
show that it can be used to copy local files around without any special
flags, so I assume this isn't intentional.

This is also confusing for downstream users of openrsync.  Due to the
recent controversies surrounding upstream rsync, some people are moving
to openrsync explicitly to avoid using upstream rsync - but this makes
them unwittingly use it anyways.


Second off, openrsync always treats the destination as a directory,
whereas upstream rsync can sometimes treat it as a file:

$ ls
$ echo hello > a
$ openrsync --rsync-path=openrsync -v a b
Transfer starting: 1 files
a
Transfer complete: 36 B sent, 85 B read, 6 B file size
$ ls -l
total 8
-rw-r--r--  1 dzwdz  wheel    6 Jun  6 00:34 a
drwxr-xr-x  2 dzwdz  wheel  512 Jun  6 00:34 b
$ cat b/a
hello

linux$ ls
linux$ echo hello > a
linux$ rsync -v a b
a

sent 86 bytes  received 35 bytes  242.00 bytes/sec
total size is 6  speedup is 0.05
linux$ ls -l
total 8
-rw-rw-r-- 1 dzwdz dzwdz 6 Jun  6 02:35 a
-rw-rw-r-- 1 dzwdz dzwdz 6 Jun  6 02:35 b
linux$ cat b
hello


I'm not sure if this is intentional or not.  If it is, maybe it deserves
a mention in CAVEATS?

Reply via email to