CI updates

This commit is contained in:
Markus F.X.J. Oberhumer 2024-08-13 11:32:29 +02:00
parent a9cb354225
commit 1427b8137a
8 changed files with 62 additions and 64 deletions

View File

@ -19,16 +19,16 @@ env:
UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO: 1 UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO: 1
UPX_DEBUG_TEST_LIBC_QSORT: 1 UPX_DEBUG_TEST_LIBC_QSORT: 1
ZSTD_CLEVEL: 9 ZSTD_CLEVEL: 9
# 2024-08-03 # 2024-08-13
ZIG_DIST_VERSION: 0.14.0-dev.839+a931bfada ZIG_DIST_VERSION: 0.14.0-dev.1033+25096ed89
jobs: jobs:
job-rebuild-and-verify-stubs: job-rebuild-and-verify-stubs:
name: Rebuild stubs name: Rebuild stubs
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ubuntu:24.04 # glibc-2.39 container: ubuntu:24.04 # provides glibc-2.39
#container: debian:12-slim # also works; glibc-2.36 #container: debian:12-slim # also works; provides glibc-2.36
#container: debian:testing-slim # also works; currently at glibc-2.38 #container: debian:testing-slim # also works; currently provides glibc-2.38
steps: steps:
- name: Install packages - name: Install packages
run: | run: |
@ -85,6 +85,7 @@ jobs:
- { os: ubuntu-22.04, use_extra: true, use_wine: true } - { os: ubuntu-22.04, use_extra: true, use_wine: true }
# GitHub ubuntu-24.04 is BETA; BUG: currently i386 programs can abort with "The futex facility returned an unexpected error code" # GitHub ubuntu-24.04 is BETA; BUG: currently i386 programs can abort with "The futex facility returned an unexpected error code"
# THIS IS A KNOWN ISSUE: https://github.com/actions/runner-images/issues/9848 # THIS IS A KNOWN ISSUE: https://github.com/actions/runner-images/issues/9848
# { os: ubuntu-24.04, use_extra: true, use_wine: true }
- { os: ubuntu-24.04 } # TODO later: enable extra+wine once the GitHub VM is fixed - { os: ubuntu-24.04 } # TODO later: enable extra+wine once the GitHub VM is fixed
name: ${{ format('{0}', matrix.os) }} name: ${{ format('{0}', matrix.os) }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@ -144,7 +145,7 @@ jobs:
for d in $dirs; do cmake --install build/extra/$d --prefix "$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithPrefixAndStrip/$d" --strip; done for d in $dirs; do cmake --install build/extra/$d --prefix "$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithPrefixAndStrip/$d" --strip; done
(cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N") (cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N")
if command -v hardlink >/dev/null; then (cd "tmp/artifact/$N" && hardlink .) fi if command -v hardlink >/dev/null; then (cd "tmp/artifact/$N" && hardlink .) fi
(cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la) (cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la && zstd -tq "$N.tar.zst")
echo "artifact_name=$N" >> $GITHUB_ENV echo "artifact_name=$N" >> $GITHUB_ENV
- name: ${{ format('Upload artifact {0}', env.artifact_name) }} - name: ${{ format('Upload artifact {0}', env.artifact_name) }}
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@ -283,7 +284,7 @@ jobs:
(cd build && rsync -R -a */*/*/upx "../tmp/artifact/$N/") (cd build && rsync -R -a */*/*/upx "../tmp/artifact/$N/")
hardlink="$HOMEBREW_PREFIX/opt/util-linux/bin/hardlink" hardlink="$HOMEBREW_PREFIX/opt/util-linux/bin/hardlink"
if test -f "$hardlink"; then (cd "tmp/artifact/$N" && "$hardlink" .) fi if test -f "$hardlink"; then (cd "tmp/artifact/$N" && "$hardlink" .) fi
(cd tmp/artifact && gtar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la) (cd tmp/artifact && gtar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la && zstd -tq "$N.tar.zst")
echo "artifact_name=$N" >> $GITHUB_ENV echo "artifact_name=$N" >> $GITHUB_ENV
- name: ${{ format('Upload artifact {0}', env.artifact_name) }} - name: ${{ format('Upload artifact {0}', env.artifact_name) }}
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@ -360,7 +361,7 @@ jobs:
cmake --install build/debug --config Debug --prefix "$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithPrefixAndStrip/debug" --strip cmake --install build/debug --config Debug --prefix "$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithPrefixAndStrip/debug" --strip
cmake --install build/release --config Release --prefix "$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithPrefixAndStrip/release" --strip cmake --install build/release --config Release --prefix "$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithPrefixAndStrip/release" --strip
(cd build && cp -ai --parents */*/upx.exe "../tmp/artifact/$N") (cd build && cp -ai --parents */*/upx.exe "../tmp/artifact/$N")
(cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la) (cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la && zstd -tq "$N.tar.zst")
echo "artifact_name=$N" >> $GITHUB_ENV echo "artifact_name=$N" >> $GITHUB_ENV
- name: ${{ format('Upload artifact {0}', env.artifact_name) }} - name: ${{ format('Upload artifact {0}', env.artifact_name) }}
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@ -455,7 +456,7 @@ jobs:
N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-windows-${{ matrix.name }}" | sed 's/[^0-9a-zA-Z_.-]/-/g') N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-windows-${{ matrix.name }}" | sed 's/[^0-9a-zA-Z_.-]/-/g')
mkdir -p "tmp/artifact/$N/$B" mkdir -p "tmp/artifact/$N/$B"
cp -ai build/$C/$B/upx/upx*.exe "tmp/artifact/$N/$B" cp -ai build/$C/$B/upx/upx*.exe "tmp/artifact/$N/$B"
(cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la) (cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la && zstd -tq "$N.tar.zst")
echo "artifact_name=$N" >> $GITHUB_ENV echo "artifact_name=$N" >> $GITHUB_ENV
- name: ${{ format('Upload artifact {0}', env.artifact_name) }} - name: ${{ format('Upload artifact {0}', env.artifact_name) }}
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@ -488,19 +489,14 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
# only build a few targets => more targets are tested in the Weekly CI # only build a few selected targets => more targets are tested in the Weekly CI
- { zig_target: aarch64-linux-musl, qemu: qemu-aarch64 } - { zig_target: aarch64-linux-musl, qemu: qemu-aarch64 }
# { zig_target: aarch64-linux-musl, qemu: qemu-aarch64, zig_pic: -fPIE }
# { zig_target: aarch64-macos-none }
- { zig_target: aarch64-macos.11.0-none } - { zig_target: aarch64-macos.11.0-none }
# { zig_target: aarch64-macos.12.0-none }
# { zig_target: aarch64-macos.13.0-none }
- { zig_target: aarch64-windows-gnu } - { zig_target: aarch64-windows-gnu }
- { zig_target: arm-linux-musleabihf, zig_flags: -mcpu=cortex_a5, qemu: qemu-arm } - { zig_target: arm-linux-musleabihf, zig_flags: -mcpu=cortex_a5, qemu: qemu-arm }
# { zig_target: arm-linux-musleabihf, zig_flags: -mcpu=cortex_a5, qemu: qemu-arm, zig_pic: -fPIE } - { zig_target: armeb-linux-musleabihf, zig_flags: -mcpu=cortex_a5, qemu: qemu-armeb }
- { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 } - { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 }
- { zig_target: i386-linux-musl, zig_flags: -march=i586, qemu: qemu-i386 } - { zig_target: i386-linux-musl, zig_flags: -march=i586, qemu: qemu-i386 }
# { zig_target: i386-linux-musl, zig_flags: -march=i586, qemu: qemu-i386, zig_pic: -fPIE }
- { zig_target: i386-windows-gnu } - { zig_target: i386-windows-gnu }
- { zig_target: mips-linux-musl, qemu: qemu-mips } - { zig_target: mips-linux-musl, qemu: qemu-mips }
- { zig_target: mips-linux-muslsf, zig_flags: -msoft-float, qemu: qemu-mips } - { zig_target: mips-linux-muslsf, zig_flags: -msoft-float, qemu: qemu-mips }
@ -511,15 +507,11 @@ jobs:
- { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le } - { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le }
- { zig_target: x86_64-linux-gnu.2.3.4, qemu: qemu-x86_64 } # can use QEMU because of gcompat - { zig_target: x86_64-linux-gnu.2.3.4, qemu: qemu-x86_64 } # can use QEMU because of gcompat
- { zig_target: x86_64-linux-musl, qemu: qemu-x86_64 } - { zig_target: x86_64-linux-musl, qemu: qemu-x86_64 }
# { zig_target: x86_64-linux-musl, qemu: qemu-x86_64, zig_pic: -fPIE }
# { zig_target: x86_64-macos-none }
- { zig_target: x86_64-macos.11.0-none } - { zig_target: x86_64-macos.11.0-none }
# { zig_target: x86_64-macos.12.0-none }
# { zig_target: x86_64-macos.13.0-none }
- { zig_target: x86_64-windows-gnu } - { zig_target: x86_64-windows-gnu }
name: ${{ format('zigcc {0} {1}', matrix.zig_target, matrix.zig_pic) }} name: ${{ format('zigcc {0} {1}', matrix.zig_target, matrix.zig_pic) }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: alpine:3.20 container: ${{ contains(matrix.zig_target, 'armeb-') && 'alpine:3.19' || 'alpine:3.20' }} # qemu-armeb bug
env: env:
# zig is currently missing winpthreads; see https://github.com/ziglang/zig/issues/10989 # zig is currently missing winpthreads; see https://github.com/ziglang/zig/issues/10989
UPX_CONFIG_EXPECT_THREADS: ${{ contains(matrix.zig_target, '-windows') && 'OFF' || 'ON' }} UPX_CONFIG_EXPECT_THREADS: ${{ contains(matrix.zig_target, '-windows') && 'OFF' || 'ON' }}
@ -611,7 +603,7 @@ jobs:
fi fi
(cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N") (cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N")
if command -v hardlink >/dev/null; then (cd "tmp/artifact/$N" && hardlink .) fi if command -v hardlink >/dev/null; then (cd "tmp/artifact/$N" && hardlink .) fi
(cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la) (cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la && zstd -tq "$N.tar.zst")
echo "artifact_name=$N" >> $GITHUB_ENV echo "artifact_name=$N" >> $GITHUB_ENV
- name: ${{ format('Upload artifact {0}', env.artifact_name) }} - name: ${{ format('Upload artifact {0}', env.artifact_name) }}
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4

View File

@ -44,7 +44,7 @@ if(NOT USE_STRICT_DEFAULTS)
option(UPX_CONFIG_DISABLE_WSTRICT "Do not compile with strict compiler warnings." ON) option(UPX_CONFIG_DISABLE_WSTRICT "Do not compile with strict compiler warnings." ON)
else() else()
# strict config defaults for Git developer builds # strict config defaults for Git developer builds
message(STATUS "===== UPX info: strict config defaults enabled") message(STATUS "===== UPX NOTE: strict developer config defaults enabled =====")
option(UPX_CONFIG_DISABLE_GITREV "Do not compile with Git version info." OFF) option(UPX_CONFIG_DISABLE_GITREV "Do not compile with Git version info." OFF)
option(UPX_CONFIG_DISABLE_SANITIZE "Do not compile with sanitize options." OFF) option(UPX_CONFIG_DISABLE_SANITIZE "Do not compile with sanitize options." OFF)
option(UPX_CONFIG_DISABLE_WERROR "Do not compile with -Werror option." OFF) option(UPX_CONFIG_DISABLE_WERROR "Do not compile with -Werror option." OFF)
@ -521,10 +521,7 @@ endif()
# extra sanity checks to detect incompatible C vs CXX settings # extra sanity checks to detect incompatible C vs CXX settings
if(NOT UPX_CONFIG_CMAKE_DISABLE_PLATFORM_CHECK) if(NOT UPX_CONFIG_CMAKE_DISABLE_PLATFORM_CHECK)
upx_platform_check_mismatch(CMAKE_C_PLATFORM_ID CMAKE_CXX_PLATFORM_ID) upx_platform_check_c_cxx_mismatch()
upx_platform_check_mismatch(CMAKE_C_SIMULATE_ID CMAKE_CXX_SIMULATE_ID)
upx_platform_check_mismatch(CMAKE_C_COMPILER_ABI CMAKE_CXX_COMPILER_ABI)
upx_platform_check_mismatch(CMAKE_C_COMPILER_FRONTEND_VARIANT CMAKE_CXX_COMPILER_FRONTEND_VARIANT)
endif() endif()
upx_cmake_include_hook(9_finish) upx_cmake_include_hook(9_finish)

View File

@ -103,6 +103,7 @@ endmacro()
macro(upx_check_working_build_rpath var_name) macro(upx_check_working_build_rpath var_name)
if(WIN32 OR MINGW OR CYGWIN) if(WIN32 OR MINGW OR CYGWIN)
# always works; DLLs reside next to the executables # always works; DLLs reside next to the executables
set(${var_name} ON)
upx_cache_bool_vars(ON ${var_name}) upx_cache_bool_vars(ON ${var_name})
elseif(CMAKE_BUILD_WITH_INSTALL_RPATH OR CMAKE_SKIP_RPATH OR CMAKE_SKIP_BUILD_RPATH) elseif(CMAKE_BUILD_WITH_INSTALL_RPATH OR CMAKE_SKIP_RPATH OR CMAKE_SKIP_BUILD_RPATH)
# cannot work; BUILD_RPATH is disabled by global CMake settings # cannot work; BUILD_RPATH is disabled by global CMake settings
@ -281,6 +282,14 @@ function(upx_platform_check_mismatch var_name_1 var_name_2)
endif() endif()
endfunction() endfunction()
# check for incompatible C vs CXX settings
function(upx_platform_check_c_cxx_mismatch)
upx_platform_check_mismatch(CMAKE_C_PLATFORM_ID CMAKE_CXX_PLATFORM_ID)
upx_platform_check_mismatch(CMAKE_C_SIMULATE_ID CMAKE_CXX_SIMULATE_ID)
upx_platform_check_mismatch(CMAKE_C_COMPILER_ABI CMAKE_CXX_COMPILER_ABI)
upx_platform_check_mismatch(CMAKE_C_COMPILER_FRONTEND_VARIANT CMAKE_CXX_COMPILER_FRONTEND_VARIANT)
endfunction()
#*********************************************************************** #***********************************************************************
# compilation flags # compilation flags
#*********************************************************************** #***********************************************************************

View File

@ -8,7 +8,7 @@
# print some info about the build configuration # print some info about the build configuration
#*********************************************************************** #***********************************************************************
function(upx_print_info) # ARGV function(upx_print_info)
get_property(PROPERTY_GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) get_property(PROPERTY_GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
get_property(PROPERTY_TARGET_SUPPORTS_SHARED_LIBS GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS) get_property(PROPERTY_TARGET_SUPPORTS_SHARED_LIBS GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS)
@ -50,7 +50,7 @@ function(upx_print_info) # ARGV
endforeach() endforeach()
# misc # misc
upx_print_var(CMAKE_BUILD_WITH_INSTALL_RPATH) upx_print_var(CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_SKIP_RPATH CMAKE_SKIP_BUILD_RPATH CMAKE_SKIP_INSTALL_RPATH)
upx_print_var(CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_POSITION_INDEPENDENT_CODE) upx_print_var(CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_POSITION_INDEPENDENT_CODE)
upx_print_var(PROPERTY_TARGET_SUPPORTS_SHARED_LIBS) upx_print_var(PROPERTY_TARGET_SUPPORTS_SHARED_LIBS)
upx_print_var(UPX_CONFIG_SANITIZE_FLAGS_DEBUG UPX_CONFIG_SANITIZE_FLAGS_RELEASE) upx_print_var(UPX_CONFIG_SANITIZE_FLAGS_DEBUG UPX_CONFIG_SANITIZE_FLAGS_RELEASE)

View File

@ -32,13 +32,13 @@ ii cpp 4:13.2.0-7ubuntu1 amd64
ii cpp-13 13.2.0-23ubuntu4 amd64 GNU C preprocessor ii cpp-13 13.2.0-23ubuntu4 amd64 GNU C preprocessor
ii cpp-13-x86-64-linux-gnu 13.2.0-23ubuntu4 amd64 GNU C preprocessor for x86_64-linux-gnu ii cpp-13-x86-64-linux-gnu 13.2.0-23ubuntu4 amd64 GNU C preprocessor for x86_64-linux-gnu
ii cpp-x86-64-linux-gnu 4:13.2.0-7ubuntu1 amd64 GNU C preprocessor (cpp) for the amd64 architecture ii cpp-x86-64-linux-gnu 4:13.2.0-7ubuntu1 amd64 GNU C preprocessor (cpp) for the amd64 architecture
ii curl 8.5.0-2ubuntu10.1 amd64 command line tool for transferring data with URL syntax ii curl 8.5.0-2ubuntu10.2 amd64 command line tool for transferring data with URL syntax
ii dash 0.5.12-6ubuntu5 amd64 POSIX-compliant shell ii dash 0.5.12-6ubuntu5 amd64 POSIX-compliant shell
ii debconf 1.5.86ubuntu1 all Debian configuration management system ii debconf 1.5.86ubuntu1 all Debian configuration management system
ii debianutils 5.17build1 amd64 Miscellaneous utilities specific to Debian 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 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 diffutils 1:3.10-1build1 amd64 File comparison utilities
ii direnv 2.32.1-2build1 amd64 Utility to set directory specific environment variables ii direnv 2.32.1-2ubuntu0.24.04.1 amd64 Utility to set directory specific environment variables
ii dpkg 1.22.6ubuntu6 amd64 Debian package management system ii dpkg 1.22.6ubuntu6 amd64 Debian package management system
ii e2fsprogs 1.47.0-2.4~exp1ubuntu4 amd64 ext2/ext3/ext4 file system utilities ii e2fsprogs 1.47.0-2.4~exp1ubuntu4 amd64 ext2/ext3/ext4 file system utilities
ii elfutils 0.190-1.1build4 amd64 collection of utilities to handle ELF objects ii elfutils 0.190-1.1build4 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 findutils 4.9.0-5build1 amd64 utilities for finding files--find, xargs
ii fish 3.7.0-1 amd64 friendly interactive shell 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 fish-common 3.7.0-1 all friendly interactive shell (architecture-independent files)
ii fzf 0.44.1-1 amd64 general-purpose command-line fuzzy finder ii fzf 0.44.1-1ubuntu0.1 amd64 general-purpose command-line fuzzy finder
ii g++ 4:13.2.0-7ubuntu1 amd64 GNU C++ compiler ii g++ 4:13.2.0-7ubuntu1 amd64 GNU C++ compiler
ii g++-13 13.2.0-23ubuntu4 amd64 GNU C++ compiler ii g++-13 13.2.0-23ubuntu4 amd64 GNU C++ compiler
ii g++-13-multilib 13.2.0-23ubuntu4 amd64 GNU C++ compiler (multilib support) ii g++-13-multilib 13.2.0-23ubuntu4 amd64 GNU C++ compiler (multilib support)
@ -69,7 +69,7 @@ ii gcc-x86-64-linux-gnu 4:13.2.0-7ubuntu1 amd64
ii gdb 15.0.50.20240403-0ubuntu1 amd64 GNU Debugger ii gdb 15.0.50.20240403-0ubuntu1 amd64 GNU Debugger
ii git 1:2.43.0-1ubuntu7.1 amd64 fast, scalable, distributed revision control system ii git 1:2.43.0-1ubuntu7.1 amd64 fast, scalable, distributed revision control system
ii git-man 1:2.43.0-1ubuntu7.1 all fast, scalable, distributed revision control system (manual pages) ii git-man 1:2.43.0-1ubuntu7.1 all fast, scalable, distributed revision control system (manual pages)
ii gojq 0.12.13-1 amd64 pure Go implementation of jq (program) ii gojq 0.12.13-1ubuntu0.24.04.1 amd64 pure Go implementation of jq (program)
ii gpgv 2.4.4-2ubuntu17 amd64 GNU privacy guard - signature verification tool ii gpgv 2.4.4-2ubuntu17 amd64 GNU privacy guard - signature verification tool
ii grep 3.11-4build1 amd64 GNU grep, egrep and fgrep 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 groff-base 1.23.0-3build2 amd64 GNU troff text-formatting system (base system components)
@ -130,8 +130,8 @@ ii libcrypt-dev:amd64 1:4.4.36-4build1 amd64
ii libcrypt1:amd64 1:4.4.36-4build1 amd64 libcrypt shared library ii libcrypt1:amd64 1:4.4.36-4build1 amd64 libcrypt shared library
ii libctf-nobfd0:amd64 2.42-4ubuntu2 amd64 Compact C Type Format library (runtime, no BFD dependency) ii libctf-nobfd0:amd64 2.42-4ubuntu2 amd64 Compact C Type Format library (runtime, no BFD dependency)
ii libctf0:amd64 2.42-4ubuntu2 amd64 Compact C Type Format library (runtime, BFD dependency) ii libctf0:amd64 2.42-4ubuntu2 amd64 Compact C Type Format library (runtime, BFD dependency)
ii libcurl3t64-gnutls:amd64 8.5.0-2ubuntu10.1 amd64 easy-to-use client-side URL transfer library (GnuTLS flavour) ii libcurl3t64-gnutls:amd64 8.5.0-2ubuntu10.2 amd64 easy-to-use client-side URL transfer library (GnuTLS flavour)
ii libcurl4t64:amd64 8.5.0-2ubuntu10.1 amd64 easy-to-use client-side URL transfer library (OpenSSL flavour) ii libcurl4t64:amd64 8.5.0-2ubuntu10.2 amd64 easy-to-use client-side URL transfer library (OpenSSL flavour)
ii libdb5.3t64:amd64 5.3.28+dfsg2-7 amd64 Berkeley v5.3 Database Libraries [runtime] ii libdb5.3t64:amd64 5.3.28+dfsg2-7 amd64 Berkeley v5.3 Database Libraries [runtime]
ii libdebconfclient0:amd64 0.271ubuntu3 amd64 Debian Configuration Management System (C-implementation library) ii libdebconfclient0:amd64 0.271ubuntu3 amd64 Debian Configuration Management System (C-implementation library)
ii libdebuginfod-common 0.190-1.1build4 all configuration to enable the Debian debug info server ii libdebuginfod-common 0.190-1.1build4 all configuration to enable the Debian debug info server
@ -155,7 +155,7 @@ ii libgnutls30t64:amd64 3.8.3-1.1ubuntu3.1 amd64
ii libgomp1:amd64 14-20240412-0ubuntu1 amd64 GCC OpenMP (GOMP) support library ii libgomp1:amd64 14-20240412-0ubuntu1 amd64 GCC OpenMP (GOMP) support library
ii libgpg-error0:amd64 1.47-3build2 amd64 GnuPG development runtime library ii libgpg-error0:amd64 1.47-3build2 amd64 GnuPG development runtime library
ii libgprofng0:amd64 2.42-4ubuntu2 amd64 GNU Next Generation profiler (runtime library) ii libgprofng0:amd64 2.42-4ubuntu2 amd64 GNU Next Generation profiler (runtime library)
ii libgssapi-krb5-2:amd64 1.20.1-6ubuntu2 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism ii libgssapi-krb5-2:amd64 1.20.1-6ubuntu2.1 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
ii libhiredis1.1.0:amd64 1.2.0-6ubuntu3 amd64 minimalistic C client library for Redis ii libhiredis1.1.0:amd64 1.2.0-6ubuntu3 amd64 minimalistic C client library for Redis
ii libhogweed6t64:amd64 3.9.1-2.2build1 amd64 low level cryptographic library (public-key cryptos) ii libhogweed6t64:amd64 3.9.1-2.2build1 amd64 low level cryptographic library (public-key cryptos)
ii libhttp-parser2.9:amd64 2.9.4-6build1 amd64 parser for HTTP messages written in C ii libhttp-parser2.9:amd64 2.9.4-6build1 amd64 parser for HTTP messages written in C
@ -170,10 +170,10 @@ ii libitm1:amd64 14-20240412-0ubuntu1 amd64
ii libjansson4:amd64 2.14-2build2 amd64 C library for encoding, decoding and manipulating JSON data ii libjansson4:amd64 2.14-2build2 amd64 C library for encoding, decoding and manipulating JSON data
ii libjq1:amd64 1.7.1-3build1 amd64 lightweight and flexible command-line JSON processor - shared library ii libjq1:amd64 1.7.1-3build1 amd64 lightweight and flexible command-line JSON processor - shared library
ii libjsoncpp25:amd64 1.9.5-6build1 amd64 library for reading and writing JSON for C++ ii libjsoncpp25:amd64 1.9.5-6build1 amd64 library for reading and writing JSON for C++
ii libk5crypto3:amd64 1.20.1-6ubuntu2 amd64 MIT Kerberos runtime libraries - Crypto Library ii libk5crypto3:amd64 1.20.1-6ubuntu2.1 amd64 MIT Kerberos runtime libraries - Crypto Library
ii libkeyutils1:amd64 1.6.3-3build1 amd64 Linux Key Management Utilities (library) ii libkeyutils1:amd64 1.6.3-3build1 amd64 Linux Key Management Utilities (library)
ii libkrb5-3:amd64 1.20.1-6ubuntu2 amd64 MIT Kerberos runtime libraries ii libkrb5-3:amd64 1.20.1-6ubuntu2.1 amd64 MIT Kerberos runtime libraries
ii libkrb5support0:amd64 1.20.1-6ubuntu2 amd64 MIT Kerberos runtime libraries - Support library ii libkrb5support0:amd64 1.20.1-6ubuntu2.1 amd64 MIT Kerberos runtime libraries - Support library
ii libldap2:amd64 2.6.7+dfsg-1~exp1ubuntu8 amd64 OpenLDAP libraries ii libldap2:amd64 2.6.7+dfsg-1~exp1ubuntu8 amd64 OpenLDAP libraries
ii liblsan0:amd64 14-20240412-0ubuntu1 amd64 LeakSanitizer -- a memory leak detector (runtime) ii liblsan0:amd64 14-20240412-0ubuntu1 amd64 LeakSanitizer -- a memory leak detector (runtime)
ii libluajit-5.1-2:amd64 2.1.0+git20231223.c525bcb+dfsg-1 amd64 Just in time compiler for Lua - library version ii libluajit-5.1-2:amd64 2.1.0+git20231223.c525bcb+dfsg-1 amd64 Just in time compiler for Lua - library version
@ -211,9 +211,9 @@ ii libproc2-0:amd64 2:4.0.4-4ubuntu3 amd64
ii libpsl5t64:amd64 0.21.2-1.1build1 amd64 Library for Public Suffix List (shared libraries) 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 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-0ubuntu1 amd64 interactive high-level object-oriented language (default python3 version) ii libpython3-stdlib:amd64 3.12.3-0ubuntu1 amd64 interactive high-level object-oriented language (default python3 version)
ii libpython3.12-minimal:amd64 3.12.3-1 amd64 Minimal subset of the Python language (version 3.12) ii libpython3.12-minimal:amd64 3.12.3-1ubuntu0.1 amd64 Minimal subset of the Python language (version 3.12)
ii libpython3.12-stdlib:amd64 3.12.3-1 amd64 Interactive high-level object-oriented language (standard library, version 3.12) ii libpython3.12-stdlib:amd64 3.12.3-1ubuntu0.1 amd64 Interactive high-level object-oriented language (standard library, version 3.12)
ii libpython3.12t64:amd64 3.12.3-1 amd64 Shared Python runtime library (version 3.12) ii libpython3.12t64:amd64 3.12.3-1ubuntu0.1 amd64 Shared Python runtime library (version 3.12)
ii libquadmath0:amd64 14-20240412-0ubuntu1 amd64 GCC Quad-Precision Math Library ii libquadmath0:amd64 14-20240412-0ubuntu1 amd64 GCC Quad-Precision Math Library
ii libreadline8t64:amd64 8.2-4build1 amd64 GNU readline and history libraries, run-time libraries 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 ii librhash0:amd64 1.4.3-3build1 amd64 shared library for hash functions computing
@ -236,10 +236,10 @@ ii libsqlite3-0:amd64 3.45.1-1ubuntu2 amd64
ii libss2:amd64 1.47.0-2.4~exp1ubuntu4 amd64 command-line interface parsing library ii libss2:amd64 1.47.0-2.4~exp1ubuntu4 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-2build2 amd64 tiny C SSH library (OpenSSL flavor)
ii libssh2-1t64:amd64 1.11.0-4.1build2 amd64 SSH2 client-side library ii libssh2-1t64:amd64 1.11.0-4.1build2 amd64 SSH2 client-side library
ii libssl3t64:amd64 3.0.13-0ubuntu3.1 amd64 Secure Sockets Layer toolkit - shared libraries ii libssl3t64:amd64 3.0.13-0ubuntu3.2 amd64 Secure Sockets Layer toolkit - shared libraries
ii libstdc++-13-dev:amd64 13.2.0-23ubuntu4 amd64 GNU Standard C++ Library v3 (development files) ii libstdc++-13-dev:amd64 13.2.0-23ubuntu4 amd64 GNU Standard C++ Library v3 (development files)
ii libstdc++6:amd64 14-20240412-0ubuntu1 amd64 GNU Standard C++ Library v3 ii libstdc++6:amd64 14-20240412-0ubuntu1 amd64 GNU Standard C++ Library v3
ii libsystemd0:amd64 255.4-1ubuntu8.1 amd64 systemd utility library ii libsystemd0:amd64 255.4-1ubuntu8.2 amd64 systemd utility library
ii libtalloc2:amd64 2.4.2-1build2 amd64 hierarchical pool based memory allocator ii libtalloc2:amd64 2.4.2-1build2 amd64 hierarchical pool based memory allocator
ii libtasn1-6:amd64 4.19.0-3build1 amd64 Manage ASN.1 structures (runtime) ii libtasn1-6:amd64 4.19.0-3build1 amd64 Manage ASN.1 structures (runtime)
ii libtermkey1:amd64 0.22-1 amd64 library for processing keyboard input ii libtermkey1:amd64 0.22-1 amd64 library for processing keyboard input
@ -250,7 +250,7 @@ ii libtree-sitter0:amd64 0.20.8-2 amd64
ii libtsan2:amd64 14-20240412-0ubuntu1 amd64 ThreadSanitizer -- a Valgrind-based detector of data races (runtime) ii libtsan2:amd64 14-20240412-0ubuntu1 amd64 ThreadSanitizer -- a Valgrind-based detector of data races (runtime)
ii libubsan1:amd64 14-20240412-0ubuntu1 amd64 UBSan -- undefined behaviour sanitizer (runtime) ii libubsan1:amd64 14-20240412-0ubuntu1 amd64 UBSan -- undefined behaviour sanitizer (runtime)
ii libuchardet0:amd64 0.0.8-1build1 amd64 universal charset detection library - shared library ii libuchardet0:amd64 0.0.8-1build1 amd64 universal charset detection library - shared library
ii libudev1:amd64 255.4-1ubuntu8.1 amd64 libudev shared library ii libudev1:amd64 255.4-1ubuntu8.2 amd64 libudev shared library
ii libunibilium4:amd64 2.1.0-3 amd64 simple, self-contained terminfo library ii libunibilium4:amd64 2.1.0-3 amd64 simple, self-contained terminfo library
ii libunistring5:amd64 1.1-2build1 amd64 Unicode string library for C ii libunistring5:amd64 1.1-2build1 amd64 Unicode string library for C
ii libunwind8:amd64 1.6.2-3build1 amd64 library to determine the call-chain of a program - runtime ii libunwind8:amd64 1.6.2-3build1 amd64 library to determine the call-chain of a program - runtime
@ -279,7 +279,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 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 amd64 fast lossless compression algorithm -- development files ii libzstd-dev:amd64 1.5.5+dfsg2-2build1 amd64 fast lossless compression algorithm -- development files
ii libzstd1:amd64 1.5.5+dfsg2-2build1 amd64 fast lossless compression algorithm ii libzstd1:amd64 1.5.5+dfsg2-2build1 amd64 fast lossless compression algorithm
ii linux-libc-dev:amd64 6.8.0-35.35 amd64 Linux Kernel Headers for development ii linux-libc-dev:amd64 6.8.0-40.40 amd64 Linux Kernel Headers for development
ii login 1:4.13+dfsg1-4ubuntu3 amd64 system login tools ii login 1:4.13+dfsg1-4ubuntu3 amd64 system login tools
ii logsave 1.47.0-2.4~exp1ubuntu4 amd64 save the output of a command in a log file ii logsave 1.47.0-2.4~exp1ubuntu4 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) ii lsb-release 12.0-2 all Linux Standard Base version reporting utility (minimal implementation)
@ -304,7 +304,7 @@ ii neovim 0.9.5-6ubuntu2 amd64
ii neovim-runtime 0.9.5-6ubuntu2 all heavily refactored vim fork (runtime files) ii neovim-runtime 0.9.5-6ubuntu2 all heavily refactored vim fork (runtime files)
ii netbase 6.4 all Basic TCP/IP networking system ii netbase 6.4 all Basic TCP/IP networking system
ii ninja-build 1.11.1-2 amd64 small build system closest in spirit to Make ii ninja-build 1.11.1-2 amd64 small build system closest in spirit to Make
ii openssl 3.0.13-0ubuntu3.1 amd64 Secure Sockets Layer toolkit - cryptographic utility ii openssl 3.0.13-0ubuntu3.2 amd64 Secure Sockets Layer toolkit - cryptographic utility
ii p7zip 16.02+transitional.1 all transitional package ii p7zip 16.02+transitional.1 all transitional package
ii parallel 20231122+ds-1 all build and execute command lines from standard input in parallel ii parallel 20231122+ds-1 all build and execute command lines from standard input in parallel
ii passwd 1:4.13+dfsg1-4ubuntu3 amd64 change and administer password and group data ii passwd 1:4.13+dfsg1-4ubuntu3 amd64 change and administer password and group data
@ -331,8 +331,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-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-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-zstd 1.5.5.1-1build1 amd64 python bindings to Yann Collet ZSTD compression library
ii python3.12 3.12.3-1 amd64 Interactive high-level object-oriented language (version 3.12) ii python3.12 3.12.3-1ubuntu0.1 amd64 Interactive high-level object-oriented language (version 3.12)
ii python3.12-minimal 3.12.3-1 amd64 Minimal subset of the Python language (version 3.12) ii python3.12-minimal 3.12.3-1ubuntu0.1 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 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 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 ii ripgrep 14.1.0-1 amd64 Recursively searches directories for a regex pattern
@ -353,7 +353,7 @@ ii universal-ctags 5.9.20210829.0-1 amd64
ii unzip 6.0-28ubuntu4 amd64 De-archiver for .zip files ii unzip 6.0-28ubuntu4 amd64 De-archiver for .zip files
ii util-linux 2.39.3-9ubuntu6 amd64 miscellaneous system utilities ii util-linux 2.39.3-9ubuntu6 amd64 miscellaneous system utilities
ii valgrind 1:3.22.0-0ubuntu3 amd64 instrumentation framework for building dynamic analysis tools ii valgrind 1:3.22.0-0ubuntu3 amd64 instrumentation framework for building dynamic analysis tools
ii wget 1.21.4-1ubuntu4 amd64 retrieves files from the web ii wget 1.21.4-1ubuntu4.1 amd64 retrieves files from the web
ii xz-utils 5.6.1+really5.4.5-1 amd64 XZ-format compression utilities ii xz-utils 5.6.1+really5.4.5-1 amd64 XZ-format compression utilities
ii yash 2.55-2 amd64 yet another shell ii yash 2.55-2 amd64 yet another shell
ii yq 3.1.0-3 all Command-line YAML processor - jq wrapper for YAML documents ii yq 3.1.0-3 all Command-line YAML processor - jq wrapper for YAML documents
@ -370,7 +370,7 @@ ii zstd 1.5.5+dfsg2-2build1 amd64
||/ Name Version Architecture Description ||/ Name Version Architecture Description
Packages sorted by Installed-Size: Packages sorted by Installed-Size:
984549 ===== TOTAL (364 packages) 985000 ===== TOTAL (364 packages)
76943 valgrind amd64 76943 valgrind amd64
72249 gcc-13-x86-64-linux-gnu amd64 72249 gcc-13-x86-64-linux-gnu amd64
37841 g++-13-x86-64-linux-gnu amd64 37841 g++-13-x86-64-linux-gnu amd64
@ -397,7 +397,7 @@ Packages sorted by Installed-Size:
10764 libasan8 amd64 10764 libasan8 amd64
9665 libx32asan8 amd64 9665 libx32asan8 amd64
9556 lib32asan8 amd64 9556 lib32asan8 amd64
9012 libpython3.12-stdlib amd64 9020 libpython3.12-stdlib amd64
8905 libpython3.12t64 amd64 8905 libpython3.12t64 amd64
8893 libtsan2 amd64 8893 libtsan2 amd64
8636 lib32gcc-13-dev amd64 8636 lib32gcc-13-dev amd64
@ -406,30 +406,30 @@ Packages sorted by Installed-Size:
7923 python3.12-minimal amd64 7923 python3.12-minimal amd64
7913 perl-base amd64 7913 perl-base amd64
7492 libx32gcc-13-dev amd64 7492 libx32gcc-13-dev amd64
7193 linux-libc-dev amd64 7238 linux-libc-dev amd64
7024 direnv amd64
6946 libc6-dev-i386 amd64 6946 libc6-dev-i386 amd64
6944 coreutils amd64 6944 coreutils amd64
6832 direnv amd64
6775 neovim amd64 6775 neovim amd64
6743 lib32stdc++-13-dev amd64 6743 lib32stdc++-13-dev amd64
6607 libssl3t64 amd64 6608 libssl3t64 amd64
6433 libx32stdc++-13-dev amd64 6433 libx32stdc++-13-dev amd64
6237 dpkg amd64 6237 dpkg amd64
6158 7zip amd64 6158 7zip amd64
5219 bat amd64 5219 bat amd64
5210 ripgrep amd64 5210 ripgrep amd64
5169 libpython3.12-minimal amd64 5172 libpython3.12-minimal amd64
4879 libhwasan0 amd64 4879 libhwasan0 amd64
4341 ncurses-term all 4341 ncurses-term all
4244 minify amd64 4244 minify amd64
4193 libglib2.0-0t64 amd64 4193 libglib2.0-0t64 amd64
4103 apt amd64 4103 apt amd64
3983 gojq amd64 4074 gojq amd64
3956 python3-pycryptodome amd64 3956 python3-pycryptodome amd64
3849 libgprofng0 amd64 3849 libgprofng0 amd64
3806 liblsan0 amd64 3806 liblsan0 amd64
3738 fzf amd64
3721 groff-base amd64 3721 groff-base amd64
3627 fzf amd64
3605 python2.7-minimal amd64 3605 python2.7-minimal amd64
3443 fish amd64 3443 fish amd64
3441 re2c amd64 3441 re2c amd64

View File

@ -372,8 +372,8 @@ typedef long long upx_off_t;
// for no-op debug output // for no-op debug output
inline void NO_printf(const char *, ...) noexcept attribute_format(1, 2); inline void NO_printf(const char *, ...) noexcept attribute_format(1, 2);
inline void NO_fprintf(FILE *, const char *, ...) noexcept attribute_format(2, 3);
inline void NO_printf(const char *, ...) noexcept {} inline void NO_printf(const char *, ...) noexcept {}
inline void NO_fprintf(FILE *, const char *, ...) noexcept attribute_format(2, 3);
inline void NO_fprintf(FILE *, const char *, ...) noexcept {} inline void NO_fprintf(FILE *, const char *, ...) noexcept {}
#if __has_builtin(__builtin_memcmp) #if __has_builtin(__builtin_memcmp)

View File

@ -133,7 +133,7 @@ public:
CantPackException(const char *m = nullptr, bool w = false) noexcept : super(m, 0, w) {} CantPackException(const char *m = nullptr, bool w = false) noexcept : super(m, 0, w) {}
}; };
class UnknownExecutableFormatException : public CantPackException { class UnknownExecutableFormatException final : public CantPackException {
typedef CantPackException super; typedef CantPackException super;
public: public:
UnknownExecutableFormatException(const char *m = nullptr, bool w = false) noexcept UnknownExecutableFormatException(const char *m = nullptr, bool w = false) noexcept

View File

@ -45,23 +45,23 @@
// libc++ hardenining // libc++ hardenining
#if defined(__cplusplus) && 0 // TODO later #if defined(__cplusplus) && 0 // TODO later
#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ + 0 >= 18)
#if !defined(_LIBCPP_HARDENING_MODE) #if !defined(_LIBCPP_HARDENING_MODE)
#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ + 0 >= 18)
#if DEBUG #if DEBUG
#define _LIBCPP_HARDENING_MODE _LIBCPP_HARDENING_MODE_DEBUG #define _LIBCPP_HARDENING_MODE _LIBCPP_HARDENING_MODE_DEBUG
#else #else
#define _LIBCPP_HARDENING_MODE _LIBCPP_HARDENING_MODE_EXTENSIVE #define _LIBCPP_HARDENING_MODE _LIBCPP_HARDENING_MODE_EXTENSIVE
#endif #endif
#endif
#endif // clang >= 18 #endif // clang >= 18
#endif // _LIBCPP_HARDENING_MODE
#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ + 0 < 18)
#if !defined(_LIBCPP_ENABLE_ASSERTIONS) #if !defined(_LIBCPP_ENABLE_ASSERTIONS)
#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ + 0 < 18)
#if DEBUG #if DEBUG
#define _LIBCPP_ENABLE_ASSERTIONS 1 #define _LIBCPP_ENABLE_ASSERTIONS 1
#endif #endif
#endif
#endif // clang < 18 #endif // clang < 18
#endif // _LIBCPP_ENABLE_ASSERTIONS
#endif // TODO later #endif // TODO later