Skip to content

Commit f1bd144

Browse files
authored
Merge branch 'master' into fix/logical-bugs
2 parents dd6a330 + 7fef1c8 commit f1bd144

396 files changed

Lines changed: 41373 additions & 2349 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/actionlint.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
name: Lint GitHub Actions workflows
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
# Static-check the workflow YAML with rhysd/actionlint. Catches missing
48
# secrets, bad expressions, expression-type errors, unsupported runner
59
# images, and (via embedded shellcheck) common pitfalls in `run:` scripts.
@@ -14,7 +18,7 @@ on:
1418
- '.github/actionlint.yaml'
1519
- '.github/actionlint.yml'
1620
pull_request:
17-
branches: [ master ]
21+
types: [opened, synchronize, reopened]
1822
paths:
1923
- '.github/workflows/*.yml'
2024
- '.github/actionlint.yaml'

.github/workflows/almalinux-8-build.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
name: Test rsync on AlmaLinux 8
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
# Older-LTS coverage on the Fedora/RHEL family to help with backporting
48
# security fixes. AlmaLinux 8 is the RHEL 8 rebuild and is the oldest
59
# active LTS in this family (RHEL 8 full support runs to 2029).
@@ -13,12 +17,12 @@ on:
1317
- '.github/workflows/*.yml'
1418
- '!.github/workflows/almalinux-8-build.yml'
1519
pull_request:
16-
branches: [ master ]
20+
types: [opened, synchronize, reopened]
1721
paths-ignore:
1822
- '.github/workflows/*.yml'
1923
- '!.github/workflows/almalinux-8-build.yml'
2024
schedule:
21-
- cron: '42 8 * * 1'
25+
- cron: '42 8 * * *'
2226

2327
jobs:
2428
test:
@@ -48,7 +52,8 @@ jobs:
4852
attr libattr-devel acl libacl-devel \
4953
zstd libzstd-devel \
5054
lz4 lz4-devel \
51-
xxhash xxhash-devel
55+
xxhash xxhash-devel \
56+
libidn2 libidn2-devel
5257
alternatives --set python3 /usr/bin/python3.9
5358
pip3 install commonmark
5459
- name: configure
@@ -62,7 +67,7 @@ jobs:
6267
# crtimes-not-supported skip matches the other Linux jobs;
6368
# daemon-chroot-acl and proxy-response-line-too-long skip because
6469
# the default (secure) transport opens no listening socket.
65-
run: RSYNC_EXPECT_SKIPPED=crtimes,daemon-access-ip,daemon-chroot-acl,proxy-response-line-too-long,recv-discard-nullderef make check
70+
run: RSYNC_EXPECT_SKIPPED=@testsuite/skiplist/common.txt,@testsuite/skiplist/linux.txt,@testsuite/skiplist/almalinux-8.txt make check
6671
- name: check (TCP daemon transport)
6772
# Second run exercising the real loopback-TCP daemon path.
6873
run: ./runtests.py --rsync-bin="$PWD/rsync" --use-tcp -j 8

.github/workflows/android-static-build.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
name: Build static rsync for Android
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
# Cross-compiles statically-linked rsync binaries with the Android NDK,
48
# suitable for dropping onto a phone (adb push / Termux) with no shared
59
# libraries. arm64-v8a covers all modern phones; armeabi-v7a covers older
@@ -16,7 +20,7 @@ on:
1620
- '.github/workflows/*.yml'
1721
- '!.github/workflows/android-static-build.yml'
1822
pull_request:
19-
branches: [ master ]
23+
types: [opened, synchronize, reopened]
2024
paths-ignore:
2125
- '.github/workflows/*.yml'
2226
- '!.github/workflows/android-static-build.yml'
@@ -76,7 +80,7 @@ jobs:
7680
# checksums and its bundled zlib.
7781
./configure --host=${{ matrix.triple }} --build=x86_64-pc-linux-gnu \
7882
--enable-ipv6 \
79-
--disable-zstd --disable-lz4 --disable-xxhash --disable-openssl \
83+
--disable-zstd --disable-lz4 --disable-xxhash --disable-openssl --disable-idn \
8084
--disable-iconv --disable-iconv-open \
8185
--disable-acl-support --disable-xattr-support \
8286
--disable-md2man --disable-roll-simd \

