pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [pkgsrc-2026Q3] pkgsrc/net



Module Name:    pkgsrc
Committed By:   maya
Date:           Wed Nov 11 10:00:38 UTC 2026

Modified Files:
        pkgsrc/net/rrsync [pkgsrc-2026Q3]: Makefile
        pkgsrc/net/rsync [pkgsrc-2026Q3]: Makefile Makefile.common distinfo
Added Files:
        pkgsrc/net/rsync/patches [pkgsrc-2026Q3]: patch-syscall.c
            patch-testsuite_symlink-receiver-perms__test.py
Removed Files:
        pkgsrc/net/rrsync [pkgsrc-2026Q3]: distinfo

Log Message:
Pullup ticket #7352 - requested by taca
net/rsync: Security fix

Revisions pulled up:
- net/rrsync/Makefile                                           1.3
- net/rrsync/distinfo                                           deleted
- net/rsync/Makefile                                            1.137-1.138
- net/rsync/Makefile.common                                     1.2-1.4
- net/rsync/distinfo                                            1.69-1.71
- net/rsync/patches/patch-syscall.c                             1.1
- net/rsync/patches/patch-testsuite_symlink-receiver-perms__test.py 1.1

---
   Module Name: pkgsrc
   Committed By:        adam
   Date:                Tue Sep 22 06:44:46 UTC 2026

   Modified Files:
        pkgsrc/net/rsync: Makefile Makefile.common distinfo

   Log Message:
   rsync: updated to 3.5.1

   3.5.1

   PROTOCOL NUMBER:

   The protocol number was changed to 33.

   BUG FIXES:

   Fixed several path-handling regressions from 3.5.0. Explicit sender paths can again traverse symlinked ancestors without weakening confinement of paths found during recursive scans. Local and 
remote-shell --files-from paths are handled as operator-supplied paths rather than paths beneath the transfer root.
   Fixed access to /dev/stdin, /dev/stdout, /dev/stderr and /dev/fd/N when they refer to pipes or descriptors inside user namespaces. Reading batch data from a FIFO or process substitution works 
again.
   Restored --max-alloc=0 as a spelling for the parser's maximum allocation limit rather than disabling that limit.
   Fixed restricted-root paths in rrsync and detection of an inetd connection when a daemon is started with a local socket on standard input, as can happen under ADB without a PTY.
   Allowed --contimeout for daemon connections made through --rsh without applying it to ordinary remote-shell transfers.
   Tightened validation of partial-directory state and alternate-destination paths on the receiver. An alternate-destination leaf symlink is no longer followed as a basis file.
   Fixed undefined shifts in the bundled zlib code and a FreeBSD amd64 build failure involving the assembly and SIMD objects.

   ENHANCEMENTS:

   Added support for internationalised domain names when the required library is available at build time.
   Added the number of 4 KiB logical blocks touched to --stats. This counts distinct logical file regions written by the receiver, not physical disk blocks or disk I/O. It is reported when both peers 
negotiate protocol 33.

   BUILD AND TESTS:

   install-strip now honours STRIP including during cross-compilation.
   Updated platform tests and fleet-test coverage for the 3.5.0 fixes.

---
   Module Name: pkgsrc
   Committed By:        wiz
   Date:                Tue Sep 22 20:47:13 UTC 2026

   Modified Files:
        pkgsrc/net/rrsync: distinfo

   Log Message:
   rrsync: update distinfo for rsync update

---
   Module Name: pkgsrc
   Committed By:        kim
   Date:                Tue Sep 22 22:59:31 UTC 2026

   Modified Files:
        pkgsrc/net/rsync: Makefile.common

   Log Message:
   rsync: Add DISTINFO_FILE and PATCHDIR to Makefile.common

   Try to avoid net/rrsync/distinfo going stale on rsync updates.

---
   Module Name: pkgsrc
   Committed By:        kim
   Date:                Tue Sep 22 23:03:52 UTC 2026

   Modified Files:
        pkgsrc/net/rrsync: Makefile
   Removed Files:
        pkgsrc/net/rrsync: distinfo

   Log Message:
   rrsync: No local distinfo anymore, and no patching needed

