From 8ea997b6315ec29d6ddd5bf1232ef46dfb18151f Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 18:14:32 +0200 Subject: Adding debian version 3.2.7-1. Signed-off-by: Daniel Baumann --- ...oting_of_tilde_when_its_a_destination_arg.patch | 22 +++++++ debian/patches/disable_reconfigure_req.diff | 41 ++++++++++++ debian/patches/fix_rrsync_man_generation.patch | 25 ++++++++ debian/patches/perl_shebang.patch | 73 ++++++++++++++++++++++ debian/patches/series | 6 ++ debian/patches/skip_devices_test.patch | 73 ++++++++++++++++++++++ .../trust_the_sender_on_a_local_transfer.patch | 34 ++++++++++ 7 files changed, 274 insertions(+) create mode 100644 debian/patches/avoid_quoting_of_tilde_when_its_a_destination_arg.patch create mode 100644 debian/patches/disable_reconfigure_req.diff create mode 100644 debian/patches/fix_rrsync_man_generation.patch create mode 100644 debian/patches/perl_shebang.patch create mode 100644 debian/patches/series create mode 100644 debian/patches/skip_devices_test.patch create mode 100644 debian/patches/trust_the_sender_on_a_local_transfer.patch (limited to 'debian/patches') diff --git a/debian/patches/avoid_quoting_of_tilde_when_its_a_destination_arg.patch b/debian/patches/avoid_quoting_of_tilde_when_its_a_destination_arg.patch new file mode 100644 index 0000000..66e2b52 --- /dev/null +++ b/debian/patches/avoid_quoting_of_tilde_when_its_a_destination_arg.patch @@ -0,0 +1,22 @@ +From 537499408948f4e3dd048a861eb58f211e4546f8 Mon Sep 17 00:00:00 2001 +From: Wayne Davison +Date: Sat, 5 Nov 2022 09:14:33 -0700 +Subject: [PATCH] Avoid quoting of tilde when it's a destination arg. + +--- + options.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/options.c b/options.c +index d38bbe8db..cfa3e1dcd 100644 +--- a/options.c ++++ b/options.c +@@ -2510,7 +2510,7 @@ char *safe_arg(const char *opt, const char *arg) + char *ret; + if (!protect_args && old_style_args < 2 && (!old_style_args || (!is_filename_arg && opt != SPLIT_ARG_WHEN_OLD))) { + const char *f; +- if (!trust_sender_args && *arg == '~' ++ if (*arg == '~' && is_filename_arg && !am_sender && !trust_sender_args + && ((relative_paths && !strstr(arg, "/./")) + || !strchr(arg, '/'))) { + extras++; diff --git a/debian/patches/disable_reconfigure_req.diff b/debian/patches/disable_reconfigure_req.diff new file mode 100644 index 0000000..412eb20 --- /dev/null +++ b/debian/patches/disable_reconfigure_req.diff @@ -0,0 +1,41 @@ +Description: Remove need to run reconfigure target +Author: Samuel Henrique +Forwarded: not-needed +Index: rsync/Makefile.in +=================================================================== +--- rsync.orig/Makefile.in ++++ rsync/Makefile.in +@@ -210,15 +210,6 @@ configure.sh config.h.in: configure.ac a + else \ + echo "config.h.in has CHANGED."; \ + fi +- @if test -f configure.sh.old || test -f config.h.in.old; then \ +- if test "$(MAKECMDGOALS)" = reconfigure; then \ +- echo 'Continuing with "make reconfigure".'; \ +- else \ +- echo 'You may need to run:'; \ +- echo ' make reconfigure'; \ +- exit 1; \ +- fi \ +- fi + + .PHONY: reconfigure + reconfigure: configure.sh +@@ -232,17 +223,6 @@ restatus: + Makefile: Makefile.in config.status configure.sh config.h.in + @if test -f Makefile; then cp -p Makefile Makefile.old; else touch Makefile.old; fi + @./config.status +- @if diff Makefile Makefile.old >/dev/null 2>&1; then \ +- echo "Makefile is unchanged."; \ +- rm Makefile.old; \ +- else \ +- if test "$(MAKECMDGOALS)" = reconfigure; then \ +- echo 'Continuing with "make reconfigure".'; \ +- else \ +- echo "Makefile updated -- rerun your make command."; \ +- exit 1; \ +- fi \ +- fi + + stunnel-rsyncd.conf: $(srcdir)/stunnel-rsyncd.conf.in Makefile + sed 's;\@bindir\@;$(bindir);g' <$(srcdir)/stunnel-rsyncd.conf.in >stunnel-rsyncd.conf diff --git a/debian/patches/fix_rrsync_man_generation.patch b/debian/patches/fix_rrsync_man_generation.patch new file mode 100644 index 0000000..ffbe4ff --- /dev/null +++ b/debian/patches/fix_rrsync_man_generation.patch @@ -0,0 +1,25 @@ +Description: Fix manpage installation for rrsync + Otherwise we would get "ERROR: support/rrsync.1 cannot be created." + I'm not confident this is the best approach on solving this issue, + but I know this works with no regressions. + This patch needs to be reviewed before being submitted to upstream. +Author: Samuel Henrique +Index: rsync/maybe-make-man +=================================================================== +--- rsync.orig/maybe-make-man ++++ rsync/maybe-make-man +@@ -22,12 +22,8 @@ if [ ! -f "$flagfile" ]; then + cp -p "$srcdir/$outname" . + exit 0 + else +- echo "ERROR: $outname cannot be created." +- if [ -f "$HOME/build_farm/build_test.fns" ]; then +- exit 0 # No exit errorno to avoid a build failure in the samba build farm +- else +- exit 1 +- fi ++ "$srcdir/md-convert" "$srcdir/$inname" ++ cp -p "$srcdir/$outname" . + fi + fi + fi diff --git a/debian/patches/perl_shebang.patch b/debian/patches/perl_shebang.patch new file mode 100644 index 0000000..21aa930 --- /dev/null +++ b/debian/patches/perl_shebang.patch @@ -0,0 +1,73 @@ +Description: Removes usage of env on perl shebang as per Debian Policy ยง 10.4 +Author: Samuel Henrique +Forwarded: not-needed +Index: rsync/support/cvs2includes +=================================================================== +--- rsync.orig/support/cvs2includes ++++ rsync/support/cvs2includes +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # + # This script finds all CVS/Entries files in the current directory and below + # and creates a local .cvsinclude file with non-inherited rules including each +Index: rsync/support/file-attr-restore +=================================================================== +--- rsync.orig/support/file-attr-restore ++++ rsync/support/file-attr-restore +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # This script will parse the output of "find ARG [ARG...] -ls" and + # apply (at your discretion) the permissions, owner, and group info + # it reads onto any existing files and dirs (it doesn't try to affect +Index: rsync/support/files-to-excludes +=================================================================== +--- rsync.orig/support/files-to-excludes ++++ rsync/support/files-to-excludes +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # This script takes an input of filenames and outputs a set of + # include/exclude directives that can be used by rsync to copy + # just the indicated files using an --exclude-from=FILE option. +Index: rsync/support/logfilter +=================================================================== +--- rsync.orig/support/logfilter ++++ rsync/support/logfilter +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Filter the rsync daemon log messages by module name. The log file can be + # in either syslog format or rsync's own log-file format. Note that the + # MODULE_NAME parameter is used in a regular-expression match in order to +Index: rsync/support/lsh +=================================================================== +--- rsync.orig/support/lsh ++++ rsync/support/lsh +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # This is a "local shell" command that works like a remote shell but only for + # the local host. See the usage message for more details. + +Index: rsync/support/mnt-excl +=================================================================== +--- rsync.orig/support/mnt-excl ++++ rsync/support/mnt-excl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # This script takes a command-line arg of a source directory + # that will be passed to rsync, and generates a set of excludes + # that will exclude all mount points from the list. This is +Index: rsync/support/rsyncstats +=================================================================== +--- rsync.orig/support/rsyncstats ++++ rsync/support/rsyncstats +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # + # This script parses the default logfile format produced by rsync when running + # as a daemon with transfer logging enabled. It also parses a slightly tweaked diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..e91520a --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,6 @@ +disable_reconfigure_req.diff +skip_devices_test.patch +perl_shebang.patch +fix_rrsync_man_generation.patch +avoid_quoting_of_tilde_when_its_a_destination_arg.patch +trust_the_sender_on_a_local_transfer.patch diff --git a/debian/patches/skip_devices_test.patch b/debian/patches/skip_devices_test.patch new file mode 100644 index 0000000..5cb4644 --- /dev/null +++ b/debian/patches/skip_devices_test.patch @@ -0,0 +1,73 @@ +Author: Samuel Henrique +Description: Skip "devices" test as it fails on kfreebsd and hurd + Error log: + /----- devices log follows + Testing for symlinks using 'test -h' + Let's try re-running the script under fakeroot... + Testing for symlinks using 'test -h' + cD+++++++++ block + cD+++++++++ block2 + default_perms_for_dir: sys_acl_get_file(., ACL_TYPE_DEFAULT): Operation not supported, falling back on umask + cDc.T...... block3 + sending incremental file list + delta-transmission disabled for local transfer or --whole-file + .d..t...... ./ + cDc.t...... block + cDc........ block2 + cD+++++++++ block3 + hD+++++++++ block3.5 => block3 + cD+++++++++ char + cD+++++++++ char2 + cD+++++++++ char3 + cS+++++++++ fifo + total: matches=0 hash_hits=0 false_alarms=0 data=0 + + sent 160 bytes received 117 bytes 554.00 bytes/sec + total size is 0 speedup is 0.00 + check how the directory listings compare with diff: + + + + /<>/rsynctee -aii /<>/testtmp/devices/rsync.out --link-dest=/<>/testtmp/devices/to + /<>/testtmp/devices/from/ /<>/testtmp/devices/chk/ + rsync: failed to hard-link /<>/testtmp/devices/to/fifo with fifo: Invalid cross-device link (1073741842) + cd ./ + hD block + hD block2 + hD block3 + hD block3.5 + hD char + hD char2 + hD char3 + cSc........ fifo + rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3] + + cat + + diff -u /<>/testtmp/devices/rsync.chk /<>/testtmp/devices/rsync.out + /--- /<>/testtmp/devices/rsync.chk 2019-10-15 01:26:43.000000000 +0000 + /+++ /<>/testtmp/devices/rsync.out 2019-10-15 01:26:43.000000000 +0000 + @@ -6,4 +6,4 @@ + hD char + hD char2 + hD char3 + -hS fifo + +cSc........ fifo + + test_fail test 5 failed + + echo test 5 failed + test 5 failed + + exit 1 + /bin/fakeauth: Error 1 for child 7541 + /bin/settrans: Error 1 for child 7540 + ----- devices log ends + FAIL devices +Index: rsync/testsuite/devices.test +=================================================================== +--- rsync.orig/testsuite/devices.test ++++ rsync/testsuite/devices.test +@@ -9,6 +9,9 @@ + + . "$suitedir/rsync.fns" + ++# Debian patch to skip this test as it fails on kfreebsd and hurd ++test_skipped "Patched by Debian to skip as it fails on kfreebsd and hurd" ++ + # Build some hardlinks + + case $0 in diff --git a/debian/patches/trust_the_sender_on_a_local_transfer.patch b/debian/patches/trust_the_sender_on_a_local_transfer.patch new file mode 100644 index 0000000..8ec443d --- /dev/null +++ b/debian/patches/trust_the_sender_on_a_local_transfer.patch @@ -0,0 +1,34 @@ +From f1e3434b59dd3dfbf4b6faf8dbc81dd068adc305 Mon Sep 17 00:00:00 2001 +From: Wayne Davison +Date: Thu, 1 Dec 2022 20:16:51 -0800 +Subject: [PATCH] Trust the sender on a local transfer. + +--- + main.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/main.c b/main.c +index 9f36904d..0c60b86d 100644 +--- a/main.c ++++ b/main.c +@@ -89,6 +89,8 @@ extern int backup_dir_len; + extern int basis_dir_cnt; + extern int default_af_hint; + extern int stdout_format_has_i; ++extern int trust_sender_filter; ++extern int trust_sender_args; + extern struct stats stats; + extern char *stdout_format; + extern char *logfile_format; +@@ -1471,8 +1473,10 @@ static int start_client(int argc, char *argv[]) + } + + /* A local transfer doesn't unbackslash anything, so leave the args alone. */ +- if (local_server) ++ if (local_server) { + old_style_args = 2; ++ trust_sender_args = trust_sender_filter = 1; ++ } + + if (!rsync_port && remote_argc && !**remote_argv) /* Turn an empty arg into a dot dir. */ + *remote_argv = "."; -- cgit v1.2.3