Package: rdiff-backup
Version: 2.0.5-1~bpo10+1+b1
Severity: minor

Dear Maintainer,

in rdiff-backup 1.2.8-7 (buster) the man page synposis states:

        rdiff-backup [options] [[[user@]host1.foo]::source_directory] 
[[[user@]host2.foo]::destination_directory]

i.e. *if* a destination is specified then the destination directory
*must* be preceded by '::' and that worked as documented:

        lagane$ dpkg -l rdiff-backup | grep rdiff-backup
        ii  rdiff-backup   1.2.8-7      amd64        remote incremental backup
        lagane$ 
        lagane$ mkdir /tmp/src /tmp/dst
        lagane$ touch /tmp/src/file{1,2,3}
        lagane$ rdiff-backup lagane::/tmp/src ::/tmp/dst
        lagane$ 

Doubtlessly, many people have written backup scripts that call
rdiff-backup in the manner that the man page says they should.

In rdiff-backup 2.0.5-1 (bullseye + buster backports) the man page
states exactly the same synposis:

        rdiff-backup [options] [[[user@]host1.foo]::source_directory] 
[[[user@]host2.foo]::destination_directory]

However, now using the '::' prefix causes a crash with a python
stack dump:

        damson$ dpkg -l rdiff-backup | grep rdiff-backup
        ii  rdiff-backup   2.0.5-1~bpo10+1+b1 amd64        remote incremental 
backup
        damson$ mkdir /tmp/src /tmp/dst
        damson$ touch /tmp/src/file{1,2,3}
        damson$ rdiff-backup damson::/tmp/src ::/tmp/dst
        Exception 'No file host in 'b'::/tmp/dst''' raised of class '<class 
'rdiff_backup.SetConnections.SetConnectionsException'>':
          File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 395, 
in error_check_Main
            Main(arglist)
          File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 412, 
in Main
            cmdpairs = SetConnections.get_cmd_pairs(args, remote_schema, 
remote_cmd)
          File "/usr/lib/python3/dist-packages/rdiff_backup/SetConnections.py", 
line 67, in get_cmd_pairs
            desc_pairs = list(map(parse_file_desc, arglist))
          File "/usr/lib/python3/dist-packages/rdiff_backup/SetConnections.py", 
line 127, in parse_file_desc
            raise SetConnectionsException("No file host in '%s'" % file_desc)
        
        Traceback (most recent call last):
          File "/usr/bin/rdiff-backup", line 32, in <module>
            rdiff_backup.Main.error_check_Main(sys.argv[1:])
          File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 395, 
in error_check_Main
            Main(arglist)
          File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 412, 
in Main
            cmdpairs = SetConnections.get_cmd_pairs(args, remote_schema, 
remote_cmd)
          File "/usr/lib/python3/dist-packages/rdiff_backup/SetConnections.py", 
line 67, in get_cmd_pairs
            desc_pairs = list(map(parse_file_desc, arglist))
          File "/usr/lib/python3/dist-packages/rdiff_backup/SetConnections.py", 
line 127, in parse_file_desc
            raise SetConnectionsException("No file host in '%s'" % file_desc)
        rdiff_backup.SetConnections.SetConnectionsException: No file host in 
'b'::/tmp/dst''
        damson$ 

Without the '::' on the local destination it works fine:

        damson$ rdiff-backup damson::/tmp/src /tmp/dst
        damson$ 

Given that the man page synopsis has remained the same over multiple
versions of the tool itself, I assume that the upstream authors think
that '::' on a local target directory *should* still work, and as such
I think this is more serious than a minor error in the documention.

If I can provide any more information or test a new version then just
let me know.

Regards,

Alexis





-- System Information:
Debian Release: 10.10
  APT prefers oldstable
  APT policy: (500, 'oldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-17-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages rdiff-backup depends on:
ii  libc6                  2.28-10
ii  librsync1              0.9.7-10+b1
ii  python3                3.7.3-1
ii  python3-pkg-resources  40.8.0-1
ii  python3-setuptools     40.8.0-1

Versions of packages rdiff-backup recommends:
pn  python3-pylibacl  <none>
pn  python3-pyxattr   <none>

rdiff-backup suggests no packages.

-- no debconf information

Reply via email to