Skip to content

Commit 80a4d91

Browse files
authored
Merge branch 'main' into sort-debug-keys
2 parents dd59b59 + 06d843f commit 80a4d91

File tree

100 files changed

+2428
-1637
lines changed

Some content is hidden

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

100 files changed

+2428
-1637
lines changed

.devcontainer/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ RUN apt-get update \
1717
libcap-dev \
1818
libexpect-perl \
1919
libselinux1-dev \
20+
libsystemd-dev \
2021
python3-pyinotify \
2122
quilt \
2223
texinfo \

.github/workflows/CICD.yml

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ jobs:
149149
shell: bash
150150
run: |
151151
RUSTDOCFLAGS="-Dwarnings" cargo doc ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }} --no-deps --workspace --document-private-items
152-
- uses: DavidAnson/markdownlint-cli2-action@v21
152+
- uses: DavidAnson/markdownlint-cli2-action@v22
153153
with:
154154
fix: "true"
155155
globs: |
@@ -546,12 +546,12 @@ jobs:
546546
previous_multisize=$(cat dl/size-result.json | jq -r '.[] | .multisize')
547547
check 'multicall binary' "$multisize" "$previous_multisize" 'size-result.json'
548548
- name: Upload the individual size result
549-
uses: actions/upload-artifact@v5
549+
uses: actions/upload-artifact@v6
550550
with:
551551
name: individual-size-result
552552
path: individual-size-result.json
553553
- name: Upload the size result
554-
uses: actions/upload-artifact@v5
554+
uses: actions/upload-artifact@v6
555555
with:
556556
name: size-result
557557
path: size-result.json
@@ -585,7 +585,7 @@ jobs:
585585
- { os: ubuntu-latest , target: x86_64-unknown-redox , features: feat_os_unix_redox , use-cross: redoxer , skip-tests: true }
586586
- { os: ubuntu-latest , target: wasm32-unknown-unknown , default-features: false, features: uucore/format, skip-tests: true, skip-package: true, skip-publish: true }
587587
- { os: macos-latest , target: aarch64-apple-darwin , features: feat_os_macos, workspace-tests: true } # M1 CPU
588-
# PR #7964: Mac should still build even if the feature is not enabled. Do not publish this.
588+
# PR #7964: Mac should still build even if the feature is not enabled. Do not publish this.
589589
- { os: macos-latest , target: aarch64-apple-darwin , workspace-tests: true, skip-publish: true } # M1 CPU
590590
- { os: macos-latest , target: x86_64-apple-darwin , features: feat_os_macos, workspace-tests: true }
591591
- { os: windows-latest , target: i686-pc-windows-msvc , features: feat_os_windows }
@@ -820,7 +820,7 @@ jobs:
820820
env:
821821
RUST_BACKTRACE: "1"
822822
- name: Archive executable artifacts
823-
uses: actions/upload-artifact@v5
823+
uses: actions/upload-artifact@v6
824824
with:
825825
name: ${{ env.PROJECT_NAME }}-${{ matrix.job.target }}${{ steps.vars.outputs.ARTIFACTS_SUFFIX }}
826826
path: target/${{ matrix.job.target }}/release/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}
@@ -920,17 +920,17 @@ jobs:
920920
HASH=$(sha1sum '${{ steps.vars.outputs.TEST_SUMMARY_FILE }}' | cut --delim=" " -f 1)
921921
echo "HASH=${HASH}" >> $GITHUB_OUTPUT
922922
- name: Reserve SHA1/ID of 'test-summary'
923-
uses: actions/upload-artifact@v5
923+
uses: actions/upload-artifact@v6
924924
with:
925925
name: "${{ steps.summary.outputs.HASH }}"
926926
path: "${{ steps.vars.outputs.TEST_SUMMARY_FILE }}"
927927
- name: Reserve test results summary
928-
uses: actions/upload-artifact@v5
928+
uses: actions/upload-artifact@v6
929929
with:
930930
name: busybox-test-summary
931931
path: "${{ steps.vars.outputs.TEST_SUMMARY_FILE }}"
932932
- name: Upload json results
933-
uses: actions/upload-artifact@v5
933+
uses: actions/upload-artifact@v6
934934
with:
935935
name: busybox-result.json
936936
path: ${{ steps.vars.outputs.TEST_SUMMARY_FILE }}
@@ -1013,17 +1013,17 @@ jobs:
10131013
HASH=$(sha1sum '${{ steps.vars.outputs.TEST_SUMMARY_FILE }}' | cut --delim=" " -f 1)
10141014
echo "HASH=${HASH}" >> $GITHUB_OUTPUT
10151015
- name: Reserve SHA1/ID of 'test-summary'
1016-
uses: actions/upload-artifact@v5
1016+
uses: actions/upload-artifact@v6
10171017
with:
10181018
name: "${{ steps.summary.outputs.HASH }}"
10191019
path: "${{ steps.vars.outputs.TEST_SUMMARY_FILE }}"
10201020
- name: Reserve test results summary
1021-
uses: actions/upload-artifact@v5
1021+
uses: actions/upload-artifact@v6
10221022
with:
10231023
name: toybox-test-summary
10241024
path: "${{ steps.vars.outputs.TEST_SUMMARY_FILE }}"
10251025
- name: Upload json results
1026-
uses: actions/upload-artifact@v5
1026+
uses: actions/upload-artifact@v6
10271027
with:
10281028
name: toybox-result.json
10291029
path: ${{ steps.vars.outputs.TEST_SUMMARY_FILE }}
@@ -1099,7 +1099,9 @@ jobs:
10991099
11001100
case '${{ matrix.job.os }}' in
11011101
ubuntu-latest)
1102-
sudo apt-get -y update ; sudo apt-get -y install libselinux1-dev
1102+
# selinux and systemd headers needed to build tests
1103+
sudo apt-get -y update
1104+
sudo apt-get -y install libselinux1-dev libsystemd-dev
11031105
# pinky is a tool to show logged-in users from utmp, and gecos fields from /etc/passwd.
11041106
# In GitHub Action *nix VMs, no accounts log in, even the "runner" account that runs the commands, and "system boot" entry is missing.
11051107
# The account also has empty gecos fields.
@@ -1213,7 +1215,7 @@ jobs:
12131215
uses: lima-vm/lima-actions/setup@v1
12141216
id: lima-actions-setup
12151217
- name: Cache ~/.cache/lima
1216-
uses: actions/cache@v4
1218+
uses: actions/cache@v5
12171219
with:
12181220
path: ~/.cache/lima
12191221
key: lima-${{ steps.lima-actions-setup.outputs.version }}

