From 3e79f6b83bd0d193bbf068b3c8da570f39acc6bb Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Wed, 30 Aug 2023 22:50:04 -0500 Subject: [PATCH 1/3] Create symlinks for all firmware that is duplicate using rdfind Signed-off-by: Mario Limonciello --- copy-firmware.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/copy-firmware.sh b/copy-firmware.sh index 1ae1e37c..59ff976e 100755 --- a/copy-firmware.sh +++ b/copy-firmware.sh @@ -9,12 +9,16 @@ prune=no # shellcheck disable=SC2209 compress=cat compext= +quiet=">/dev/null" +rdfind_results=/dev/null while test $# -gt 0; do case $1 in -v | --verbose) # shellcheck disable=SC2209 verbose=echo + quiet= + rdfind_results=results.txt shift ;; @@ -115,6 +119,12 @@ grep -E '^Link:' WHENCE | sed -e 's/^Link: *//g;s/-> //g' | while read f d; do fi done +$verbose rdfind -makesymlinks true "$destdir" -outputname $rdfind_results "$quiet" +find "$destdir" -type l | while read -r l; do + target="$(realpath "$l")" + ln -fs "$(realpath --relative-to="$(dirname "$(realpath -s "$l")")" "$target")" "$l" +done + exit 0 # vim: et sw=4 sts=4 ts=4 From bcc397d610896035bda38b228eea15af8051c55d Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Wed, 30 Aug 2023 22:50:40 -0500 Subject: [PATCH 2/3] Add new toplevel 'make dist' target. This target produces a tarball following the most recent git tag. The tarball contains firmware binaries that have been de-duped. Signed-off-by: Mario Limonciello --- .gitignore | 2 ++ Makefile | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/.gitignore b/.gitignore index fcf54f43..a3876403 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ debian/ +dist/ +release/ diff --git a/Makefile b/Makefile index 75039ccb..b8ac3be8 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,14 @@ check: fi @pre-commit run --all-files +dist: + @mkdir -p release dist + ./copy-firmware.sh release + @TARGET=linux-firmware_`git describe`.tar.gz; \ + cd release && tar -czf ../dist/$${TARGET} *; \ + echo "Created dist/$${TARGET}" + @rm -rf release + install: install -d $(DESTDIR)$(FIRMWAREDIR) ./copy-firmware.sh $(DESTDIR)$(FIRMWAREDIR) @@ -23,3 +31,6 @@ install-xz: install-zst: install -d $(DESTDIR)$(FIRMWAREDIR) ./copy-firmware.sh --zstd $(DESTDIR)$(FIRMWAREDIR) + +clean: + rm -rf release dist From f12059b76aded5f4744d3e6e1e0886b9661f37ae Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Thu, 31 Aug 2023 10:17:37 -0500 Subject: [PATCH 3/3] Capture artifacts from `make dist` to save at release time. Signed-off-by: Mario Limonciello --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7e5abc58..23512657 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,8 +16,12 @@ release: - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME when: never - if: $RELEASE_TOKEN + artifacts: + paths: + - dist/* script: - CI_PUSH_REPO=`echo "$CI_REPOSITORY_URL" | sed 's/^.*@/@/g'` - git remote set-url --push origin "https://gitlab-ci-token:${RELEASE_TOKEN}$CI_PUSH_REPO" - git tag `date "+%Y%m%d"` - git push --tags + - make dist