pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/net/rsync
Module Name: pkgsrc
Committed By: wiz
Date: Fri Nov 6 11:52:40 UTC 2026
Modified Files:
pkgsrc/net/rsync: Makefile distinfo
Added Files:
pkgsrc/net/rsync/patches: patch-syscall.c
patch-testsuite_symlink-receiver-perms__test.py
Log Message:
rsync: update to 3.5.2nb1.
add upstream patch fixing a problem with receiving symlinks.
Bump PKGREVISION.
Add test status.
To generate a diff of this commit:
cvs rdiff -u -r1.137 -r1.138 pkgsrc/net/rsync/Makefile
cvs rdiff -u -r1.70 -r1.71 pkgsrc/net/rsync/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/net/rsync/patches/patch-syscall.c \
pkgsrc/net/rsync/patches/patch-testsuite_symlink-receiver-perms__test.py
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/net/rsync/Makefile
diff -u pkgsrc/net/rsync/Makefile:1.137 pkgsrc/net/rsync/Makefile:1.138
--- pkgsrc/net/rsync/Makefile:1.137 Tue Sep 22 06:44:46 2026
+++ pkgsrc/net/rsync/Makefile Fri Nov 6 11:52:39 2026
@@ -1,7 +1,9 @@
-# $NetBSD: Makefile,v 1.137 2026/09/22 06:44:46 adam Exp $
+# $NetBSD: Makefile,v 1.138 2026/11/06 11:52:39 wiz Exp $
.include "Makefile.common"
+PKGREVISION= 1
+
COMMENT= Network file distribution/synchronisation utility
USE_TOOLS+= bash:run
@@ -24,9 +26,16 @@ SUBST_FILES.paths= rsync.1 rsyncd.conf.5
SUBST_SED.paths= -e 's|/etc/rsyncd|${PKG_SYSCONFDIR}/rsyncd|g'
SUBST_SED.paths+= -e 's|/usr/bin/rsync|${PREFIX}/bin/rsync|g'
+# test status as of 3.5.2
+# 242 passed
+# 6 failed
+# 129 skipped
+
.include "options.mk"
.include "../../archivers/lz4/buildlink3.mk"
+# needed for testing
+#.include "../../lang/python/tool.mk"
.include "../../converters/libiconv/buildlink3.mk"
.include "../../devel/libidn2/buildlink3.mk"
.include "../../devel/popt/buildlink3.mk"
Index: pkgsrc/net/rsync/distinfo
diff -u pkgsrc/net/rsync/distinfo:1.70 pkgsrc/net/rsync/distinfo:1.71
--- pkgsrc/net/rsync/distinfo:1.70 Wed Nov 4 16:56:24 2026
+++ pkgsrc/net/rsync/distinfo Fri Nov 6 11:52:39 2026
@@ -1,7 +1,9 @@
-$NetBSD: distinfo,v 1.70 2026/11/04 16:56:24 wiz Exp $
+$NetBSD: distinfo,v 1.71 2026/11/06 11:52:39 wiz Exp $
BLAKE2s (rsync-3.5.2.tar.gz) = 93505151c66ae1cc16324f5a944bc5ad888c3bbdc63217b62e91b959c23a4707
SHA512 (rsync-3.5.2.tar.gz) = 751bf76d759d101d2b3a8f800d7512df1973753e0438885e75d4bdbda842e9f2cf265616aaebd48a1a6740903444b29338e54c66c793c3f2c080eb08802f8c14
Size (rsync-3.5.2.tar.gz) = 1977884 bytes
SHA1 (patch-Makefile.in) = 701577726bdb3b91c97bba47c6be331505630a72
SHA1 (patch-acls.c) = 9be60c0c1abedc961fa95bba2bb23d802a09bc62
+SHA1 (patch-syscall.c) = f7c7b513023a80cfb391540ad37c03c52f37ae79
+SHA1 (patch-testsuite_symlink-receiver-perms__test.py) = 16cb062c288b778443970e564323b5a4ad79b3d8
Added files:
Index: pkgsrc/net/rsync/patches/patch-syscall.c
diff -u /dev/null pkgsrc/net/rsync/patches/patch-syscall.c:1.1
--- /dev/null Fri Nov 6 11:52:40 2026
+++ pkgsrc/net/rsync/patches/patch-syscall.c Fri Nov 6 11:52:39 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-syscall.c,v 1.1 2026/11/06 11:52:39 wiz Exp $
+
+https://github.com/RsyncProject/rsync/commit/ea645201fefbba7f6b6b22b621856dba3c01cdd3
+
+--- syscall.c.orig 2026-10-26 11:16:36.000000000 +0000
++++ syscall.c
+@@ -1806,6 +1806,8 @@ int do_chmod(const char *path, mode_t mode)
+ code = 1;
+ # elif defined AT_FDCWD && defined AT_SYMLINK_NOFOLLOW
+ code = fchmodat(AT_FDCWD, path, mode & CHMOD_BITS, AT_SYMLINK_NOFOLLOW);
++ if (code < 0 && (errno == ENOTSUP || errno == EOPNOTSUPP || errno == ENOSYS))
++ code = 1;
+ # else
+ code = 1;
+ # endif
Index: pkgsrc/net/rsync/patches/patch-testsuite_symlink-receiver-perms__test.py
diff -u /dev/null pkgsrc/net/rsync/patches/patch-testsuite_symlink-receiver-perms__test.py:1.1
--- /dev/null Fri Nov 6 11:52:40 2026
+++ pkgsrc/net/rsync/patches/patch-testsuite_symlink-receiver-perms__test.py Fri Nov 6 11:52:39 2026
@@ -0,0 +1,48 @@
+$NetBSD: patch-testsuite_symlink-receiver-perms__test.py,v 1.1 2026/11/06 11:52:39 wiz Exp $
+
+https://github.com/RsyncProject/rsync/commit/ea645201fefbba7f6b6b22b621856dba3c01cdd3
+
+--- testsuite/symlink-receiver-perms_test.py.orig 2026-11-06 11:47:24.607409717 +0000
++++ testsuite/symlink-receiver-perms_test.py
+@@ -0,0 +1,41 @@
++#!/usr/bin/env python3
++
++import os
++import stat
++import struct
++
++from rsyncfns import SCRATCHDIR, makepath, run_rsync, test_fail
++
++source = SCRATCHDIR / 'source'
++destination = SCRATCHDIR / 'destination'
++makepath(source)
++makepath(destination)
++target = destination / 'target'
++target.write_text('target contents\n')
++target.chmod(0o640)
++links = [('link', 'target'), ('dangling', 'missing')]
++for name, link in links:
++ os.symlink(link, source / name)
++
++batch = SCRATCHDIR / 'symlinks.batch'
++run_rsync('-rlp', '--checksum-seed=1', f'--only-write-batch={batch}',
++ f'{source}/', f'{destination}/')
++
++# Supply BSD-style link modes without relying on the source filesystem
++mode = stat.S_IMODE((source / 'link').lstat().st_mode)
++wanted = 0o400 if mode != 0o400 else 0o755
++encoded_mode = struct.pack('<I', 0o120000 | mode)
++data = batch.read_bytes()
++if data.count(encoded_mode) != 1:
++ test_fail('expected one shared symlink mode in the batch')
++batch.write_bytes(data.replace(encoded_mode, struct.pack('<I', 0o120000 | wanted)))
++
++for _ in range(2):
++ run_rsync('-rlp', f'--read-batch={batch}', f'{destination}/')
++ for name, link in links:
++ if not (destination / name).is_symlink() or os.readlink(destination / name) != link:
++ test_fail(f'{name}: symlink was not preserved')
++ if stat.S_IMODE(target.stat().st_mode) != 0o640 or target.read_text() != 'target contents\n':
++ test_fail('symlink chmod changed the target')
++ if (destination / 'missing').exists():
++ test_fail('dangling symlink target was created')
Home |
Main Index |
Thread Index |
Old Index