.github/workflows/asan-build.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
name: rsync ASan+UBSan (clang)
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
on:
48
push:
59
branches: [ master ]
610
paths-ignore:
711
- '.github/workflows/*.yml'
812
- '!.github/workflows/asan-build.yml'
913
pull_request:
10-
branches: [ master ]
14+
types: [opened, synchronize, reopened]
1115
paths-ignore:
1216
- '.github/workflows/*.yml'
1317
- '!.github/workflows/asan-build.yml'
@@ -41,7 +45,7 @@ jobs:
4145
- name: prep
4246
run: |
4347
sudo apt-get update
44-
sudo apt-get install -y clang acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev openssl
48+
sudo apt-get install -y clang acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev libidn2-dev openssl
4549
echo "/usr/local/bin" >>"$GITHUB_PATH"
4650
- name: configure
4751
# -DNDEBUG builds as a shipped release does (assert() compiled out), so

.github/workflows/coverage.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
name: Coverage (Ubuntu)
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
on:
48
push:
59
branches: [ master ]
610
paths-ignore:
711
- '.github/workflows/*.yml'
812
- '!.github/workflows/coverage.yml'
913
pull_request:
10-
branches: [ master ]
14+
types: [opened, synchronize, reopened]
1115
paths-ignore:
1216
- '.github/workflows/*.yml'
1317
- '!.github/workflows/coverage.yml'
@@ -26,7 +30,7 @@ jobs:
2630
- name: prep
2731
run: |
2832
sudo apt-get update
29-
sudo apt-get install -y acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev python3-cmarkgfm openssl gcovr
33+
sudo apt-get install -y acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev libidn2-dev python3-cmarkgfm openssl gcovr
3034
echo "/usr/local/bin" >>"$GITHUB_PATH"
3135
- name: configure
3236
run: ./configure --enable-coverage --with-rrsync

.github/workflows/cygwin-build.yml

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
name: Test rsync on Cygwin
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
on:
48
push:
59
branches: [ master ]
610
paths-ignore:
711
- '.github/workflows/*.yml'
812
- '!.github/workflows/cygwin-build.yml'
913
pull_request:
10-
branches: [ master ]
14+
types: [opened, synchronize, reopened]
1115
paths-ignore:
1216
- '.github/workflows/*.yml'
1317
- '!.github/workflows/cygwin-build.yml'
1418
schedule:
15-
- cron: '42 8 * * 1'
19+
- cron: '42 8 * * *'
1620

