From 518712c61315797700a4cc1885c24824c17e051a Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Mon, 21 Jul 2025 12:26:30 +0200 Subject: [PATCH] CI updates --- .github/workflows/ci.yml | 14 ++-- Makefile | 14 ++-- misc/make/Makefile-extra.mk | 2 +- misc/podman/rebuild-stubs/Dockerfile | 2 +- misc/podman/rebuild-stubs/packages.txt | 108 +++++++++++++------------ src/Makefile | 18 ++--- 6 files changed, 82 insertions(+), 76 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff0945dc..f54ae671 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -97,13 +97,11 @@ jobs: steps: - run: uname -a; pwd; id; umask - run: sudo apt-get update - - run: sudo apt-get install -y gdb parallel + - run: sudo apt-get install -y gdb parallel valgrind - uses: actions/checkout@v4 with: { submodules: true } - run: make build/extra/gcc/all - run: make build/extra/clang/all - # run: make build/extra/gcc-pie/all - # run: make build/extra/clang-pie/all - run: ls -l build/*/*/*/upx* || true - run: file build/*/*/*/upx* || true - name: Make artifact @@ -122,7 +120,6 @@ jobs: shell: bash run: | jobs="gcc/debug gcc/release clang/debug clang/release" - #jobs="$jobs gcc-pie/debug gcc-pie/release clang-pie/debug clang-pie/release" for ((i = 0; i < 5; i++)); do echo "===== parallel jobs: $jobs" parallel -kv --lb 'cd build/extra/{} && bash ../../../../misc/testsuite/mimic_ctest_sigsegv.sh' ::: $jobs @@ -130,9 +127,16 @@ jobs: - name: Run ctest tests run: | jobs="gcc/debug gcc/release clang/debug clang/release" - #jobs="$jobs gcc-pie/debug gcc-pie/release clang-pie/debug clang-pie/release" echo "===== parallel jobs: $jobs" CTEST_JOBS=2 parallel -kv --lb 'make build/extra/{}+test' ::: $jobs + - name: Mimic ctest tests with Valgrind + run: | + export UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS=ON # valgrind is SLOW + export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all" + # clang/debug does not work before valgrind-3.20, see https://bugs.kde.org/show_bug.cgi?id=452758 + jobs="gcc/debug gcc/release clang/release" + echo "===== parallel jobs: $jobs" + parallel -kv --lb 'cd build/extra/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs job-linux-cmake: # uses cmake + make if: true diff --git a/Makefile b/Makefile index 285b9c02..29e36bf2 100644 --- a/Makefile +++ b/Makefile @@ -26,8 +26,13 @@ endif .DEFAULT_GOAL = build/release -run_cmake_config = $(CMAKE) -S . -B $1 $(UPX_CMAKE_CONFIG_FLAGS) -DCMAKE_BUILD_TYPE=$2 -run_cmake_build = $(CMAKE) --build $1 $(UPX_CMAKE_BUILD_FLAGS) --config $2 +.NOTPARALLEL: # because the actual builds use "cmake --parallel" +.PHONY: PHONY +.SECONDEXPANSION: +.SUFFIXES: + +run_cmake_config = $(CMAKE) -S . -B "$1" $(UPX_CMAKE_CONFIG_FLAGS) -DCMAKE_BUILD_TYPE="$2" +run_cmake_build = $(CMAKE) --build "$1" $(UPX_CMAKE_BUILD_FLAGS) --config "$2" # avoid re-running run_cmake_config if .upx_cmake_config_done.txt already exists run_config = $(if $(wildcard $1/CMakeFiles/.*_cmake_config_done.txt),,$(call run_cmake_config,$1,$2)) run_build = $(call run_cmake_build,$1,$2) @@ -40,11 +45,6 @@ build/release: PHONY $(call run_config,$@,Release) $(call run_build,$@,Release) -.NOTPARALLEL: # because the actual builds use "cmake --parallel" -.PHONY: PHONY -.SECONDEXPANSION: -.SUFFIXES: - # shortcuts (all => debug + release) debug: build/debug PHONY release: build/release PHONY diff --git a/misc/make/Makefile-extra.mk b/misc/make/Makefile-extra.mk index 24bb023b..814391b9 100644 --- a/misc/make/Makefile-extra.mk +++ b/misc/make/Makefile-extra.mk @@ -264,7 +264,7 @@ build/analyze/clang-analyzer/%: export CCC_CXX ?= clang++ # run clang-tidy: uses file compile_commands.json from an existing clang build; # does not create any actual files, so purely PHONY CLANG_TIDY_BUILD_BASE = build/extra/clang -RUN_CLANG_TIDY = time python3 ./misc/analyze/clang-tidy/run-clang-tidy.py -p $< +RUN_CLANG_TIDY = time python3 ./misc/analyze/clang-tidy/run-clang-tidy.py -p "$<" RUN_CLANG_TIDY_WERROR = $(RUN_CLANG_TIDY) '-warnings-as-errors=*' build/analyze/clang-tidy-upx/debug build/analyze/clang-tidy-upx/release: $$(CLANG_TIDY_BUILD_BASE)/$$(notdir $$@) PHONY $(RUN_CLANG_TIDY_WERROR) -config-file ./.clang-tidy '/src/.*\.cpp' diff --git a/misc/podman/rebuild-stubs/Dockerfile b/misc/podman/rebuild-stubs/Dockerfile index af333875..5f8d6cf3 100644 --- a/misc/podman/rebuild-stubs/Dockerfile +++ b/misc/podman/rebuild-stubs/Dockerfile @@ -16,7 +16,7 @@ RUN dpkg --add-architecture i386 \ # the full UPX binary inside the container via CMake: 7zip bat bfs btop bubblewrap busybox bzip2 bzip3 cabextract ccache chrpath cmake cpio \ dash diffstat direnv elfutils execstack eza fd-find file fish fzf \ - g++ gawk gdb gh gojq ht htop hyperfine jq ksh \ + g++ gawk gdb gh gojq ht htop hyperfine jq just ksh \ lftp libzstd-dev lsb-release lsd lz4 lzip lzop minify mksh moreutils musl neovim ninja-build \ p7zip parallel patch patchelf patchutils pax-utils proot \ python3 python3-pyasn1 python3-pycryptodome python3-pycurl python3-tomli python3-tomli-w \ diff --git a/misc/podman/rebuild-stubs/packages.txt b/misc/podman/rebuild-stubs/packages.txt index 96d7535a..ed61cc66 100644 --- a/misc/podman/rebuild-stubs/packages.txt +++ b/misc/podman/rebuild-stubs/packages.txt @@ -13,8 +13,8 @@ ii bfs 3.1.2-1build1 amd64 ii binutils 2.42-4ubuntu2.5 amd64 GNU assembler, linker and binary utilities ii binutils-common:amd64 2.42-4ubuntu2.5 amd64 Common files for the GNU assembler, linker and binary utilities ii binutils-x86-64-linux-gnu 2.42-4ubuntu2.5 amd64 GNU binary utilities, for x86-64-linux-gnu target -ii bsdextrautils 2.39.3-9ubuntu6.2 amd64 extra utilities from 4.4BSD-Lite -ii bsdutils 1:2.39.3-9ubuntu6.2 amd64 basic utilities from 4.4BSD-Lite +ii bsdextrautils 2.39.3-9ubuntu6.3 amd64 extra utilities from 4.4BSD-Lite +ii bsdutils 1:2.39.3-9ubuntu6.3 amd64 basic utilities from 4.4BSD-Lite ii btop 1.3.0-1 amd64 Modern and colorful command line resource monitor that shows usage and stats ii bubblewrap 0.9.0-1ubuntu0.1 amd64 utility for unprivileged chroot and namespace manipulation ii busybox 1:1.36.1-6ubuntu3.1 amd64 Tiny utilities for small and embedded systems @@ -38,7 +38,7 @@ ii debconf 1.5.86ubuntu1 all ii debianutils 5.17build1 amd64 Miscellaneous utilities specific to Debian ii diffstat 1.66-1build1 amd64 produces graph of changes introduced by a diff file ii diffutils 1:3.10-1build1 amd64 File comparison utilities -ii direnv 2.32.1-2ubuntu0.24.04.2 amd64 Utility to set directory specific environment variables +ii direnv 2.32.1-2ubuntu0.24.04.3 amd64 Utility to set directory specific environment variables ii dpkg 1.22.6ubuntu6.1 amd64 Debian package management system ii e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 amd64 ext2/ext3/ext4 file system utilities ii elfutils 0.190-1.1ubuntu0.1 amd64 collection of utilities to handle ELF objects @@ -49,7 +49,7 @@ ii file 1:5.45-3build1 amd64 ii findutils 4.9.0-5build1 amd64 utilities for finding files--find, xargs ii fish 3.7.0-1 amd64 friendly interactive shell ii fish-common 3.7.0-1 all friendly interactive shell (architecture-independent files) -ii fzf 0.44.1-1ubuntu0.2 amd64 general-purpose command-line fuzzy finder +ii fzf 0.44.1-1ubuntu0.3 amd64 general-purpose command-line fuzzy finder ii g++ 4:13.2.0-7ubuntu1 amd64 GNU C++ compiler ii g++-13 13.3.0-6ubuntu2~24.04 amd64 GNU C++ compiler ii g++-13-multilib 13.3.0-6ubuntu2~24.04 amd64 GNU C++ compiler (multilib support) @@ -68,19 +68,20 @@ ii gcc-multilib 4:13.2.0-7ubuntu1 amd64 ii gcc-x86-64-linux-gnu 4:13.2.0-7ubuntu1 amd64 GNU C compiler for the amd64 architecture ii gdb 15.0.50.20240403-0ubuntu1 amd64 GNU Debugger ii gh 2.45.0-1ubuntu0.2 amd64 GitHub CLI, GitHub’s official command line tool -ii git 1:2.43.0-1ubuntu7.2 amd64 fast, scalable, distributed revision control system -ii git-man 1:2.43.0-1ubuntu7.2 all fast, scalable, distributed revision control system (manual pages) -ii gojq 0.12.13-1ubuntu0.24.04.2 amd64 pure Go implementation of jq (program) -ii gpgv 2.4.4-2ubuntu17.2 amd64 GNU privacy guard - signature verification tool +ii git 1:2.43.0-1ubuntu7.3 amd64 fast, scalable, distributed revision control system +ii git-man 1:2.43.0-1ubuntu7.3 all fast, scalable, distributed revision control system (manual pages) +ii gojq 0.12.13-1ubuntu0.24.04.3 amd64 pure Go implementation of jq (program) +ii gpgv 2.4.4-2ubuntu17.3 amd64 GNU privacy guard - signature verification tool ii grep 3.11-4build1 amd64 GNU grep, egrep and fgrep ii groff-base 1.23.0-3build2 amd64 GNU troff text-formatting system (base system components) -ii gzip 1.12-1ubuntu3 amd64 GNU compression utilities +ii gzip 1.12-1ubuntu3.1 amd64 GNU compression utilities ii hostname 3.23+nmu2ubuntu2 amd64 utility to set/show the host name or domain name ii ht 2.1.0+repack1-5 amd64 Viewer/editor/analyser (mostly) for executables ii htop 3.3.0-4build1 amd64 interactive processes viewer ii hyperfine 1.18.0-2build1 amd64 Command-line benchmarking tool ii init-system-helpers 1.66ubuntu1 all helper tools for all init systems ii jq 1.7.1-3build1 amd64 lightweight and flexible command-line JSON processor +ii just 1.21.0-1 amd64 Save and run project-specific commands ii ksh 20240113 all transitional package ii ksh93u+m 1.0.8-1 amd64 AT&T KornShell ii less 590-2ubuntu2.1 amd64 pager program similar to more @@ -97,7 +98,7 @@ ii lib32stdc++6 14.2.0-4ubuntu2~24.04 amd64 ii lib32ubsan1 14.2.0-4ubuntu2~24.04 amd64 UBSan -- undefined behaviour sanitizer (32bit) ii libacl1:amd64 2.3.2-1build1.1 amd64 access control list - shared library ii libapt-pkg6.0t64:amd64 2.8.3 amd64 package management runtime library -ii libarchive13t64:amd64 3.7.2-2ubuntu0.4 amd64 Multi-format archive and compression library (shared library) +ii libarchive13t64:amd64 3.7.2-2ubuntu0.5 amd64 Multi-format archive and compression library (shared library) ii libaria2-0:amd64 1.37.0+debian-1build3 amd64 C++ library interface to aria2 ii libasan8:amd64 14.2.0-4ubuntu2~24.04 amd64 AddressSanitizer -- a fast memory error detector ii libasm1t64:amd64 0.190-1.1ubuntu0.1 amd64 library with a programmable assembler interface @@ -108,21 +109,21 @@ ii libaudit-common 1:3.1.2-2.1build1.1 all ii libaudit1:amd64 1:3.1.2-2.1build1.1 amd64 Dynamic library for security auditing ii libbabeltrace1:amd64 1.5.11-3build3 amd64 Babeltrace conversion libraries ii libbinutils:amd64 2.42-4ubuntu2.5 amd64 GNU binary utilities (private shared library) -ii libblkid1:amd64 2.39.3-9ubuntu6.2 amd64 block device ID library +ii libblkid1:amd64 2.39.3-9ubuntu6.3 amd64 block device ID library ii libbrotli1:amd64 1.1.0-2build2 amd64 library implementing brotli encoder and decoder (shared libraries) ii libbsd0:amd64 0.12.1-1build1.1 amd64 utility functions from BSD systems - shared library ii libbz2-1.0:amd64 1.0.8-5.1build0.1 amd64 high-quality block-sorting file compressor library - runtime ii libbzip3-0:amd64 1.4.0-1 amd64 better, faster and stronger spiritual successor to bzip2 - runtime -ii libc-bin 2.39-0ubuntu8.4 amd64 GNU C Library: Binaries -ii libc-dev-bin 2.39-0ubuntu8.4 amd64 GNU C Library: Development binaries -ii libc6-dbg:amd64 2.39-0ubuntu8.4 amd64 GNU C Library: detached debugging symbols -ii libc6-dev-i386 2.39-0ubuntu8.4 amd64 GNU C Library: 32-bit development libraries for AMD64 -ii libc6-dev-x32 2.39-0ubuntu8.4 amd64 GNU C Library: X32 ABI Development Libraries for AMD64 -ii libc6-dev:amd64 2.39-0ubuntu8.4 amd64 GNU C Library: Development Libraries and Header Files -ii libc6-i386 2.39-0ubuntu8.4 amd64 GNU C Library: 32-bit shared libraries for AMD64 -ii libc6-x32 2.39-0ubuntu8.4 amd64 GNU C Library: X32 ABI Shared libraries for AMD64 -ii libc6:amd64 2.39-0ubuntu8.4 amd64 GNU C Library: Shared libraries -ii libc6:i386 2.39-0ubuntu8.4 i386 GNU C Library: Shared libraries +ii libc-bin 2.39-0ubuntu8.5 amd64 GNU C Library: Binaries +ii libc-dev-bin 2.39-0ubuntu8.5 amd64 GNU C Library: Development binaries +ii libc6-dbg:amd64 2.39-0ubuntu8.5 amd64 GNU C Library: detached debugging symbols +ii libc6-dev-i386 2.39-0ubuntu8.5 amd64 GNU C Library: 32-bit development libraries for AMD64 +ii libc6-dev-x32 2.39-0ubuntu8.5 amd64 GNU C Library: X32 ABI Development Libraries for AMD64 +ii libc6-dev:amd64 2.39-0ubuntu8.5 amd64 GNU C Library: Development Libraries and Header Files +ii libc6-i386 2.39-0ubuntu8.5 amd64 GNU C Library: 32-bit shared libraries for AMD64 +ii libc6-x32 2.39-0ubuntu8.5 amd64 GNU C Library: X32 ABI Shared libraries for AMD64 +ii libc6:amd64 2.39-0ubuntu8.5 amd64 GNU C Library: Shared libraries +ii libc6:i386 2.39-0ubuntu8.5 i386 GNU C Library: Shared libraries ii libcap-ng0:amd64 0.8.4-2build2 amd64 alternate POSIX capabilities library ii libcap2:amd64 1:2.66-5ubuntu2.2 amd64 POSIX 1003.1e capabilities (library) ii libcares2:amd64 1.27.0-1.0ubuntu1 amd64 asynchronous name resolver @@ -153,7 +154,7 @@ ii libgdbm6t64:amd64 1.23-5.1build1 amd64 ii libgit2-1.7:amd64 1.7.2+ds-1ubuntu3 amd64 low-level Git library ii libglib2.0-0t64:amd64 2.80.0-6ubuntu3.4 amd64 GLib library of C routines ii libgmp10:amd64 2:6.3.0+dfsg-2ubuntu6.1 amd64 Multiprecision arithmetic library -ii libgnutls30t64:amd64 3.8.3-1.1ubuntu3.3 amd64 GNU TLS library - main runtime library +ii libgnutls30t64:amd64 3.8.3-1.1ubuntu3.4 amd64 GNU TLS library - main runtime library ii libgomp1:amd64 14.2.0-4ubuntu2~24.04 amd64 GCC OpenMP (GOMP) support library ii libgpg-error0:amd64 1.47-3build2.1 amd64 GnuPG development runtime library ii libgprofng0:amd64 2.42-4ubuntu2.5 amd64 GNU Next Generation profiler (runtime library) @@ -186,7 +187,7 @@ ii liblzo2-2:amd64 2.10-2build4 amd64 ii libmagic-mgc 1:5.45-3build1 amd64 File type determination library using "magic" numbers (compiled magic file) ii libmagic1t64:amd64 1:5.45-3build1 amd64 Recognize the type of data in a file using "magic" numbers - library ii libmd0:amd64 1.1.0-2build1.1 amd64 message digest functions from BSD systems - shared library -ii libmount1:amd64 2.39.3-9ubuntu6.2 amd64 device mounting library +ii libmount1:amd64 2.39.3-9ubuntu6.3 amd64 device mounting library ii libmpc3:amd64 1.3.1-1build1.1 amd64 multiple precision complex floating-point library ii libmpfr6:amd64 4.2.1-1build1.1 amd64 multiple precision floating-point computation ii libmsgpackc2:amd64 4.0.0-3build1 amd64 binary-based efficient object serialization library @@ -200,10 +201,10 @@ ii libnl-genl-3-200:amd64 3.7.0-0.3build1.1 amd64 ii libnpth0t64:amd64 1.6-3.1build1 amd64 replacement for GNU Pth using system threads ii libonig5:amd64 6.9.9-1build1 amd64 regular expressions library ii libp11-kit0:amd64 0.25.3-4ubuntu2.1 amd64 library for loading and coordinating access to PKCS#11 modules - runtime -ii libpam-modules-bin 1.5.3-5ubuntu5.1 amd64 Pluggable Authentication Modules for PAM - helper binaries -ii libpam-modules:amd64 1.5.3-5ubuntu5.1 amd64 Pluggable Authentication Modules for PAM -ii libpam-runtime 1.5.3-5ubuntu5.1 all Runtime support for the PAM library -ii libpam0g:amd64 1.5.3-5ubuntu5.1 amd64 Pluggable Authentication Modules library +ii libpam-modules-bin 1.5.3-5ubuntu5.4 amd64 Pluggable Authentication Modules for PAM - helper binaries +ii libpam-modules:amd64 1.5.3-5ubuntu5.4 amd64 Pluggable Authentication Modules for PAM +ii libpam-runtime 1.5.3-5ubuntu5.4 all Runtime support for the PAM library +ii libpam0g:amd64 1.5.3-5ubuntu5.4 amd64 Pluggable Authentication Modules library ii libpcre2-32-0:amd64 10.42-4ubuntu2.1 amd64 New Perl Compatible Regular Expression Library - 32 bit runtime files ii libpcre2-8-0:amd64 10.42-4ubuntu2.1 amd64 New Perl Compatible Regular Expression Library- 8 bit runtime files ii libperl5.38t64:amd64 5.38.2-3.2ubuntu0.1 amd64 shared Perl library @@ -213,9 +214,9 @@ ii libproc2-0:amd64 2:4.0.4-4ubuntu3.2 amd64 ii libpsl5t64:amd64 0.21.2-1.1build1 amd64 Library for Public Suffix List (shared libraries) ii libpython2.7-minimal:amd64 2.7.18-8+deb11u1 amd64 Minimal subset of the Python language (version 2.7) ii libpython3-stdlib:amd64 3.12.3-0ubuntu2 amd64 interactive high-level object-oriented language (default python3 version) -ii libpython3.12-minimal:amd64 3.12.3-1ubuntu0.5 amd64 Minimal subset of the Python language (version 3.12) -ii libpython3.12-stdlib:amd64 3.12.3-1ubuntu0.5 amd64 Interactive high-level object-oriented language (standard library, version 3.12) -ii libpython3.12t64:amd64 3.12.3-1ubuntu0.5 amd64 Shared Python runtime library (version 3.12) +ii libpython3.12-minimal:amd64 3.12.3-1ubuntu0.7 amd64 Minimal subset of the Python language (version 3.12) +ii libpython3.12-stdlib:amd64 3.12.3-1ubuntu0.7 amd64 Interactive high-level object-oriented language (standard library, version 3.12) +ii libpython3.12t64:amd64 3.12.3-1ubuntu0.7 amd64 Shared Python runtime library (version 3.12) ii libquadmath0:amd64 14.2.0-4ubuntu2~24.04 amd64 GCC Quad-Precision Math Library ii libreadline8t64:amd64 8.2-4build1 amd64 GNU readline and history libraries, run-time libraries ii librhash0:amd64 1.4.3-3build1 amd64 shared library for hash functions computing @@ -231,17 +232,17 @@ ii libsensors5:amd64 1:3.6.0-9build1 amd64 ii libsepol2:amd64 3.5-2build1 amd64 SELinux library for manipulating binary security policies ii libsframe1:amd64 2.42-4ubuntu2.5 amd64 Library to handle the SFrame format (runtime library) ii libsigsegv2:amd64 2.14-1ubuntu2 amd64 Library for handling page faults in a portable way -ii libsmartcols1:amd64 2.39.3-9ubuntu6.2 amd64 smart column output alignment library +ii libsmartcols1:amd64 2.39.3-9ubuntu6.3 amd64 smart column output alignment library ii libsource-highlight-common 3.1.9-4.3build1 all architecture-independent files for source highlighting library ii libsource-highlight4t64:amd64 3.1.9-4.3build1 amd64 source highlighting library ii libsqlite3-0:amd64 3.45.1-1ubuntu2.3 amd64 SQLite 3 shared library ii libss2:amd64 1.47.0-2.4~exp1ubuntu4.1 amd64 command-line interface parsing library -ii libssh-4:amd64 0.10.6-2build2 amd64 tiny C SSH library (OpenSSL flavor) +ii libssh-4:amd64 0.10.6-2ubuntu0.1 amd64 tiny C SSH library (OpenSSL flavor) ii libssh2-1t64:amd64 1.11.0-4.1build2 amd64 SSH2 client-side library ii libssl3t64:amd64 3.0.13-0ubuntu3.5 amd64 Secure Sockets Layer toolkit - shared libraries ii libstdc++-13-dev:amd64 13.3.0-6ubuntu2~24.04 amd64 GNU Standard C++ Library v3 (development files) ii libstdc++6:amd64 14.2.0-4ubuntu2~24.04 amd64 GNU Standard C++ Library v3 -ii libsystemd0:amd64 255.4-1ubuntu8.6 amd64 systemd utility library +ii libsystemd0:amd64 255.4-1ubuntu8.10 amd64 systemd utility library ii libtalloc2:amd64 2.4.2-1build2 amd64 hierarchical pool based memory allocator ii libtasn1-6:amd64 4.19.0-3ubuntu0.24.04.1 amd64 Manage ASN.1 structures (runtime) ii libtermkey1:amd64 0.22-1 amd64 library for processing keyboard input @@ -252,13 +253,13 @@ ii libtree-sitter0:amd64 0.20.8-2 amd64 ii libtsan2:amd64 14.2.0-4ubuntu2~24.04 amd64 ThreadSanitizer -- a Valgrind-based detector of data races (runtime) ii libubsan1:amd64 14.2.0-4ubuntu2~24.04 amd64 UBSan -- undefined behaviour sanitizer (runtime) ii libuchardet0:amd64 0.0.8-1build1 amd64 universal charset detection library - shared library -ii libudev1:amd64 255.4-1ubuntu8.6 amd64 libudev shared library +ii libudev1:amd64 255.4-1ubuntu8.10 amd64 libudev shared library ii libunibilium4:amd64 2.1.0-3 amd64 simple, self-contained terminfo library ii libunistring5:amd64 1.1-2build1.1 amd64 Unicode string library for C ii libunwind8:amd64 1.6.2-3build1.1 amd64 library to determine the call-chain of a program - runtime ii liburing2:amd64 2.5-1build1 amd64 Linux kernel io_uring access library - shared library ii libutempter0:amd64 1.2.1-3build1 amd64 privileged helper for utmp/wtmp updates (runtime) -ii libuuid1:amd64 2.39.3-9ubuntu6.2 amd64 Universally Unique ID library +ii libuuid1:amd64 2.39.3-9ubuntu6.3 amd64 Universally Unique ID library ii libuv1t64:amd64 1.48.0-1.1build1 amd64 asynchronous event notification library - runtime library ii libvterm0:amd64 0.3.3-2build1 amd64 abstract terminal library ii libwrap0:amd64 7.6.q-33 amd64 Wietse Venema's TCP wrappers library @@ -282,7 +283,7 @@ ii libxxhash0:amd64 0.8.2-2build1 amd64 ii libyaml-0-2:amd64 0.2.5-1build1 amd64 Fast YAML 1.1 parser and emitter library ii libzstd-dev:amd64 1.5.5+dfsg2-2build1.1 amd64 fast lossless compression algorithm -- development files ii libzstd1:amd64 1.5.5+dfsg2-2build1.1 amd64 fast lossless compression algorithm -ii linux-libc-dev:amd64 6.8.0-60.63 amd64 Linux Kernel Headers for development +ii linux-libc-dev:amd64 6.8.0-64.67 amd64 Linux Kernel Headers for development ii login 1:4.13+dfsg1-4ubuntu3.2 amd64 system login tools ii logsave 1.47.0-2.4~exp1ubuntu4.1 amd64 save the output of a command in a log file ii lsb-release 12.0-2 all Linux Standard Base version reporting utility (minimal implementation) @@ -298,7 +299,7 @@ ii media-types 10.1.0 all ii minify 2.20.17-1 amd64 CLI implementation of the Go minify library package ii mksh 59c-37 amd64 MirBSD Korn Shell ii moreutils 0.69-1 amd64 additional Unix utilities -ii mount 2.39.3-9ubuntu6.2 amd64 tools for mounting and manipulating filesystems +ii mount 2.39.3-9ubuntu6.3 amd64 tools for mounting and manipulating filesystems ii musl:amd64 1.2.4-2 amd64 standard C library ii ncurses-base 6.4+20240113-1ubuntu2 all basic terminal type definitions ii ncurses-bin 6.4+20240113-1ubuntu2 amd64 terminal-related programs and man pages @@ -334,8 +335,8 @@ ii python3-tomli-w 1.0.0-2 all ii python3-xmltodict 0.13.0-1 all Makes working with XML feel like you are working with JSON (Python 3) ii python3-yaml 6.0.1-2build2 amd64 YAML parser and emitter for Python3 ii python3-zstd 1.5.5.1-1build1 amd64 python bindings to Yann Collet ZSTD compression library -ii python3.12 3.12.3-1ubuntu0.5 amd64 Interactive high-level object-oriented language (version 3.12) -ii python3.12-minimal 3.12.3-1ubuntu0.5 amd64 Minimal subset of the Python language (version 3.12) +ii python3.12 3.12.3-1ubuntu0.7 amd64 Interactive high-level object-oriented language (version 3.12) +ii python3.12-minimal 3.12.3-1ubuntu0.7 amd64 Minimal subset of the Python language (version 3.12) ii re2c 3.1-1build1 amd64 lexer generator for C, C++, Go and Rust ii readline-common 8.2-4build1 all GNU readline and history libraries, common files ii ripgrep 14.1.0-1 amd64 Recursively searches directories for a regex pattern @@ -356,7 +357,7 @@ ii ucf 3.0043+nmu1 all ii universal-ctags 5.9.20210829.0-1 amd64 build tag file indexes of source code definitions ii unminimize 0.2.1 amd64 Un-minimize your minimial images or setup ii unzip 6.0-28ubuntu4.1 amd64 De-archiver for .zip files -ii util-linux 2.39.3-9ubuntu6.2 amd64 miscellaneous system utilities +ii util-linux 2.39.3-9ubuntu6.3 amd64 miscellaneous system utilities ii valgrind 1:3.22.0-0ubuntu3 amd64 instrumentation framework for building dynamic analysis tools ii wget 1.21.4-1ubuntu4.1 amd64 retrieves files from the web ii xz-utils 5.6.1+really5.4.5-1ubuntu0.2 amd64 XZ-format compression utilities @@ -375,7 +376,7 @@ ii zstd 1.5.5+dfsg2-2build1.1 amd64 ||/ Name Version Architecture Description Packages sorted by Installed-Size: - 1015747 ===== TOTAL (369 packages) + 1019351 ===== TOTAL (370 packages) 76943 valgrind amd64 61333 gcc-13-x86-64-linux-gnu amd64 44381 gh amd64 @@ -398,21 +399,21 @@ Packages sorted by Installed-Size: 12004 libc6-x32 amd64 11989 libc6-i386 amd64 11549 binutils-x86-64-linux-gnu amd64 - 11182 libc6-dbg amd64 + 11172 libc6-dbg amd64 10984 cmake-data all 10791 libasan8 amd64 9704 libx32asan8 amd64 9539 lib32asan8 amd64 - 9017 libpython3.12-stdlib amd64 - 8917 libpython3.12t64 amd64 + 9022 libpython3.12-stdlib amd64 + 8924 libpython3.12t64 amd64 8902 libtsan2 amd64 8335 libmagic-mgc amd64 8296 lib32gcc-13-dev amd64 8119 libc6-dev-x32 amd64 - 7924 python3.12-minimal amd64 + 7926 python3.12-minimal amd64 7913 perl-base amd64 7531 libx32gcc-13-dev amd64 - 7437 linux-libc-dev amd64 + 7460 linux-libc-dev amd64 7226 lib32stdc++-13-dev amd64 7059 libx32stdc++-13-dev amd64 7024 direnv amd64 @@ -424,7 +425,7 @@ Packages sorted by Installed-Size: 6158 7zip amd64 5219 bat amd64 5210 ripgrep amd64 - 5179 libpython3.12-minimal amd64 + 5180 libpython3.12-minimal amd64 4897 libhwasan0 amd64 4341 ncurses-term all 4244 minify amd64 @@ -437,6 +438,7 @@ Packages sorted by Installed-Size: 3738 fzf amd64 3721 groff-base amd64 3605 python2.7-minimal amd64 + 3568 just amd64 3443 fish amd64 3441 re2c amd64 3438 util-linux amd64 @@ -461,7 +463,7 @@ Packages sorted by Installed-Size: 2350 libbinutils amd64 2191 ht amd64 2183 libc-bin amd64 - 2163 git-man all + 2162 git-man all 2103 strace amd64 2079 libxml2 amd64 2032 libisl23 amd64 @@ -494,16 +496,16 @@ Packages sorted by Installed-Size: 1237 libzstd-dev amd64 1237 libgit2-1.7 amd64 1186 libmpfr6 amd64 - 1145 libpam-modules amd64 + 1150 libpam-modules amd64 1142 eza amd64 1136 zoxide amd64 - 1025 libsystemd0 amd64 + 1026 libsystemd0 amd64 1015 libkrb5-3 amd64 996 screen amd64 925 libcurl4t64 amd64 916 wget amd64 906 libcurl3t64-gnutls amd64 - 904 libarchive13t64 amd64 + 905 libarchive13t64 amd64 884 login amd64 852 busybox amd64 843 libbrotli1 amd64 @@ -536,7 +538,7 @@ Packages sorted by Installed-Size: 521 curl amd64 512 python3-yaml amd64 508 libbabeltrace1 amd64 - 496 libssh-4 amd64 + 497 libssh-4 amd64 493 debconf all 467 libreadline8t64 amd64 452 diffutils amd64 @@ -568,7 +570,7 @@ Packages sorted by Installed-Size: 337 gpgv amd64 336 libncurses6 amd64 328 cpio amd64 - 314 libudev1 amd64 + 315 libudev1 amd64 311 libx32quadmath0 amd64 309 less amd64 307 libctf-nobfd0 amd64 diff --git a/src/Makefile b/src/Makefile index bd1a8c80..188237f8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -25,11 +25,11 @@ endif .SECONDEXPANSION: .SUFFIXES: -build/debug build/release build/all: PHONY; $(MAKE) -C $(top_srcdir) $@ -build/debug+test build/release+test build/all+test: PHONY; $(MAKE) -C $(top_srcdir) $@ +build/debug build/release build/all: PHONY; $(MAKE) -C "$(top_srcdir)" $@ +build/debug+test build/release+test build/all+test: PHONY; $(MAKE) -C "$(top_srcdir)" $@ # shortcuts -debug release all: PHONY; $(MAKE) -C $(top_srcdir) $@ -debug+test release+test all+test: PHONY; $(MAKE) -C $(top_srcdir) $@ +debug release all: PHONY; $(MAKE) -C "$(top_srcdir)" $@ +debug+test release+test all+test: PHONY; $(MAKE) -C "$(top_srcdir)" $@ test: $$(patsubst %+test,%,$$(.DEFAULT_GOAL))+test PHONY @@ -61,11 +61,11 @@ run-testsuite-%: export upx_testsuite_SRCDIR := $(upx_testsuite_SRCDIR) run-testsuite-debug: export upx_testsuite_BUILDDIR := ./tmp-upx-testsuite-debug run-testsuite-debug: export upx_exe := $(top_srcdir)/build/debug/upx run-testsuite-debug: build/debug PHONY - time -p bash $(top_srcdir)/misc/testsuite/upx_testsuite_1.sh + time -p bash "$(top_srcdir)/misc/testsuite/upx_testsuite_1.sh" run-testsuite-release: export upx_testsuite_BUILDDIR := ./tmp-upx-testsuite-release run-testsuite-release: export upx_exe := $(top_srcdir)/build/release/upx run-testsuite-release: build/release PHONY - time -p bash $(top_srcdir)/misc/testsuite/upx_testsuite_1.sh + time -p bash "$(top_srcdir)/misc/testsuite/upx_testsuite_1.sh" endif endif @@ -75,9 +75,9 @@ endif ifneq ($(wildcard /usr/bin/env),) # need Unix utils like bash, perl, sed, xargs, etc. -CHECK_WHITESPACE = bash $(top_srcdir)/misc/scripts/check_whitespace.sh $(top_srcdir) +CHECK_WHITESPACE = bash "$(top_srcdir)/misc/scripts/check_whitespace.sh" "$(top_srcdir)" ifneq ($(wildcard $(top_srcdir)/.git/.),) -CHECK_WHITESPACE = bash $(top_srcdir)/misc/scripts/check_whitespace_git.sh $(top_srcdir) +CHECK_WHITESPACE = bash "$(top_srcdir)/misc/scripts/check_whitespace_git.sh" "$(top_srcdir)" endif check-whitespace: PHONY; $(CHECK_WHITESPACE) @@ -100,7 +100,7 @@ CLANG_FORMAT_FILES += $(sort $(wildcard ../misc/cmake/try_compile/*.[ch]*)) CLANG_FORMAT_FILES := $(sort $(filter-out $(CLANG_FORMAT_EXCLUDE_FILES),$(CLANG_FORMAT_FILES))) clang-format: $(CLANG_FORMAT_FILES) PHONY @echo "running upx-clang-format" - @bash $(top_srcdir)/misc/scripts/upx-clang-format.sh -i $(CLANG_FORMAT_FILES) + @bash "$(top_srcdir)/misc/scripts/upx-clang-format.sh" -i $(CLANG_FORMAT_FILES) endif # Linux endif # /usr/bin/env