---
   Module Name: pkgsrc
   Committed By:        wiz
   Date:                Wed Nov  4 16:56:24 UTC 2026

   Modified Files:
        pkgsrc/net/rsync: Makefile.common distinfo

   Log Message:
   rsync: update to 3.5.2.

   # NEWS for rsync 3.5.2 (4 Nov 2026)

   ## Changes in this version:

   ### BUG FIXES:
   - Fixed interrupted `--append` and `--inplace` transfers writing the final
     256 KiB buffer twice. An interrupted destination now remains a clean prefix
     which the next transfer can resume or repair.
   - Fixed uploads through `rrsync` when the destination file already exists.
     Existing files are now reached beneath a pinned parent directory instead of
     being passed as an unwritable `/proc/self/fd/N` destination.
   - Fixed poor matching performance on large sparse and repeated-block files
     when duplicate checksum chains exhausted the search limit. Valid basis
     blocks are no longer hidden behind duplicate entries.
   - Bounded strong-checksum work when a malicious receiver supplies weak
     checksums that collide with consecutive rolling windows
     (CVE-2026-119741).
   - Prevented the `--inplace` matcher from advancing its aligned basis index
     beyond the available checksum entries. This avoids signed overflow on large
     source files when the peer supplies a small block count.
   - Recovered from failed hard-link creation without aborting or hanging the
     generator. Remaining members fall back to a fresh hard-link group when the
     original destination inode cannot accept another link.
   - Prevented an out-of-bounds write while invalidating a sender checksum after
     a file read error when the negotiated checksum length is zero.
   - Fixed a daemon receiver stack overflow when queued deletion output reached
     `--max-alloc`. Quiet daemon transfers no longer queue deletion messages
     unless the client requested them.
   - Fixed a `--files-from` pull from a subdirectory of a daemon module, which
     read each listed file from the module root instead.  It could send, and with
     `--remove-source-files` delete, a same-named file the module's filter
     excludes.
   - Fixed password files whose first line is empty. The parser no longer skips
     the empty line and uses a later password.
   - Escaped terminal control characters in filenames and diagnostics written to
     standard output, standard error and log files while preserving printable
     text in the active locale.
   - Preserved Cygwin and MSYS2 UNC roots during ownership-checked path walks.
   - Restored daemon startup from accepted named Unix sockets on standard input,
     including filesystem and Linux abstract sockets used for socket activation.
     Unnamed local socket pairs remain non-daemon channels.
   - Fixed forward-DNS hostname entries in daemon `hosts allow` and `hosts deny`
     lists for IPv6 peers. Address comparison is now binary and family-aware.
   - Preserved Unix symlink permissions on systems which require `fchmodat()` to
     change the mode of a symlink rather than its target.
   - Restored builds on systems without `O_CLOEXEC` or `O_DIRECTORY`, including
     Solaris 10.

   ### ENHANCEMENTS:
   - Added `--nice` to adjust CPU and I/O scheduling priorities for local and
     remote rsync processes. Daemon clients and rrsync cannot raise server-side
     priorities.
   - Human-readable output now uses dynamic precision to show three significant
     digits and appends `i` to binary unit suffixes. `--progress` uses the same
     formatter for transfer rates and labels byte counts and rates with `B` and
     `B/s`. Example output includes `46.7M`, `48.8Mi`, `782,448B` and
     `113,295B/s`. File-list, created-directory and skipped-deletion counts also
     use thousands separators.
   - Added `--delay-symlinks` to defer creating new and changed symlinks until
     other transferred files are in place. It implies `--no-inc-recursive` and
     requires protocol 29 or newer with support on the receiving side. It cannot
     be combined with `--remove-source-files`, `--hard-links`, `--compare-dest`,
     `--copy-dest` or `--link-dest`.

---
   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.2 -r1.2.2.1 pkgsrc/net/rrsync/Makefile
cvs rdiff -u -r1.1 -r0 pkgsrc/net/rrsync/distinfo
cvs rdiff -u -r1.136 -r1.136.2.1 pkgsrc/net/rsync/Makefile
cvs rdiff -u -r1.1 -r1.1.2.1 pkgsrc/net/rsync/Makefile.common
cvs rdiff -u -r1.68 -r1.68.2.1 pkgsrc/net/rsync/distinfo
cvs rdiff -u -r0 -r1.1.2.2 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/rrsync/Makefile
diff -u pkgsrc/net/rrsync/Makefile:1.2 pkgsrc/net/rrsync/Makefile:1.2.2.1
--- pkgsrc/net/rrsync/Makefile:1.2      Sat Aug 15 06:57:50 2026
+++ pkgsrc/net/rrsync/Makefile  Wed Nov 11 10:00:38 2026
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2 2026/08/15 06:57:50 wiz Exp $
+# $NetBSD: Makefile,v 1.2.2.1 2026/11/11 10:00:38 maya Exp $
 
 .include "../../net/rsync/Makefile.common"
 