1721
jobs:
1822
test:
@@ -23,11 +27,49 @@ jobs:
2327
with:
2428
fetch-depth: 0
2529
- name: cygwin
26-
run: choco install -y --no-progress cygwin cyg-get
27-
- name: prep
2830
run: |
29-
cyg-get make autoconf automake gcc-core attr libattr-devel python39 python39-pip libzstd-devel liblz4-devel libssl-devel libxxhash0 libxxhash-devel
30-
echo "C:/tools/cygwin/bin" >>$Env:GITHUB_PATH
31+
$setup = Join-Path $Env:RUNNER_TEMP 'setup-x86_64.exe'
32+
$sums = Join-Path $Env:RUNNER_TEMP 'cygwin-sha512.sum'
33+
$packages = 'make,autoconf,automake,gcc-core,attr,libattr-devel,python39,python39-pip,libzstd-devel,liblz4-devel,libssl-devel,libxxhash0,libxxhash-devel,libidn2-devel'
34+
35+
Invoke-WebRequest https://cygwin.com/setup-x86_64.exe -OutFile $setup
36+
Invoke-WebRequest https://cygwin.com/sha512.sum -OutFile $sums
37+
38+
$sum = Select-String -LiteralPath $sums -Pattern '^[0-9a-fA-F]{128}\s+\*?setup-x86_64\.exe$' | Select-Object -First 1
39+
if (-not $sum) {
40+
throw 'setup-x86_64.exe is missing from Cygwin sha512.sum'
41+
}
42+
$expected = ($sum.Line -split '\s+')[0]
43+
$actual = (Get-FileHash -LiteralPath $setup -Algorithm SHA512).Hash
44+
if ($actual -ine $expected) {
45+
throw 'Cygwin setup SHA-512 mismatch'
46+
}
47+
48+
$arguments = @(
49+
'--quiet-mode',
50+
'--no-desktop',
51+
'--no-startmenu',
52+
'--no-shortcuts',
53+
'--root', 'C:\tools\cygwin',
54+
'--local-package-dir', (Join-Path $Env:RUNNER_TEMP 'cygwin-packages'),
55+
'--site', 'https://mirrors.kernel.org/sourceware/cygwin/',
56+
'--packages', $packages
57+
)
58+
$install = Start-Process -FilePath $setup -ArgumentList $arguments -Wait -PassThru -NoNewWindow
59+
if ($install.ExitCode -ne 0) {
60+
exit $install.ExitCode
61+
}
62+
63+
$bash = 'C:\tools\cygwin\bin\bash.exe'
64+
if (-not (Test-Path -LiteralPath $bash)) {
65+
throw 'Cygwin setup did not install bash'
66+
}
67+
& $bash -lc 'command -v make aclocal gcc python3 >/dev/null'
68+
if ($LASTEXITCODE -ne 0) {
69+
throw 'Cygwin setup did not install all required build tools'
70+
}
71+
72+
echo 'C:/tools/cygwin/bin' >>$Env:GITHUB_PATH
3173
- name: commonmark
3274
run: bash -c 'python3 -mpip install --user commonmark'
3375
- name: configure
@@ -43,10 +85,9 @@ jobs:
4385
# (rsyncfns.py drives xattrs via getfattr/setfattr from the `attr`
4486
# package installed above), verified on a real Cygwin host. The real
4587
# chown/devices tests still skip (need root/mknod), as do the
46-
# RESOLVE_BENEATH symlink-race tests. symlink-dirlink-basis also now
47-
# RUNS (the #915 non-daemon basis open uses a plain do_open, restoring
48-
# following an in-tree dir-symlink basis without RESOLVE_BENEATH).
49-
run: bash -c 'RSYNC_EXPECT_SKIPPED=acls-default,acls-depth,acls,bare-do-open-symlink-race,chdir-symlink-race,chown,daemon-access-ip,daemon-chroot-acl,devices,dir-sgid,open-noatime,protected-regular,proxy-response-line-too-long,recv-discard-nullderef,sender-flist-symlink-leak,simd-checksum make check'
88+
# RESOLVE_BENEATH symlink-race tests. Cygwin runs non-root, so the
89+
# namecvt empty-response regression can run despite its common root skip.
90+
run: bash -c 'RSYNC_EXPECT_SKIPPED=@testsuite/skiplist/common.txt,@testsuite/skiplist/cygwin.txt,-daemon-namecvt-empty-response make check'
5091
- name: check (TCP daemon transport)
5192
# Second run with daemon tests over a real loopback rsyncd; the default
5293
# 'make check' above uses the secure stdio-pipe transport.

.github/workflows/fleettest.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
name: Test fleettest harness
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
# Bitrot check for testsuite/fleettest.py (the developer fleet CI harness).
48
# fleettest is meant to be run by developers on a modern Ubuntu box, so this
59
# job runs only on ubuntu-latest: it stands up a one-host "fleet" of two
@@ -12,11 +16,17 @@ on:
1216
paths:
1317
- 'testsuite/fleettest.py'
1418
- '.github/workflows/fleettest.yml'
19+
- 'runtests.py'
20+
- 'testsuite/skiplist/**'
21+
- 'testsuite/skiplist-spec_test.py'
1522
pull_request:
16-
branches: [ master ]
23+
types: [opened, synchronize, reopened]
1724
paths:
1825
- 'testsuite/fleettest.py'
1926
- '.github/workflows/fleettest.yml'
27+
- 'runtests.py'
28+
- 'testsuite/skiplist/**'
29+
- 'testsuite/skiplist-spec_test.py'
2030
workflow_dispatch:
2131
schedule:
2232
- cron: '17 7 * * 1'
@@ -33,7 +43,7 @@ jobs:
3343
run: |
3444
sudo apt-get update
3545
sudo apt-get install -y gcc g++ gawk autoconf automake \
36-
acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev \
46+
acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev libidn2-dev \
3747
python3-cmarkgfm openssl rsync openssh-server
3848
- name: set up ssh to localhost
3949
run: |