.github/workflows/GnuTests.yml

Lines changed: 52 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ env:
2727
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
2828
TEST_FULL_SUMMARY_FILE: 'gnu-full-result.json'
2929
TEST_ROOT_FULL_SUMMARY_FILE: 'gnu-root-full-result.json'
30+
TEST_STTY_FULL_SUMMARY_FILE: 'gnu-stty-full-result.json'
3031
TEST_SELINUX_FULL_SUMMARY_FILE: 'selinux-gnu-full-result.json'
3132
TEST_SELINUX_ROOT_FULL_SUMMARY_FILE: 'selinux-root-gnu-full-result.json'
3233

@@ -137,30 +138,58 @@ jobs:
137138
path_GNU='gnu'
138139
path_UUTILS='uutils'
139140
bash "uutils/util/run-gnu-test.sh" run-root
141+
140142
- name: Extract testing info from individual logs (run as root) into JSON
141143
shell: bash
142144
run : |
143145
path_UUTILS='uutils'
144146
python uutils/util/gnu-json-result.py gnu/tests > ${{ env.TEST_ROOT_FULL_SUMMARY_FILE }}
145147
148+
### This shell has been changed from "bash" to this command
149+
### "script" will start a pty and the -q command removes the "script" initiation log
150+
### the -e flag makes it propagate the error code and -c runs the command in a pty
151+
### the primary purpose of this change is to run the tty GNU tests
152+
### The reason its separated from the rest of the tests is because one test can corrupt the other
153+
### tests through the use of the shared terminal and it changes the environment that the other
154+
### tests are run in, which can cause different results.
155+
- name: Run GNU stty tests
156+
shell: 'script -q -e -c "bash {0}"'
157+
run: |
158+
## Run GNU root tests
159+
path_GNU='gnu'
160+
path_UUTILS='uutils'
161+
bash "uutils/util/run-gnu-test.sh" run-tty
162+
163+
- name: Extract testing info from individual logs (stty) into JSON
164+
shell: bash
165+
run : |
166+
path_UUTILS='uutils'
167+
python uutils/util/gnu-json-result.py gnu/tests > ${{ env.TEST_STTY_FULL_SUMMARY_FILE }}
168+
146169
### Upload artifacts
147170
- name: Upload full json results
148-
uses: actions/upload-artifact@v5
171+
uses: actions/upload-artifact@v6
149172
with:
150173
name: gnu-full-result
151174
path: ${{ env.TEST_FULL_SUMMARY_FILE }}
152175
- name: Upload root json results
153-
uses: actions/upload-artifact@v5
176+
uses: actions/upload-artifact@v6
154177
with:
155178
name: gnu-root-full-result
156179
path: ${{ env.TEST_ROOT_FULL_SUMMARY_FILE }}
180+
- name: Upload stty json results
181+
uses: actions/upload-artifact@v6
182+
with:
183+
name: gnu-stty-full-result
184+
path: ${{ env.TEST_STTY_FULL_SUMMARY_FILE }}
185+
157186
- name: Compress test logs
158187
shell: bash
159188
run : |
160189
# Compress logs before upload (fails otherwise)
161190
gzip gnu/tests/*/*.log
162191
- name: Upload test logs
163-
uses: actions/upload-artifact@v5
192+
uses: actions/upload-artifact@v6
164193
with:
165194
name: test-logs
166195
path: |
@@ -215,7 +244,7 @@ jobs:
215244
uses: lima-vm/lima-actions/setup@v1
216245
id: lima-actions-setup
217246
- name: Cache ~/.cache/lima
218-
uses: actions/cache@v4
247+
uses: actions/cache@v5
219248
with:
220249
path: ~/.cache/lima
221250
key: lima-${{ steps.lima-actions-setup.outputs.version }}
@@ -289,12 +318,12 @@ jobs:
289318
# Copy the test directory now
290319
rsync -v -a -e ssh lima-default:~/work/gnu/tests/ ./gnu/tests-selinux/
291320
- name: Upload SELinux json results
292-
uses: actions/upload-artifact@v5
321+
uses: actions/upload-artifact@v6
293322
with:
294323
name: selinux-gnu-full-result
295324
path: ${{ env.TEST_SELINUX_FULL_SUMMARY_FILE }}
296325
- name: Upload SELinux root json results
297-
uses: actions/upload-artifact@v5
326+
uses: actions/upload-artifact@v6
298327
with:
299328
name: selinux-root-gnu-full-result
300329
path: ${{ env.TEST_SELINUX_ROOT_FULL_SUMMARY_FILE }}
@@ -304,7 +333,7 @@ jobs:
304333
# Compress logs before upload (fails otherwise)
305334
gzip gnu/tests-selinux/*/*.log
306335
- name: Upload SELinux test logs
307-
uses: actions/upload-artifact@v5
336+
uses: actions/upload-artifact@v6
308337
with:
309338
name: selinux-test-logs
310339
path: |
@@ -347,25 +376,32 @@ jobs:
347376
workflow_conclusion: completed ## continually recalibrates to last commit of default branch with a successful GnuTests (ie, "self-heals" from GnuTest regressions, but needs more supervision for/of regressions)
348377
path: "reference"
349378
- name: Download full json results
350-
uses: actions/download-artifact@v6
379+
uses: actions/download-artifact@v7
351380
with:
352381
name: gnu-full-result
353382
path: results
354383
merge-multiple: true
355384
- name: Download root json results
356-
uses: actions/download-artifact@v6
385+
uses: actions/download-artifact@v7
357386
with:
358387
name: gnu-root-full-result
359388
path: results
360389
merge-multiple: true
390+
- name: Download stty json results
391+
uses: actions/download-artifact@v7
392+
with:
393+
name: gnu-stty-full-result
394+
path: results
395+
merge-multiple: true
396+
361397
- name: Download selinux json results
362-
uses: actions/download-artifact@v6
398+
uses: actions/download-artifact@v7
363399
with:
364400
name: selinux-gnu-full-result
365401
path: results
366402
merge-multiple: true
367403
- name: Download selinux root json results
368-
uses: actions/download-artifact@v6
404+
uses: actions/download-artifact@v7
369405
with:
370406
name: selinux-root-gnu-full-result
371407
path: results
@@ -380,7 +416,7 @@ jobs:
380416
path_UUTILS='uutils'
381417
382418
json_count=$(ls -l results/*.json | wc -l)
383-
if [[ "$json_count" -ne 4 ]]; then
419+
if [[ "$json_count" -ne 5 ]]; then
384420
echo "::error ::Failed to download all results json files (expected 4 files, found $json_count); failing early"
385421
ls -lR results || true
386422
exit 1
@@ -414,17 +450,17 @@ jobs:
414450
HASH=$(sha1sum '${{ steps.vars.outputs.TEST_SUMMARY_FILE }}' | cut --delim=" " -f 1)
415451
outputs HASH
416452
- name: Upload SHA1/ID of 'test-summary'
417-
uses: actions/upload-artifact@v5
453+
uses: actions/upload-artifact@v6
418454
with:
419455
name: "${{ steps.summary.outputs.HASH }}"
420456
path: "${{ steps.vars.outputs.TEST_SUMMARY_FILE }}"
421457
- name: Upload test results summary
422-
uses: actions/upload-artifact@v5
458+
uses: actions/upload-artifact@v6
423459
with:
424460
name: test-summary
425461
path: "${{ steps.vars.outputs.TEST_SUMMARY_FILE }}"
426462
- name: Upload aggregated json results
427-
uses: actions/upload-artifact@v5
463+
uses: actions/upload-artifact@v6
428464
with:
429465
name: aggregated-result
430466
path: ${{ steps.vars.outputs.AGGREGATED_SUMMARY_FILE }}
@@ -476,7 +512,7 @@ jobs:
476512
fi
477513
- name: Upload comparison log (for GnuComment workflow)
478514
if: success() || failure() # run regardless of prior step success/failure
479-
uses: actions/upload-artifact@v5
515+
uses: actions/upload-artifact@v6
480516
with:
481517
name: comment
482518
path: reference/comment/

.github/workflows/android.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ jobs:
8585
free -mh
8686
df -Th
8787
- name: Restore AVD cache
88-
uses: actions/cache/restore@v4
88+
uses: actions/cache/restore@v5
8989
id: avd-cache
9090
continue-on-error: true
9191
with:
@@ -127,7 +127,7 @@ jobs:
127127
util/android-commands.sh init "${{ matrix.arch }}" "${{ matrix.api-level }}" "${{ env.TERMUX }}"
128128
- name: Save AVD cache
129129
if: steps.avd-cache.outputs.cache-hit != 'true'
130-
uses: actions/cache/save@v4
130+
uses: actions/cache/save@v5
131131
with:
132132
path: |
133133
~/.android/avd/*
@@ -143,7 +143,7 @@ jobs:
143143
trim: true
144144
- name: Restore rust cache
145145
id: rust-cache
146-
uses: actions/cache/restore@v4
146+
uses: actions/cache/restore@v5
147147
with:
148148
path: ~/__rust_cache__
149149
# The version vX at the end of the key is just a development version to avoid conflicts in
@@ -184,13 +184,13 @@ jobs:
184184
df -Th
185185
- name: Save rust cache
186186
if: steps.rust-cache.outputs.cache-hit != 'true'
187-
uses: actions/cache/save@v4
187+
uses: actions/cache/save@v5
188188
with:
189189
path: ~/__rust_cache__
190190
key: ${{ matrix.arch }}_${{ matrix.target}}_${{ steps.read_rustc_hash.outputs.content }}_${{ hashFiles('**/Cargo.toml', '**/Cargo.lock') }}_v3
191191
- name: archive any output (error screenshots)
192192
if: always()
193-
uses: actions/upload-artifact@v5
193+
uses: actions/upload-artifact@v6
194194
with:
195195
name: test_output_${{ env.AVD_CACHE_KEY }}
196196
path: output

.github/workflows/benchmarks.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,6 @@ jobs:
5050
with:
5151
persist-credentials: false
5252

53-
- name: Install system dependencies
54-
shell: bash
55-
run: |
56-
sudo apt-get -y update
57-
sudo apt-get -y install libselinux1-dev
58-
5953
- uses: dtolnay/rust-toolchain@stable
6054

6155
- uses: Swatinem/rust-cache@v2

.github/workflows/code-quality.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ jobs:
255255
run: npm install -g cspell
256256

257257
- name: Cache pre-commit environments
258-
uses: actions/cache@v4
258+
uses: actions/cache@v5
259259
with:
260260
path: ~/.cache/pre-commit
261261
key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}

.github/workflows/documentation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
uses: dtolnay/rust-toolchain@stable
3535

3636
- name: Download tldr
37-
run: curl https://tldr.sh/assets/tldr.zip -o docs/tldr.zip
37+
run: curl -L https://github.com/tldr-pages/tldr/releases/latest/download/tldr.zip -o docs/tldr.zip
3838

3939
- name: Generate documentation
4040
run: cargo run --bin uudoc --all-features

.github/workflows/freebsd.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
with:
4444
disable_annotations: true
4545
- name: Prepare, build and test
46-
uses: vmactions/[email protected].8
46+
uses: vmactions/[email protected].9
4747
with:
4848
usesh: true
4949
sync: rsync
@@ -139,7 +139,7 @@ jobs:
139139
with:
140140
disable_annotations: true
141141
- name: Prepare, build and test
142-
uses: vmactions/[email protected].8
142+
uses: vmactions/[email protected].9
143143
with:
144144
usesh: true
145145
sync: rsync

0 commit comments

Comments
 (0)