@@ -25,6 +25,9 @@ SUBST_SED.paths=      -e "s|'/usr/bin/rsync'|
 
 INSTALLATION_DIRS=     bin ${PKGMANDIR}/man1
 
+# The files rsync patches are not extracted for rrsync
+do-patch:
+
 do-install:
        ${INSTALL_SCRIPT} ${WRKSRC}/support/rrsync \
                ${DESTDIR}${PREFIX}/bin/rrsync

Index: pkgsrc/net/rsync/Makefile
diff -u pkgsrc/net/rsync/Makefile:1.136 pkgsrc/net/rsync/Makefile:1.136.2.1
--- pkgsrc/net/rsync/Makefile:1.136     Sat Aug 15 06:57:50 2026
+++ pkgsrc/net/rsync/Makefile   Wed Nov 11 10:00:38 2026
@@ -1,7 +1,9 @@
-# $NetBSD: Makefile,v 1.136 2026/08/15 06:57:50 wiz Exp $
+# $NetBSD: Makefile,v 1.136.2.1 2026/11/11 10:00:38 maya Exp $
 
 .include "Makefile.common"
 
+PKGREVISION=   1
+
 COMMENT=       Network file distribution/synchronisation utility
 
 USE_TOOLS+=            bash:run
@@ -24,10 +26,18 @@ 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"
 .include "../../devel/xxhash/buildlink3.mk"
 .include "../../devel/zlib/buildlink3.mk"

Index: pkgsrc/net/rsync/Makefile.common
diff -u pkgsrc/net/rsync/Makefile.common:1.1 pkgsrc/net/rsync/Makefile.common:1.1.2.1
--- pkgsrc/net/rsync/Makefile.common:1.1        Sat Aug 15 06:57:50 2026
+++ pkgsrc/net/rsync/Makefile.common    Wed Nov 11 10:00:38 2026
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile.common,v 1.1 2026/08/15 06:57:50 wiz Exp $
+# $NetBSD: Makefile.common,v 1.1.2.1 2026/11/11 10:00:38 maya Exp $
 #
 # used by net/rsync/Makefile
 # used by net/rrsync/Makefile
 
-DISTNAME=      rsync-3.5.0
+DISTNAME=      rsync-3.5.2
 CATEGORIES=    net
 MASTER_SITES=  http://rsync.samba.org/ftp/rsync/
 MASTER_SITES+= http://rsync.samba.org/ftp/rsync/old-versions/
@@ -11,3 +11,6 @@ MASTER_SITES+=        http://rsync.samba.org/ft
 MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
 HOMEPAGE=      https://rsync.samba.org/
 LICENSE=       gnu-gpl-v3
+
+DISTINFO_FILE= ${.CURDIR}/../../net/rsync/distinfo
+PATCHDIR=      ${.CURDIR}/../../net/rsync/patches

Index: pkgsrc/net/rsync/distinfo
diff -u pkgsrc/net/rsync/distinfo:1.68 pkgsrc/net/rsync/distinfo:1.68.2.1
--- pkgsrc/net/rsync/distinfo:1.68      Thu Aug 13 06:17:23 2026
+++ pkgsrc/net/rsync/distinfo   Wed Nov 11 10:00:38 2026
@@ -1,7 +1,9 @@
-$NetBSD: distinfo,v 1.68 2026/08/13 06:17:23 wiz Exp $
+$NetBSD: distinfo,v 1.68.2.1 2026/11/11 10:00:38 maya Exp $
 
-BLAKE2s (rsync-3.5.0.tar.gz) = cbeec5e81787e407a26e9a9e18c95d4e75344e0ce86c3e9fef12b127b49ee808
-SHA512 (rsync-3.5.0.tar.gz) = 6c5bada017e4e5f5b451058e2d1863174a1807796525ef4188c1f40358ccbdd36604fd2275dceb1cc6a95ac04da211501553353026c48594c5a79eedb27ce68d
-Size (rsync-3.5.0.tar.gz) = 1892222 bytes
+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.2.2
--- /dev/null   Wed Nov 11 10:00:38 2026
+++ pkgsrc/net/rsync/patches/patch-syscall.c    Wed Nov 11 10:00:38 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-syscall.c,v 1.1.2.2 2026/11/11 10:00:38 maya 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.2.2
--- /dev/null   Wed Nov 11 10:00:38 2026
+++ pkgsrc/net/rsync/patches/patch-testsuite_symlink-receiver-perms__test.py    Wed Nov 11 10:00:38 2026
@@ -0,0 +1,48 @@
+$NetBSD: patch-testsuite_symlink-receiver-perms__test.py,v 1.1.2.2 2026/11/11 10:00:38 maya 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