.github/workflows/freebsd-build.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
name: Test rsync on FreeBSD
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
on:
48
push:
59
branches: [ master ]
610
paths-ignore:
711
- '.github/workflows/*.yml'
812
- '!.github/workflows/freebsd-build.yml'
913
pull_request:
10-
branches: [ master ]
14+
types: [opened, synchronize, reopened]
1115
paths-ignore:
1216
- '.github/workflows/*.yml'
1317
- '!.github/workflows/freebsd-build.yml'
@@ -31,7 +35,7 @@ jobs:
3135
pkg install -y bash autotools m4 devel/xxhash zstd liblz4 python3 archivers/liblz4 git
3236
run: |
3337
freebsd-version
34-
./configure --with-rrsync -disable-zstd --disable-md2man --disable-xxhash --disable-lz4
38+
./configure --with-rrsync -disable-zstd --disable-md2man --disable-xxhash --disable-lz4 --disable-idn
3539
make
3640
./rsync --version
3741
make check

.github/workflows/macos-build.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
name: Test rsync on macOS
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
on:
48
push:
59
branches: [ master ]
610
paths-ignore:
711
- '.github/workflows/*.yml'
812
- '!.github/workflows/macos-build.yml'
913
pull_request:
10-
branches: [ master ]
14+
types: [opened, synchronize, reopened]
1115
paths-ignore:
1216
- '.github/workflows/*.yml'
1317
- '!.github/workflows/macos-build.yml'
1418
schedule:
15-
- cron: '42 8 * * 1'
19+
- cron: '42 8 * * *'
1620

1721
jobs:
1822
test:
@@ -24,7 +28,7 @@ jobs:
2428
fetch-depth: 0
2529
- name: prep
2630
run: |
27-
brew install automake openssl xxhash zstd lz4
31+
brew install automake openssl xxhash zstd lz4 libidn2
2832
pip3 install --user --break-system-packages commonmark
2933
echo "$(brew --prefix)/bin" >>"$GITHUB_PATH"
3034
- name: configure
@@ -44,7 +48,7 @@ jobs:
4448
# chown-fake / devices-fake / xattrs / xattrs-hlink now RUN on macOS
4549
# (rsyncfns.py drives xattrs via the `xattr` command), verified on a
4650
# real macOS host, so they're no longer in the skip set.
47-
run: sudo RSYNC_EXPECT_SKIPPED=acls-default,acls-depth,chmod-temp-dir,daemon-access-ip,daemon-chroot-acl,dir-sgid,open-noatime,preallocate,protected-regular,proxy-response-line-too-long,recv-discard-nullderef,simd-checksum,sparse make check
51+
run: sudo RSYNC_EXPECT_SKIPPED=@testsuite/skiplist/common.txt,@testsuite/skiplist/macos.txt make check
4852
- name: check (TCP daemon transport)
4953
# Second run with daemon tests over a real loopback rsyncd; the default
5054
# 'make check' above uses the secure stdio-pipe transport.

.github/workflows/netbsd-build.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
name: Test rsync on NetBSD
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
5+
cancel-in-progress: true
6+
37
on:
48
push:
59
branches: [ master ]
610
paths-ignore:
711
- '.github/workflows/*.yml'
812
- '!.github/workflows/netbsd-build.yml'
913
pull_request:
10-
branches: [ master ]
14+
types: [opened, synchronize, reopened]
1115
paths-ignore:
1216
- '.github/workflows/*.yml'
1317
- '!.github/workflows/netbsd-build.yml'
@@ -32,7 +36,7 @@ jobs:
3236
ln -sf /usr/pkg/bin/python3.12 /usr/pkg/bin/python3
3337
run: |
3438
uname -a
35-
./configure --with-rrsync --disable-zstd --disable-md2man --disable-xxhash --disable-lz4
39+
./configure --with-rrsync --disable-zstd --disable-md2man --disable-xxhash --disable-lz4 --disable-idn
3640
make
3741
./rsync --version
3842
make check

0 commit comments

Comments
 (0)