all: CI and misc updates
This commit is contained in:
parent
ece5af2895
commit
b75e7687f4
5
.github/workflows/ci.yml
vendored
5
.github/workflows/ci.yml
vendored
@ -11,8 +11,8 @@ on: [push, workflow_dispatch]
|
|||||||
env:
|
env:
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
UPX_CMAKE_BUILD_FLAGS: --verbose
|
UPX_CMAKE_BUILD_FLAGS: --verbose
|
||||||
# 2023-06-27
|
# 2023-06-29
|
||||||
ZIG_DIST_VERSION: 0.11.0-dev.3859+88284c124
|
ZIG_DIST_VERSION: 0.11.0-dev.3886+0c1bfe271
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
job-rebuild-and-verify-stubs:
|
job-rebuild-and-verify-stubs:
|
||||||
@ -144,6 +144,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
# testsuite needs working "readlink -en" and "sha256sum"
|
# testsuite needs working "readlink -en" and "sha256sum"
|
||||||
if ! test -e /usr/local/opt/coreutils/libexec/gnubin/readlink; then
|
if ! test -e /usr/local/opt/coreutils/libexec/gnubin/readlink; then
|
||||||
|
echo "===== brew leaves:"; brew leaves; echo "===== brew list:"; brew list
|
||||||
brew update
|
brew update
|
||||||
brew install coreutils
|
brew install coreutils
|
||||||
fi
|
fi
|
||||||
|
|||||||
50
.github/workflows/test-alpine-linux.yml
vendored
50
.github/workflows/test-alpine-linux.yml
vendored
@ -58,8 +58,10 @@ jobs:
|
|||||||
name: ${{ env.artifact_name }}
|
name: ${{ env.artifact_name }}
|
||||||
path: 'upx*/build/*/upx'
|
path: 'upx*/build/*/upx'
|
||||||
|
|
||||||
job-alpine-by-hand: # uses shell
|
job-alpine-by-hand: # uses a POSIX-compliant shell
|
||||||
# and also uses a subdirectory "upx with space" in order to detect possible quoting issues
|
# ...and also uses a subdirectory "upx with space" in order to detect possible quoting issues
|
||||||
|
# ...and also uses ccache as we are running the same build-script again and again
|
||||||
|
if: ${{ true }}
|
||||||
strategy: { matrix: { container: ['alpine:3.9','alpine:edge'] } }
|
strategy: { matrix: { container: ['alpine:3.9','alpine:edge'] } }
|
||||||
name: ${{ format('gcc by-hand {0}', matrix.container) }}
|
name: ${{ format('gcc by-hand {0}', matrix.container) }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -67,7 +69,15 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: ${{ format('Install packages {0}', matrix.container) }}
|
- name: ${{ format('Install packages {0}', matrix.container) }}
|
||||||
run: |
|
run: |
|
||||||
apk update && apk upgrade && apk add bash dash g++ git mksh zsh
|
# install ccache, g++, git and various POSIX shells
|
||||||
|
shells="bash dash loksh mksh zsh"
|
||||||
|
case ${{ matrix.container }} in
|
||||||
|
*:edge) shells="$shells oksh yash" ;;
|
||||||
|
esac
|
||||||
|
echo "installing shells: $shells"
|
||||||
|
apk update && apk upgrade && apk add ccache g++ git $shells
|
||||||
|
# enable ccache
|
||||||
|
echo -e "CC=ccache gcc\nCXX=ccache g++ -std=gnu++17" >> $GITHUB_ENV
|
||||||
# this seems to be needed when running in a container (beause of UID mismatch??)
|
# this seems to be needed when running in a container (beause of UID mismatch??)
|
||||||
git config --global --add safe.directory '*'
|
git config --global --add safe.directory '*'
|
||||||
- name: 'Check out code'
|
- name: 'Check out code'
|
||||||
@ -77,11 +87,45 @@ jobs:
|
|||||||
path: 'upx with space'
|
path: 'upx with space'
|
||||||
- name: 'Build by-hand with bash'
|
- name: 'Build by-hand with bash'
|
||||||
run: 'bash "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
run: 'bash "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with bash --posix'
|
||||||
|
run: 'bash --posix "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with busybox ash'
|
||||||
|
run: 'busybox ash "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
- name: 'Build by-hand with busybox sh'
|
- name: 'Build by-hand with busybox sh'
|
||||||
run: 'busybox sh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
run: 'busybox sh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
- name: 'Build by-hand with dash'
|
- name: 'Build by-hand with dash'
|
||||||
run: 'dash "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
run: 'dash "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with loksh'
|
||||||
|
run: 'ksh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with loksh -o posix'
|
||||||
|
run: 'ksh -o posix "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with loksh -o sh'
|
||||||
|
run: 'ksh -o sh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
- name: 'Build by-hand with mksh'
|
- name: 'Build by-hand with mksh'
|
||||||
run: 'mksh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
run: 'mksh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with mksh -o posix'
|
||||||
|
run: 'mksh -o posix "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with mksh -o sh'
|
||||||
|
run: 'mksh -o sh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with oksh'
|
||||||
|
if: ${{ contains(matrix.container, ':edge') }}
|
||||||
|
run: 'oksh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with oksh -o posix'
|
||||||
|
if: ${{ contains(matrix.container, ':edge') }}
|
||||||
|
run: 'oksh -o posix "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with oksh -o sh'
|
||||||
|
if: ${{ contains(matrix.container, ':edge') }}
|
||||||
|
run: 'oksh -o sh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with yash'
|
||||||
|
if: ${{ contains(matrix.container, ':edge') }}
|
||||||
|
run: 'yash "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
- name: 'Build by-hand with zsh'
|
- name: 'Build by-hand with zsh'
|
||||||
run: 'zsh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
run: 'zsh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with zsh --emulate ksh'
|
||||||
|
run: 'zsh --emulate ksh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Build by-hand with zsh --emulate sh'
|
||||||
|
run: 'zsh --emulate sh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
|
||||||
|
- name: 'Show ccache stats'
|
||||||
|
run: |
|
||||||
|
ccache -s
|
||||||
|
ccache -p
|
||||||
|
|||||||
4
.github/workflows/weekly-ci-zigcc.yml
vendored
4
.github/workflows/weekly-ci-zigcc.yml
vendored
@ -8,8 +8,8 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
# 2023-06-27
|
# 2023-06-29
|
||||||
ZIG_DIST_VERSION: 0.11.0-dev.3859+88284c124
|
ZIG_DIST_VERSION: 0.11.0-dev.3886+0c1bfe271
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
job-linux-zigcc: # uses cmake + make
|
job-linux-zigcc: # uses cmake + make
|
||||||
|
|||||||
@ -416,10 +416,6 @@ endif() # UPX_CONFIG_CMAKE_DISABLE_INSTALL
|
|||||||
# finally print some info about the build configuration
|
# finally print some info about the build configuration
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/maint/make/CMakeLists.maint.txt")
|
|
||||||
include("${CMAKE_CURRENT_SOURCE_DIR}/maint/make/CMakeLists.maint.txt")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
function(print_var)
|
function(print_var)
|
||||||
foreach(v ${ARGV})
|
foreach(v ${ARGV})
|
||||||
if(${v})
|
if(${v})
|
||||||
@ -427,6 +423,11 @@ function(print_var)
|
|||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/maint/make/CMakeLists.maint.txt")
|
||||||
|
include("${CMAKE_CURRENT_SOURCE_DIR}/maint/make/CMakeLists.maint.txt")
|
||||||
|
endif()
|
||||||
|
|
||||||
print_var(CMAKE_VERSION UPX_CONFIG_CMAKE_MINIMUM_REQUIRED_VERSION)
|
print_var(CMAKE_VERSION UPX_CONFIG_CMAKE_MINIMUM_REQUIRED_VERSION)
|
||||||
if(NOT UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO)
|
if(NOT UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO)
|
||||||
print_var(CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_VERSION)
|
print_var(CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_VERSION)
|
||||||
|
|||||||
@ -6,10 +6,10 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
|||||||
# create the image from Dockerfile
|
# create the image from Dockerfile
|
||||||
# using a rootless Podman container
|
# using a rootless Podman container
|
||||||
|
|
||||||
# NOTE: this image is based on rebuild-stubs-with-podman/upx-stubtools-20221212-v5,
|
# NOTE: this image is based on rebuild-stubs-with-podman/upx-stubtools-20221212-v6,
|
||||||
# so you have to create that image first
|
# so you have to create that image first
|
||||||
# WARNING: we install many packages, so the resulting image needs A LOT of disk space!
|
# WARNING: we install many packages, so the resulting image needs A LOT of disk space!
|
||||||
image=upx-cross-compile-20230115-v3
|
image=upx-cross-compile-20230115-v4
|
||||||
|
|
||||||
podman build -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir"
|
podman build -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir"
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
|||||||
# list all system packages that are installed in the image
|
# list all system packages that are installed in the image
|
||||||
# using a rootless Podman container
|
# using a rootless Podman container
|
||||||
|
|
||||||
image=upx-cross-compile-20230115-v3
|
image=upx-cross-compile-20230115-v4
|
||||||
|
|
||||||
podman image list "$image"
|
podman image list "$image"
|
||||||
echo
|
echo
|
||||||
|
|||||||
@ -6,7 +6,7 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
|||||||
# run an interactive shell in the image
|
# run an interactive shell in the image
|
||||||
# using a rootless Podman container
|
# using a rootless Podman container
|
||||||
|
|
||||||
image=upx-cross-compile-20230115-v3
|
image=upx-cross-compile-20230115-v4
|
||||||
|
|
||||||
flags=( --read-only --rm --pull=never )
|
flags=( --read-only --rm --pull=never )
|
||||||
flags+=( --cap-drop=all ) # drop all capabilities
|
flags+=( --cap-drop=all ) # drop all capabilities
|
||||||
@ -23,6 +23,8 @@ if [[ 1 == 1 ]]; then
|
|||||||
# INFO: SELinux users *may* have to add ":z" to the volume mount flags; check the docs!
|
# INFO: SELinux users *may* have to add ":z" to the volume mount flags; check the docs!
|
||||||
flags+=( -v "${argv0dir}/../..:/home/upx/src/upx" )
|
flags+=( -v "${argv0dir}/../..:/home/upx/src/upx" )
|
||||||
flags+=( -w /home/upx/src/upx ) # set working directory
|
flags+=( -w /home/upx/src/upx ) # set working directory
|
||||||
|
flags+=( --tmpfs /home/upx/.cache:rw,exec ) # mount a writeable tmpfs
|
||||||
|
flags+=( --tmpfs /home/upx/.local:rw,exec ) # mount a writeable tmpfs
|
||||||
else
|
else
|
||||||
# run as user root 0:0
|
# run as user root 0:0
|
||||||
# ONLY FOR DEBUGGING THE IMAGE
|
# ONLY FOR DEBUGGING THE IMAGE
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
# NOTE: this image is based on rebuild-stubs-with-podman/upx-stubtools-20221212-v5,
|
# NOTE: this image is based on rebuild-stubs-with-podman/upx-stubtools-20221212-v6,
|
||||||
# so you have to create that image first
|
# so you have to create that image first
|
||||||
# WARNING: we install many packages, so the resulting image needs A LOT of disk space!
|
# WARNING: we install many packages, so the resulting image needs A LOT of disk space!
|
||||||
FROM localhost/upx-stubtools-20221212-v5
|
FROM localhost/upx-stubtools-20221212-v6
|
||||||
ENV UPX_CONTAINER_IMAGE_NAME=upx-cross-compile-20230115-v3
|
ENV UPX_CONTAINER_IMAGE_NAME=upx-cross-compile-20230115-v4
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|||||||
@ -15,6 +15,7 @@ fi
|
|||||||
# go to upx top-level directory
|
# go to upx top-level directory
|
||||||
cd "$argv0dir/../.." || exit 1
|
cd "$argv0dir/../.." || exit 1
|
||||||
pwd
|
pwd
|
||||||
|
test -f doc/upx.pod || exit 1 # sanity check
|
||||||
test -f src/version.h || exit 1 # sanity check
|
test -f src/version.h || exit 1 # sanity check
|
||||||
|
|
||||||
function run_config_and_build {
|
function run_config_and_build {
|
||||||
|
|||||||
@ -41,9 +41,11 @@ ii binutils-sparc64-linux-gnu 2.38-4ubuntu2.2
|
|||||||
ii binutils-x86-64-linux-gnu 2.38-4ubuntu2.2 amd64 GNU binary utilities, for x86-64-linux-gnu target
|
ii binutils-x86-64-linux-gnu 2.38-4ubuntu2.2 amd64 GNU binary utilities, for x86-64-linux-gnu target
|
||||||
ii binutils-x86-64-linux-gnux32 2.38-4ubuntu2.2 amd64 GNU binary utilities, for x86-64-linux-gnux32 target
|
ii binutils-x86-64-linux-gnux32 2.38-4ubuntu2.2 amd64 GNU binary utilities, for x86-64-linux-gnux32 target
|
||||||
ii bsdutils 1:2.37.2-4ubuntu3 amd64 basic utilities from 4.4BSD-Lite
|
ii bsdutils 1:2.37.2-4ubuntu3 amd64 basic utilities from 4.4BSD-Lite
|
||||||
|
ii busybox 1:1.30.1-7ubuntu3 amd64 Tiny utilities for small and embedded systems
|
||||||
ii bzip2 1.0.8-5build1 amd64 high-quality block-sorting file compressor - utilities
|
ii bzip2 1.0.8-5build1 amd64 high-quality block-sorting file compressor - utilities
|
||||||
ii ca-certificates 20230311ubuntu0.22.04.1 all Common CA certificates
|
ii ca-certificates 20230311ubuntu0.22.04.1 all Common CA certificates
|
||||||
ii cabextract 1.9-3 amd64 Microsoft Cabinet file unpacker
|
ii cabextract 1.9-3 amd64 Microsoft Cabinet file unpacker
|
||||||
|
ii ccache 4.5.1-1 amd64 Compiler cache for fast recompilation of C/C++ code
|
||||||
ii chrpath 0.16-2 amd64 Tool to edit the rpath in ELF binaries
|
ii chrpath 0.16-2 amd64 Tool to edit the rpath in ELF binaries
|
||||||
ii clang-14 1:14.0.0-1ubuntu1 amd64 C, C++ and Objective-C compiler
|
ii clang-14 1:14.0.0-1ubuntu1 amd64 C, C++ and Objective-C compiler
|
||||||
ii clang-format-14 1:14.0.0-1ubuntu1 amd64 Tool to format C/C++/Obj-C code
|
ii clang-format-14 1:14.0.0-1ubuntu1 amd64 Tool to format C/C++/Obj-C code
|
||||||
@ -166,6 +168,7 @@ ii g++-s390x-linux-gnu 4:11.2.0-1ubuntu1
|
|||||||
ii g++-sh4-linux-gnu 4:11.2.0--1ubuntu1 amd64 GNU C++ compiler for the sh4 architecture
|
ii g++-sh4-linux-gnu 4:11.2.0--1ubuntu1 amd64 GNU C++ compiler for the sh4 architecture
|
||||||
ii g++-sparc64-linux-gnu 4:11.2.0--1ubuntu1 amd64 GNU C++ compiler for the sparc64 architecture
|
ii g++-sparc64-linux-gnu 4:11.2.0--1ubuntu1 amd64 GNU C++ compiler for the sparc64 architecture
|
||||||
ii g++-x86-64-linux-gnux32 4:11.2.0--1ubuntu1 amd64 GNU C++ compiler for the x32 architecture
|
ii g++-x86-64-linux-gnux32 4:11.2.0--1ubuntu1 amd64 GNU C++ compiler for the x32 architecture
|
||||||
|
ii gawk 1:5.1.0-1build3 amd64 GNU awk, a pattern scanning and processing language
|
||||||
ii gcc 4:11.2.0-1ubuntu1 amd64 GNU C compiler
|
ii gcc 4:11.2.0-1ubuntu1 amd64 GNU C compiler
|
||||||
ii gcc-10-cross-base-mipsen 10.3.0-1ubuntu1cross2 all GCC, the GNU Compiler Collection (library base package)
|
ii gcc-10-cross-base-mipsen 10.3.0-1ubuntu1cross2 all GCC, the GNU Compiler Collection (library base package)
|
||||||
ii gcc-10-mips-linux-gnu 10.3.0-1ubuntu1cross2 amd64 GNU C compiler (cross compiler for mips architecture)
|
ii gcc-10-mips-linux-gnu 10.3.0-1ubuntu1cross2 amd64 GNU C compiler (cross compiler for mips architecture)
|
||||||
@ -628,6 +631,7 @@ ii libgudev-1.0-0:amd64 1:237-2build1
|
|||||||
ii libgudev-1.0-0:i386 1:237-2build1 i386 GObject-based wrapper library for libudev
|
ii libgudev-1.0-0:i386 1:237-2build1 i386 GObject-based wrapper library for libudev
|
||||||
ii libharfbuzz0b:amd64 2.7.4-1ubuntu3.1 amd64 OpenType text shaping engine (shared library)
|
ii libharfbuzz0b:amd64 2.7.4-1ubuntu3.1 amd64 OpenType text shaping engine (shared library)
|
||||||
ii libharfbuzz0b:i386 2.7.4-1ubuntu3.1 i386 OpenType text shaping engine (shared library)
|
ii libharfbuzz0b:i386 2.7.4-1ubuntu3.1 i386 OpenType text shaping engine (shared library)
|
||||||
|
ii libhiredis0.14:amd64 0.14.1-2 amd64 minimalistic C client library for Redis
|
||||||
ii libhogweed6:amd64 3.7.3-1build2 amd64 low level cryptographic library (public-key cryptos)
|
ii libhogweed6:amd64 3.7.3-1build2 amd64 low level cryptographic library (public-key cryptos)
|
||||||
ii libhogweed6:i386 3.7.3-1build2 i386 low level cryptographic library (public-key cryptos)
|
ii libhogweed6:i386 3.7.3-1build2 i386 low level cryptographic library (public-key cryptos)
|
||||||
ii libhwasan0-arm64-cross 12.1.0-2ubuntu1~22.04cross1 all AddressSanitizer -- a fast memory error detector
|
ii libhwasan0-arm64-cross 12.1.0-2ubuntu1~22.04cross1 all AddressSanitizer -- a fast memory error detector
|
||||||
@ -820,6 +824,7 @@ ii libsensors5:i386 1:3.6.0-7ubuntu1
|
|||||||
ii libsepol2:amd64 3.3-1build1 amd64 SELinux library for manipulating binary security policies
|
ii libsepol2:amd64 3.3-1build1 amd64 SELinux library for manipulating binary security policies
|
||||||
ii libshout3:amd64 2.4.5-1build3 amd64 MP3/Ogg Vorbis broadcast streaming library
|
ii libshout3:amd64 2.4.5-1build3 amd64 MP3/Ogg Vorbis broadcast streaming library
|
||||||
ii libshout3:i386 2.4.5-1build3 i386 MP3/Ogg Vorbis broadcast streaming library
|
ii libshout3:i386 2.4.5-1build3 i386 MP3/Ogg Vorbis broadcast streaming library
|
||||||
|
ii libsigsegv2:amd64 2.13-1ubuntu3 amd64 Library for handling page faults in a portable way
|
||||||
ii libslang2:amd64 2.3.2-5build4 amd64 S-Lang programming library - runtime version
|
ii libslang2:amd64 2.3.2-5build4 amd64 S-Lang programming library - runtime version
|
||||||
ii libslang2:i386 2.3.2-5build4 i386 S-Lang programming library - runtime version
|
ii libslang2:i386 2.3.2-5build4 i386 S-Lang programming library - runtime version
|
||||||
ii libslirp0:amd64 4.6.1-1build1 amd64 General purpose TCP-IP emulator library
|
ii libslirp0:amd64 4.6.1-1build1 amd64 General purpose TCP-IP emulator library
|
||||||
@ -1070,7 +1075,7 @@ ii linux-libc-dev-s390x-cross 5.15.0-22.22cross3
|
|||||||
ii linux-libc-dev-sh4-cross 5.15.0-22.22cross4 all Linux Kernel Headers for development (for cross-compiling)
|
ii linux-libc-dev-sh4-cross 5.15.0-22.22cross4 all Linux Kernel Headers for development (for cross-compiling)
|
||||||
ii linux-libc-dev-sparc64-cross 5.15.0-22.22cross4 all Linux Kernel Headers for development (for cross-compiling)
|
ii linux-libc-dev-sparc64-cross 5.15.0-22.22cross4 all Linux Kernel Headers for development (for cross-compiling)
|
||||||
ii linux-libc-dev-x32-cross 5.15.0-22.22cross4 all Linux Kernel Headers for development (for cross-compiling)
|
ii linux-libc-dev-x32-cross 5.15.0-22.22cross4 all Linux Kernel Headers for development (for cross-compiling)
|
||||||
ii linux-libc-dev:amd64 5.15.0-75.82 amd64 Linux Kernel Headers for development
|
ii linux-libc-dev:amd64 5.15.0-76.83 amd64 Linux Kernel Headers for development
|
||||||
ii lldb-14 1:14.0.0-1ubuntu1 amd64 Next generation, high-performance debugger
|
ii lldb-14 1:14.0.0-1ubuntu1 amd64 Next generation, high-performance debugger
|
||||||
ii llvm-14 1:14.0.0-1ubuntu1 amd64 Modular compiler and toolchain technologies
|
ii llvm-14 1:14.0.0-1ubuntu1 amd64 Modular compiler and toolchain technologies
|
||||||
ii llvm-14-dev 1:14.0.0-1ubuntu1 amd64 Modular compiler and toolchain technologies, libraries and headers
|
ii llvm-14-dev 1:14.0.0-1ubuntu1 amd64 Modular compiler and toolchain technologies, libraries and headers
|
||||||
@ -1091,6 +1096,7 @@ ii mesa-vulkan-drivers:i386 22.2.5-0ubuntu0.1~22.04.3
|
|||||||
ii mingw-w64-common 8.0.0-1 all Common files for Mingw-w64
|
ii mingw-w64-common 8.0.0-1 all Common files for Mingw-w64
|
||||||
ii mingw-w64-i686-dev 8.0.0-1 all Development files for MinGW-w64 targeting Win32
|
ii mingw-w64-i686-dev 8.0.0-1 all Development files for MinGW-w64 targeting Win32
|
||||||
ii mingw-w64-x86-64-dev 8.0.0-1 all Development files for MinGW-w64 targeting Win64
|
ii mingw-w64-x86-64-dev 8.0.0-1 all Development files for MinGW-w64 targeting Win64
|
||||||
|
ii mksh 59c-16 amd64 MirBSD Korn Shell
|
||||||
ii moreutils 0.66-1 amd64 additional Unix utilities
|
ii moreutils 0.66-1 amd64 additional Unix utilities
|
||||||
ii mount 2.37.2-4ubuntu3 amd64 tools for mounting and manipulating filesystems
|
ii mount 2.37.2-4ubuntu3 amd64 tools for mounting and manipulating filesystems
|
||||||
ii msr-tools 1.3-4 amd64 Utilities for modifying MSRs from userspace
|
ii msr-tools 1.3-4 amd64 Utilities for modifying MSRs from userspace
|
||||||
@ -1161,6 +1167,7 @@ ii systemd-sysv 249.11-0ubuntu3.9
|
|||||||
ii systemd-timesyncd 249.11-0ubuntu3.9 amd64 minimalistic service to synchronize local time with NTP servers
|
ii systemd-timesyncd 249.11-0ubuntu3.9 amd64 minimalistic service to synchronize local time with NTP servers
|
||||||
ii sysvinit-utils 3.01-1ubuntu1 amd64 System-V-like utilities
|
ii sysvinit-utils 3.01-1ubuntu1 amd64 System-V-like utilities
|
||||||
ii tar 1.34+dfsg-1ubuntu0.1.22.04.1 amd64 GNU version of the tar archiving utility
|
ii tar 1.34+dfsg-1ubuntu0.1.22.04.1 amd64 GNU version of the tar archiving utility
|
||||||
|
ii time 1.9-0.1build2 amd64 GNU time program for measuring CPU resource usage
|
||||||
ii ubuntu-keyring 2021.03.26 all GnuPG keys of the Ubuntu archive
|
ii ubuntu-keyring 2021.03.26 all GnuPG keys of the Ubuntu archive
|
||||||
ii ubuntu-mono 20.10-0ubuntu2 all Ubuntu Mono Icon theme
|
ii ubuntu-mono 20.10-0ubuntu2 all Ubuntu Mono Icon theme
|
||||||
ii ucf 3.0043 all Update Configuration File(s): preserve user changes to config files
|
ii ucf 3.0043 all Update Configuration File(s): preserve user changes to config files
|
||||||
@ -1181,6 +1188,7 @@ ii xdg-user-dirs 0.17-2ubuntu4
|
|||||||
ii xkb-data 2.33-1 all X Keyboard Extension (XKB) configuration data
|
ii xkb-data 2.33-1 all X Keyboard Extension (XKB) configuration data
|
||||||
ii xxd 2:8.2.3995-1ubuntu2.8 amd64 tool to make (or reverse) a hex dump
|
ii xxd 2:8.2.3995-1ubuntu2.8 amd64 tool to make (or reverse) a hex dump
|
||||||
ii xz-utils 5.2.5-2ubuntu1 amd64 XZ-format compression utilities
|
ii xz-utils 5.2.5-2ubuntu1 amd64 XZ-format compression utilities
|
||||||
|
ii yash 2.51-1 amd64 yet another shell
|
||||||
ii zip 3.0-12build2 amd64 Archiver for .zip files
|
ii zip 3.0-12build2 amd64 Archiver for .zip files
|
||||||
ii zlib1g-dev:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - development
|
ii zlib1g-dev:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - development
|
||||||
ii zlib1g:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - runtime
|
ii zlib1g:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - runtime
|
||||||
@ -1193,7 +1201,7 @@ ii zstd 1.4.8+dfsg-3build1
|
|||||||
||/ Name Version Architecture Description
|
||/ Name Version Architecture Description
|
||||||
|
|
||||||
Packages sorted by Installed-Size:
|
Packages sorted by Installed-Size:
|
||||||
7715290 ===== TOTAL (1187 packages)
|
7722308 ===== TOTAL (1195 packages)
|
||||||
474522 libwine i386
|
474522 libwine i386
|
||||||
270993 llvm-14-dev amd64
|
270993 llvm-14-dev amd64
|
||||||
264247 qemu-efi-aarch64 all
|
264247 qemu-efi-aarch64 all
|
||||||
@ -1549,11 +1557,13 @@ Packages sorted by Installed-Size:
|
|||||||
1746 libunistring2 amd64
|
1746 libunistring2 amd64
|
||||||
1730 libsdl2-2.0-0 amd64
|
1730 libsdl2-2.0-0 amd64
|
||||||
1695 libgcc-11-dev-alpha-cross all
|
1695 libgcc-11-dev-alpha-cross all
|
||||||
|
1680 gawk amd64
|
||||||
1655 zstd amd64
|
1655 zstd amd64
|
||||||
1628 libslang2 amd64
|
1628 libslang2 amd64
|
||||||
1602 libsqlite3-0 amd64
|
1602 libsqlite3-0 amd64
|
||||||
1534 libcairo2 i386
|
1534 libcairo2 i386
|
||||||
1516 e2fsprogs amd64
|
1516 e2fsprogs amd64
|
||||||
|
1508 mksh amd64
|
||||||
1487 libstdc++6-armhf-cross all
|
1487 libstdc++6-armhf-cross all
|
||||||
1484 libsamplerate0 amd64
|
1484 libsamplerate0 amd64
|
||||||
1483 libsamplerate0 i386
|
1483 libsamplerate0 i386
|
||||||
@ -1562,6 +1572,7 @@ Packages sorted by Installed-Size:
|
|||||||
1455 libx11-6 i386
|
1455 libx11-6 i386
|
||||||
1445 hyperfine amd64
|
1445 hyperfine amd64
|
||||||
1436 libobjc-11-dev amd64
|
1436 libobjc-11-dev amd64
|
||||||
|
1429 yash amd64
|
||||||
1429 libx11-data all
|
1429 libx11-data all
|
||||||
1425 libp11-kit0 i386
|
1425 libp11-kit0 i386
|
||||||
1408 llvm-14-runtime amd64
|
1408 llvm-14-runtime amd64
|
||||||
@ -1571,6 +1582,7 @@ Packages sorted by Installed-Size:
|
|||||||
1373 libslang2 i386
|
1373 libslang2 i386
|
||||||
1354 libgcrypt20 amd64
|
1354 libgcrypt20 amd64
|
||||||
1351 libcairo2 amd64
|
1351 libcairo2 amd64
|
||||||
|
1343 ccache amd64
|
||||||
1328 libzstd-dev amd64
|
1328 libzstd-dev amd64
|
||||||
1292 libp11-kit0 amd64
|
1292 libp11-kit0 amd64
|
||||||
1285 libasound2 i386
|
1285 libasound2 i386
|
||||||
@ -1619,6 +1631,7 @@ Packages sorted by Installed-Size:
|
|||||||
806 libsoup2.4-1 i386
|
806 libsoup2.4-1 i386
|
||||||
794 rsync amd64
|
794 rsync amd64
|
||||||
793 libbrotli1 i386
|
793 libbrotli1 i386
|
||||||
|
791 busybox amd64
|
||||||
787 libcurl4 amd64
|
787 libcurl4 amd64
|
||||||
784 libbrotli1 amd64
|
784 libbrotli1 amd64
|
||||||
783 libcups2 amd64
|
783 libcups2 amd64
|
||||||
@ -2035,6 +2048,7 @@ Packages sorted by Installed-Size:
|
|||||||
130 dbus-user-session amd64
|
130 dbus-user-session amd64
|
||||||
128 libtasn1-6 i386
|
128 libtasn1-6 i386
|
||||||
128 libdrm2 amd64
|
128 libdrm2 amd64
|
||||||
|
126 time amd64
|
||||||
125 libmpc3 amd64
|
125 libmpc3 amd64
|
||||||
125 libitm1-alpha-cross all
|
125 libitm1-alpha-cross all
|
||||||
123 libtimedate-perl all
|
123 libtimedate-perl all
|
||||||
@ -2103,6 +2117,7 @@ Packages sorted by Installed-Size:
|
|||||||
94 libcairo-gobject2 i386
|
94 libcairo-gobject2 i386
|
||||||
93 libsasl2-modules-db amd64
|
93 libsasl2-modules-db amd64
|
||||||
92 libsasl2-modules-db i386
|
92 libsasl2-modules-db i386
|
||||||
|
92 libhiredis0.14 amd64
|
||||||
92 libgsm1 i386
|
92 libgsm1 i386
|
||||||
92 libgcc-s1-sparc64-cross all
|
92 libgcc-s1-sparc64-cross all
|
||||||
92 libgcc-s1-riscv64-cross all
|
92 libgcc-s1-riscv64-cross all
|
||||||
@ -2206,6 +2221,7 @@ Packages sorted by Installed-Size:
|
|||||||
50 libkeyutils1 i386
|
50 libkeyutils1 i386
|
||||||
50 glib-networking-services amd64
|
50 glib-networking-services amd64
|
||||||
50 gcc amd64
|
50 gcc amd64
|
||||||
|
49 libsigsegv2 amd64
|
||||||
48 libxtst6 amd64
|
48 libxtst6 amd64
|
||||||
48 libatomic1-armel-cross all
|
48 libatomic1-armel-cross all
|
||||||
48 glib-networking-common all
|
48 glib-networking-common all
|
||||||
|
|||||||
@ -6,7 +6,7 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
|||||||
# create the image from Dockerfile
|
# create the image from Dockerfile
|
||||||
# using a rootless Podman container
|
# using a rootless Podman container
|
||||||
|
|
||||||
image=upx-stubtools-20221212-v5
|
image=upx-stubtools-20221212-v6
|
||||||
|
|
||||||
podman build -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir"
|
podman build -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir"
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
|||||||
# list all system packages that are installed in the image
|
# list all system packages that are installed in the image
|
||||||
# using a rootless Podman container
|
# using a rootless Podman container
|
||||||
|
|
||||||
image=upx-stubtools-20221212-v5
|
image=upx-stubtools-20221212-v6
|
||||||
|
|
||||||
podman image list "$image"
|
podman image list "$image"
|
||||||
echo
|
echo
|
||||||
|
|||||||
@ -6,7 +6,7 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
|||||||
# run an interactive shell in the image
|
# run an interactive shell in the image
|
||||||
# using a rootless Podman container
|
# using a rootless Podman container
|
||||||
|
|
||||||
image=upx-stubtools-20221212-v5
|
image=upx-stubtools-20221212-v6
|
||||||
|
|
||||||
flags=( --read-only --rm --pull=never )
|
flags=( --read-only --rm --pull=never )
|
||||||
flags+=( --cap-drop=all ) # drop all capabilities
|
flags+=( --cap-drop=all ) # drop all capabilities
|
||||||
@ -23,6 +23,8 @@ if [[ 1 == 1 ]]; then
|
|||||||
# INFO: SELinux users *may* have to add ":z" to the volume mount flags; check the docs!
|
# INFO: SELinux users *may* have to add ":z" to the volume mount flags; check the docs!
|
||||||
flags+=( -v "${argv0dir}/../..:/home/upx/src/upx" )
|
flags+=( -v "${argv0dir}/../..:/home/upx/src/upx" )
|
||||||
flags+=( -w /home/upx/src/upx ) # set working directory
|
flags+=( -w /home/upx/src/upx ) # set working directory
|
||||||
|
flags+=( --tmpfs /home/upx/.cache:rw,exec ) # mount a writeable tmpfs
|
||||||
|
flags+=( --tmpfs /home/upx/.local:rw,exec ) # mount a writeable tmpfs
|
||||||
else
|
else
|
||||||
# run as user root 0:0
|
# run as user root 0:0
|
||||||
# ONLY FOR DEBUGGING THE IMAGE
|
# ONLY FOR DEBUGGING THE IMAGE
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
FROM docker.io/library/ubuntu:22.04
|
FROM docker.io/library/ubuntu:22.04
|
||||||
ENV UPX_CONTAINER_IMAGE_NAME=upx-stubtools-20221212-v5
|
ENV UPX_CONTAINER_IMAGE_NAME=upx-stubtools-20221212-v6
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
ENV LANG=C.UTF-8
|
ENV LANG=C.UTF-8
|
||||||
|
|
||||||
@ -7,16 +7,16 @@ ENV LANG=C.UTF-8
|
|||||||
RUN dpkg --add-architecture i386 \
|
RUN dpkg --add-architecture i386 \
|
||||||
&& apt-get update && apt-get upgrade -y \
|
&& apt-get update && apt-get upgrade -y \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
aria2 bash-completion ca-certificates git less libmpc3 libncurses5 \
|
aria2 bash bash-completion ca-certificates dash git less libmpc3 libncurses5 \
|
||||||
make ncurses-term perl-base python2-minimal wget xz-utils \
|
make ncurses-term perl-base python2-minimal time wget xz-utils \
|
||||||
libc6:i386 zlib1g:i386 \
|
libc6:i386 zlib1g:i386 \
|
||||||
# the following packages are not required for rebuilding the stubs, but
|
# the following packages are not required for rebuilding the stubs, but
|
||||||
# they do make the image much more convenient and also allow building
|
# they do make the image *much* more convenient and also allow building
|
||||||
# the full UPX binary inside the container via CMake:
|
# the full UPX binary inside the container via CMake:
|
||||||
7zip bfs bzip2 cabextract chrpath cmake cpio curl elfutils fd-find file fzf g++ gdb gojq \
|
7zip bfs busybox bzip2 cabextract ccache chrpath cmake cpio curl elfutils fd-find file fzf \
|
||||||
ht htop hyperfine jq libzstd-dev lsb-release lz4 lzip lzop moreutils ninja-build \
|
g++ gawk gdb gojq ht htop hyperfine jq libzstd-dev lsb-release lz4 lzip lzop \
|
||||||
p7zip parallel patch patchelf pax-utils paxctl re2c ripgrep rsync \
|
mksh moreutils ninja-build p7zip parallel patch patchelf pax-utils paxctl \
|
||||||
screen universal-ctags unzip vim zip zlib1g-dev zsh zstd \
|
re2c ripgrep rsync screen universal-ctags unzip vim yash zip zlib1g-dev zsh zstd \
|
||||||
# extra packages for compiling with "gcc -m32" and and "gcc -mx32":
|
# extra packages for compiling with "gcc -m32" and and "gcc -mx32":
|
||||||
g++-multilib gcc-multilib \
|
g++-multilib gcc-multilib \
|
||||||
&& true
|
&& true
|
||||||
@ -52,8 +52,12 @@ RUN cd /root \
|
|||||||
|
|
||||||
# create default user upx 2000:2000
|
# create default user upx 2000:2000
|
||||||
RUN useradd upx -U --uid 2000 --shell /bin/bash -m \
|
RUN useradd upx -U --uid 2000 --shell /bin/bash -m \
|
||||||
&& mkdir -p /home/upx/.cache/zig /home/upx/.local/bin /home/upx/.wine /home/upx/src/upx \
|
&& cd /home/upx && chmod 700 . \
|
||||||
&& ln -s /usr/local/bin/bin-upx-20221212 /home/upx/.local/bin/bin-upx \
|
&& mkdir -p .cache .local src/upx \
|
||||||
&& chown -R upx:upx /home/upx \
|
&& for d in ccache go-build tmp wine zig; do mkdir -p .cache/$d; done \
|
||||||
|
&& for d in bin share state; do mkdir -p .local/$d; done \
|
||||||
|
&& ln -s .cache/wine .wine && ln -s .cache/tmp tmp \
|
||||||
|
&& ln -s /usr/local/bin/bin-upx-20221212 .local/bin/bin-upx \
|
||||||
|
&& chown -R upx:upx . \
|
||||||
&& true
|
&& true
|
||||||
USER upx
|
USER upx
|
||||||
|
|||||||
@ -14,9 +14,11 @@ ii binutils 2.38-4ubuntu2.2 amd64
|
|||||||
ii binutils-common:amd64 2.38-4ubuntu2.2 amd64 Common files for the GNU assembler, linker and binary utilities
|
ii binutils-common:amd64 2.38-4ubuntu2.2 amd64 Common files for the GNU assembler, linker and binary utilities
|
||||||
ii binutils-x86-64-linux-gnu 2.38-4ubuntu2.2 amd64 GNU binary utilities, for x86-64-linux-gnu target
|
ii binutils-x86-64-linux-gnu 2.38-4ubuntu2.2 amd64 GNU binary utilities, for x86-64-linux-gnu target
|
||||||
ii bsdutils 1:2.37.2-4ubuntu3 amd64 basic utilities from 4.4BSD-Lite
|
ii bsdutils 1:2.37.2-4ubuntu3 amd64 basic utilities from 4.4BSD-Lite
|
||||||
|
ii busybox 1:1.30.1-7ubuntu3 amd64 Tiny utilities for small and embedded systems
|
||||||
ii bzip2 1.0.8-5build1 amd64 high-quality block-sorting file compressor - utilities
|
ii bzip2 1.0.8-5build1 amd64 high-quality block-sorting file compressor - utilities
|
||||||
ii ca-certificates 20230311ubuntu0.22.04.1 all Common CA certificates
|
ii ca-certificates 20230311ubuntu0.22.04.1 all Common CA certificates
|
||||||
ii cabextract 1.9-3 amd64 Microsoft Cabinet file unpacker
|
ii cabextract 1.9-3 amd64 Microsoft Cabinet file unpacker
|
||||||
|
ii ccache 4.5.1-1 amd64 Compiler cache for fast recompilation of C/C++ code
|
||||||
ii chrpath 0.16-2 amd64 Tool to edit the rpath in ELF binaries
|
ii chrpath 0.16-2 amd64 Tool to edit the rpath in ELF binaries
|
||||||
ii cmake 3.22.1-1ubuntu1.22.04.1 amd64 cross-platform, open-source make system
|
ii cmake 3.22.1-1ubuntu1.22.04.1 amd64 cross-platform, open-source make system
|
||||||
ii cmake-data 3.22.1-1ubuntu1.22.04.1 all CMake data files (modules, templates and documentation)
|
ii cmake-data 3.22.1-1ubuntu1.22.04.1 all CMake data files (modules, templates and documentation)
|
||||||
@ -43,6 +45,7 @@ ii g++ 4:11.2.0-1ubuntu1 amd64
|
|||||||
ii g++-11 11.3.0-1ubuntu1~22.04.1 amd64 GNU C++ compiler
|
ii g++-11 11.3.0-1ubuntu1~22.04.1 amd64 GNU C++ compiler
|
||||||
ii g++-11-multilib 11.3.0-1ubuntu1~22.04.1 amd64 GNU C++ compiler (multilib support)
|
ii g++-11-multilib 11.3.0-1ubuntu1~22.04.1 amd64 GNU C++ compiler (multilib support)
|
||||||
ii g++-multilib 4:11.2.0-1ubuntu1 amd64 GNU C++ compiler (multilib files)
|
ii g++-multilib 4:11.2.0-1ubuntu1 amd64 GNU C++ compiler (multilib files)
|
||||||
|
ii gawk 1:5.1.0-1build3 amd64 GNU awk, a pattern scanning and processing language
|
||||||
ii gcc 4:11.2.0-1ubuntu1 amd64 GNU C compiler
|
ii gcc 4:11.2.0-1ubuntu1 amd64 GNU C compiler
|
||||||
ii gcc-11 11.3.0-1ubuntu1~22.04.1 amd64 GNU C compiler
|
ii gcc-11 11.3.0-1ubuntu1~22.04.1 amd64 GNU C compiler
|
||||||
ii gcc-11-base:amd64 11.3.0-1ubuntu1~22.04.1 amd64 GCC, the GNU Compiler Collection (base package)
|
ii gcc-11-base:amd64 11.3.0-1ubuntu1~22.04.1 amd64 GCC, the GNU Compiler Collection (base package)
|
||||||
@ -135,6 +138,7 @@ ii libgomp1:amd64 12.1.0-2ubuntu1~22.04 amd64
|
|||||||
ii libgpg-error0:amd64 1.43-3 amd64 GnuPG development runtime library
|
ii libgpg-error0:amd64 1.43-3 amd64 GnuPG development runtime library
|
||||||
ii libgpm2:amd64 1.20.7-10build1 amd64 General Purpose Mouse - shared library
|
ii libgpm2:amd64 1.20.7-10build1 amd64 General Purpose Mouse - shared library
|
||||||
ii libgssapi-krb5-2:amd64 1.19.2-2ubuntu0.2 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
|
ii libgssapi-krb5-2:amd64 1.19.2-2ubuntu0.2 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
|
||||||
|
ii libhiredis0.14:amd64 0.14.1-2 amd64 minimalistic C client library for Redis
|
||||||
ii libhogweed6:amd64 3.7.3-1build2 amd64 low level cryptographic library (public-key cryptos)
|
ii libhogweed6:amd64 3.7.3-1build2 amd64 low level cryptographic library (public-key cryptos)
|
||||||
ii libicu70:amd64 70.1-2 amd64 International Components for Unicode
|
ii libicu70:amd64 70.1-2 amd64 International Components for Unicode
|
||||||
ii libidn2-0:amd64 2.3.2-2build1 amd64 Internationalized domain names (IDNA2008/TR46) library
|
ii libidn2-0:amd64 2.3.2-2build1 amd64 Internationalized domain names (IDNA2008/TR46) library
|
||||||
@ -202,6 +206,7 @@ ii libsemanage2:amd64 3.3-1build2 amd64
|
|||||||
ii libsensors-config 1:3.6.0-7ubuntu1 all lm-sensors configuration files
|
ii libsensors-config 1:3.6.0-7ubuntu1 all lm-sensors configuration files
|
||||||
ii libsensors5:amd64 1:3.6.0-7ubuntu1 amd64 library to read temperature/voltage/fan sensors
|
ii libsensors5:amd64 1:3.6.0-7ubuntu1 amd64 library to read temperature/voltage/fan sensors
|
||||||
ii libsepol2:amd64 3.3-1build1 amd64 SELinux library for manipulating binary security policies
|
ii libsepol2:amd64 3.3-1build1 amd64 SELinux library for manipulating binary security policies
|
||||||
|
ii libsigsegv2:amd64 2.13-1ubuntu3 amd64 Library for handling page faults in a portable way
|
||||||
ii libsmartcols1:amd64 2.37.2-4ubuntu3 amd64 smart column output alignment library
|
ii libsmartcols1:amd64 2.37.2-4ubuntu3 amd64 smart column output alignment library
|
||||||
ii libsodium23:amd64 1.0.18-1build2 amd64 Network communication, cryptography and signaturing library
|
ii libsodium23:amd64 1.0.18-1build2 amd64 Network communication, cryptography and signaturing library
|
||||||
ii libsource-highlight-common 3.1.9-4.1build2 all architecture-independent files for source highlighting library
|
ii libsource-highlight-common 3.1.9-4.1build2 all architecture-independent files for source highlighting library
|
||||||
@ -249,7 +254,7 @@ ii libxxhash0:amd64 0.8.1-1 amd64
|
|||||||
ii libyaml-0-2:amd64 0.2.2-1build2 amd64 Fast YAML 1.1 parser and emitter library
|
ii libyaml-0-2:amd64 0.2.2-1build2 amd64 Fast YAML 1.1 parser and emitter library
|
||||||
ii libzstd-dev:amd64 1.4.8+dfsg-3build1 amd64 fast lossless compression algorithm -- development files
|
ii libzstd-dev:amd64 1.4.8+dfsg-3build1 amd64 fast lossless compression algorithm -- development files
|
||||||
ii libzstd1:amd64 1.4.8+dfsg-3build1 amd64 fast lossless compression algorithm
|
ii libzstd1:amd64 1.4.8+dfsg-3build1 amd64 fast lossless compression algorithm
|
||||||
ii linux-libc-dev:amd64 5.15.0-75.82 amd64 Linux Kernel Headers for development
|
ii linux-libc-dev:amd64 5.15.0-76.83 amd64 Linux Kernel Headers for development
|
||||||
ii login 1:4.8.1-2ubuntu2.1 amd64 system login tools
|
ii login 1:4.8.1-2ubuntu2.1 amd64 system login tools
|
||||||
ii logsave 1.46.5-2ubuntu1.1 amd64 save the output of a command in a log file
|
ii logsave 1.46.5-2ubuntu1.1 amd64 save the output of a command in a log file
|
||||||
ii lsb-base 11.1.0ubuntu4 all Linux Standard Base init script functionality
|
ii lsb-base 11.1.0ubuntu4 all Linux Standard Base init script functionality
|
||||||
@ -260,6 +265,7 @@ ii lzop 1.04-2build2 amd64
|
|||||||
ii make 4.3-4.1build1 amd64 utility for directing compilation
|
ii make 4.3-4.1build1 amd64 utility for directing compilation
|
||||||
ii mawk 1.3.4.20200120-3 amd64 Pattern scanning and text processing language
|
ii mawk 1.3.4.20200120-3 amd64 Pattern scanning and text processing language
|
||||||
ii media-types 7.0.0 all List of standard media types and their usual file extension
|
ii media-types 7.0.0 all List of standard media types and their usual file extension
|
||||||
|
ii mksh 59c-16 amd64 MirBSD Korn Shell
|
||||||
ii moreutils 0.66-1 amd64 additional Unix utilities
|
ii moreutils 0.66-1 amd64 additional Unix utilities
|
||||||
ii mount 2.37.2-4ubuntu3 amd64 tools for mounting and manipulating filesystems
|
ii mount 2.37.2-4ubuntu3 amd64 tools for mounting and manipulating filesystems
|
||||||
ii ncurses-base 6.3-2ubuntu0.1 all basic terminal type definitions
|
ii ncurses-base 6.3-2ubuntu0.1 all basic terminal type definitions
|
||||||
@ -295,6 +301,7 @@ ii sensible-utils 0.0.17 all
|
|||||||
ii sysstat 12.5.2-2ubuntu0.2 amd64 system performance tools for Linux
|
ii sysstat 12.5.2-2ubuntu0.2 amd64 system performance tools for Linux
|
||||||
ii sysvinit-utils 3.01-1ubuntu1 amd64 System-V-like utilities
|
ii sysvinit-utils 3.01-1ubuntu1 amd64 System-V-like utilities
|
||||||
ii tar 1.34+dfsg-1ubuntu0.1.22.04.1 amd64 GNU version of the tar archiving utility
|
ii tar 1.34+dfsg-1ubuntu0.1.22.04.1 amd64 GNU version of the tar archiving utility
|
||||||
|
ii time 1.9-0.1build2 amd64 GNU time program for measuring CPU resource usage
|
||||||
ii ubuntu-keyring 2021.03.26 all GnuPG keys of the Ubuntu archive
|
ii ubuntu-keyring 2021.03.26 all GnuPG keys of the Ubuntu archive
|
||||||
ii ucf 3.0043 all Update Configuration File(s): preserve user changes to config files
|
ii ucf 3.0043 all Update Configuration File(s): preserve user changes to config files
|
||||||
ii universal-ctags 5.9.20210829.0-1 amd64 build tag file indexes of source code definitions
|
ii universal-ctags 5.9.20210829.0-1 amd64 build tag file indexes of source code definitions
|
||||||
@ -307,6 +314,7 @@ ii vim-runtime 2:8.2.3995-1ubuntu2.8 all
|
|||||||
ii wget 1.21.2-2ubuntu1 amd64 retrieves files from the web
|
ii wget 1.21.2-2ubuntu1 amd64 retrieves files from the web
|
||||||
ii xxd 2:8.2.3995-1ubuntu2.8 amd64 tool to make (or reverse) a hex dump
|
ii xxd 2:8.2.3995-1ubuntu2.8 amd64 tool to make (or reverse) a hex dump
|
||||||
ii xz-utils 5.2.5-2ubuntu1 amd64 XZ-format compression utilities
|
ii xz-utils 5.2.5-2ubuntu1 amd64 XZ-format compression utilities
|
||||||
|
ii yash 2.51-1 amd64 yet another shell
|
||||||
ii zip 3.0-12build2 amd64 Archiver for .zip files
|
ii zip 3.0-12build2 amd64 Archiver for .zip files
|
||||||
ii zlib1g-dev:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - development
|
ii zlib1g-dev:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - development
|
||||||
ii zlib1g:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - runtime
|
ii zlib1g:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - runtime
|
||||||
@ -319,7 +327,7 @@ ii zstd 1.4.8+dfsg-3build1 amd64
|
|||||||
||/ Name Version Architecture Description
|
||/ Name Version Architecture Description
|
||||||
|
|
||||||
Packages sorted by Installed-Size:
|
Packages sorted by Installed-Size:
|
||||||
741791 ===== TOTAL (313 packages)
|
748809 ===== TOTAL (321 packages)
|
||||||
52577 gcc-11 amd64
|
52577 gcc-11 amd64
|
||||||
34444 libicu70 amd64
|
34444 libicu70 amd64
|
||||||
32780 vim-runtime all
|
32780 vim-runtime all
|
||||||
@ -401,16 +409,20 @@ Packages sorted by Installed-Size:
|
|||||||
1854 aria2 amd64
|
1854 aria2 amd64
|
||||||
1750 libdb5.3 amd64
|
1750 libdb5.3 amd64
|
||||||
1746 libunistring2 amd64
|
1746 libunistring2 amd64
|
||||||
|
1680 gawk amd64
|
||||||
1655 zstd amd64
|
1655 zstd amd64
|
||||||
1602 libsqlite3-0 amd64
|
1602 libsqlite3-0 amd64
|
||||||
1516 e2fsprogs amd64
|
1516 e2fsprogs amd64
|
||||||
|
1508 mksh amd64
|
||||||
1472 sysstat amd64
|
1472 sysstat amd64
|
||||||
1464 bash-completion all
|
1464 bash-completion all
|
||||||
1445 hyperfine amd64
|
1445 hyperfine amd64
|
||||||
|
1429 yash amd64
|
||||||
1429 libx11-data all
|
1429 libx11-data all
|
||||||
1388 procps amd64
|
1388 procps amd64
|
||||||
1386 libx11-6 amd64
|
1386 libx11-6 amd64
|
||||||
1354 libgcrypt20 amd64
|
1354 libgcrypt20 amd64
|
||||||
|
1343 ccache amd64
|
||||||
1328 libzstd-dev amd64
|
1328 libzstd-dev amd64
|
||||||
1292 libp11-kit0 amd64
|
1292 libp11-kit0 amd64
|
||||||
1138 libpam-modules amd64
|
1138 libpam-modules amd64
|
||||||
@ -424,6 +436,7 @@ Packages sorted by Installed-Size:
|
|||||||
876 libarchive13 amd64
|
876 libarchive13 amd64
|
||||||
846 libzstd1 amd64
|
846 libzstd1 amd64
|
||||||
794 rsync amd64
|
794 rsync amd64
|
||||||
|
791 busybox amd64
|
||||||
787 libcurl4 amd64
|
787 libcurl4 amd64
|
||||||
784 libbrotli1 amd64
|
784 libbrotli1 amd64
|
||||||
771 libcurl3-gnutls amd64
|
771 libcurl3-gnutls amd64
|
||||||
@ -558,6 +571,7 @@ Packages sorted by Installed-Size:
|
|||||||
133 init-system-helpers all
|
133 init-system-helpers all
|
||||||
132 libipt2 amd64
|
132 libipt2 amd64
|
||||||
131 libprocps8 amd64
|
131 libprocps8 amd64
|
||||||
|
126 time amd64
|
||||||
125 libmpc3 amd64
|
125 libmpc3 amd64
|
||||||
123 libtimedate-perl all
|
123 libtimedate-perl all
|
||||||
123 libnsl2 amd64
|
123 libnsl2 amd64
|
||||||
@ -583,6 +597,7 @@ Packages sorted by Installed-Size:
|
|||||||
96 libmspack0 amd64
|
96 libmspack0 amd64
|
||||||
95 libpsl5 amd64
|
95 libpsl5 amd64
|
||||||
93 libsasl2-modules-db amd64
|
93 libsasl2-modules-db amd64
|
||||||
|
92 libhiredis0.14 amd64
|
||||||
91 libjansson4 amd64
|
91 libjansson4 amd64
|
||||||
90 python3 amd64
|
90 python3 amd64
|
||||||
83 sysvinit-utils amd64
|
83 sysvinit-utils amd64
|
||||||
@ -608,6 +623,7 @@ Packages sorted by Installed-Size:
|
|||||||
51 libutempter0 amd64
|
51 libutempter0 amd64
|
||||||
51 hostname amd64
|
51 hostname amd64
|
||||||
50 gcc amd64
|
50 gcc amd64
|
||||||
|
49 libsigsegv2 amd64
|
||||||
47 libkeyutils1 amd64
|
47 libkeyutils1 amd64
|
||||||
45 libgdbm-compat4 amd64
|
45 libgdbm-compat4 amd64
|
||||||
45 libcap-ng0 amd64
|
45 libcap-ng0 amd64
|
||||||
|
|||||||
@ -3,49 +3,78 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
#
|
#
|
||||||
# build UPX "by hand", using POSIX shell and a minimal number of compilation flags
|
# build UPX "by hand", using a POSIX-compliant shell and
|
||||||
|
# a minimal number of compilation flags
|
||||||
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# uses optional environment variables: AR, CC, CXX, OPTIMIZE, top_srcdir
|
||||||
|
|
||||||
# shell init
|
# shell init
|
||||||
### set -x # enable logging
|
### set -x # enable logging
|
||||||
DUALCASE=1; export DUALCASE # for MKS sh
|
DUALCASE=1; export DUALCASE # for MKS sh
|
||||||
test -n "${ZSH_VERSION+set}" && emulate sh # for zsh
|
test -n "${ZSH_VERSION+set}" && emulate sh # for zsh
|
||||||
argv0="$0"; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
my_argv0="$0"
|
||||||
# HINT: set "argv0dir" manually if your system does not have "readlink"
|
|
||||||
|
|
||||||
# toolchain settings and flags
|
# toolchain settings and compilation flags
|
||||||
|
AR="${AR:-ar}"
|
||||||
CC="${CC:-cc}"
|
CC="${CC:-cc}"
|
||||||
CXX="${CXX:-c++ -std=gnu++17}"
|
CXX="${CXX:-c++ -std=gnu++17}"
|
||||||
AR="${AR:-ar}"
|
|
||||||
# HINT: use "export AR=false" if "$AR rcs" does not work on your system; see below
|
# HINT: use "export AR=false" if "$AR rcs" does not work on your system; see below
|
||||||
if test "x$AR" = "x0" || test "x$AR" = "xfalse" || test "x$AR" = "x/bin/false"; then
|
if test "x$AR" = "x0" || test "x$AR" = "xfalse" || test "x$AR" = "x/bin/false"; then
|
||||||
AR="" # do not use $AR
|
AR="" # do not use $AR
|
||||||
fi
|
fi
|
||||||
# protect against security threats caused by misguided compiler "optimizations"
|
# protect against security threats caused by misguided compiler "optimizations"
|
||||||
mandatory_flags="-fno-strict-aliasing -fno-strict-overflow -funsigned-char"
|
mandatory_flags="-fno-strict-aliasing -fno-strict-overflow -funsigned-char"
|
||||||
|
if test "x$OPTIMIZE" != "x" && test "x$OPTIMIZE" != "x0"; then
|
||||||
# not mandatory and not minimal, but usually a good idea:
|
# not mandatory and not minimal, but usually a good idea:
|
||||||
### mandatory_flags="-Wall -O2 $mandatory_flags"
|
mandatory_flags="-Wall -O2 $mandatory_flags"
|
||||||
|
fi
|
||||||
CC="$CC $mandatory_flags"
|
CC="$CC $mandatory_flags"
|
||||||
CXX="$CXX $mandatory_flags"
|
CXX="$CXX $mandatory_flags"
|
||||||
|
|
||||||
# go to upx top-level directory
|
# go to upx top-level directory
|
||||||
cd "$argv0dir/../.." || exit 1
|
# HINT: set "top_srcdir" manually if your system does not have "readlink"
|
||||||
pwd
|
if test "x$top_srcdir" = "x"; then
|
||||||
|
my_argv0abs="$(readlink -fn "$my_argv0")"
|
||||||
|
my_argv0dir="$(dirname "$my_argv0abs")"
|
||||||
|
cd "$my_argv0dir/../.." || exit 1
|
||||||
|
else
|
||||||
|
cd "$top_srcdir" || exit 1
|
||||||
|
fi
|
||||||
|
top_srcdir="$(pwd)" # absolute
|
||||||
|
rel_top_srcdir=. # relative top_srcdir
|
||||||
|
echo "# current directory: '$(pwd)'"
|
||||||
|
test -f doc/upx.pod || exit 1 # sanity check
|
||||||
test -f src/version.h || exit 1 # sanity check
|
test -f src/version.h || exit 1 # sanity check
|
||||||
top_srcdir="$PWD"
|
|
||||||
rm -rf ./build/by-hand # WARNING: existing build-directory gets deleted!
|
rm -rf ./build/by-hand # WARNING: existing build-directory gets deleted!
|
||||||
mkdir -p ./build/by-hand
|
|
||||||
|
# helper function
|
||||||
|
run() {
|
||||||
|
if test 0 = 1; then
|
||||||
|
# DEBUG dry-run: print command, but don't actually run unless $1 is "+"
|
||||||
|
if test "x$1" = "x+"; then
|
||||||
|
shift; echo "$@"; "$@"; return
|
||||||
|
fi
|
||||||
|
shift; echo "$@"; return
|
||||||
|
fi
|
||||||
|
# print short info and run command
|
||||||
|
test "x$1" != "x" && test "x$1" != "x+" && echo "$1"
|
||||||
|
shift; "$@"
|
||||||
|
}
|
||||||
|
|
||||||
# helper function
|
# helper function
|
||||||
check_submodule() {
|
check_submodule() {
|
||||||
local f
|
#local ff # "local" seems unsupported by some versions of ksh
|
||||||
for f in COPYING LICENSE LICENSE.txt; do
|
for ff in COPYING LICENSE LICENSE.txt; do
|
||||||
if test -f "$top_srcdir/vendor/$1/$f"; then
|
if test -f "$rel_top_srcdir/vendor/$1/$ff"; then
|
||||||
# create and enter build directory
|
# create and enter build directory; updates global $rel_top_srcdir
|
||||||
mkdir -p "$top_srcdir/build/by-hand/$1"
|
run "+" cd "$rel_top_srcdir" || exit 1
|
||||||
cd "$top_srcdir/build/by-hand/$1" || exit 1
|
rel_top_srcdir=.
|
||||||
echo "===== build $1 ====="
|
echo "#==== build $1 ====="
|
||||||
|
run "+" mkdir "build/by-hand/$1"
|
||||||
|
run "+" cd "build/by-hand/$1" || exit 1
|
||||||
|
rel_top_srcdir=../../..
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -53,48 +82,44 @@ check_submodule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# build
|
# build
|
||||||
|
run "+" mkdir -p "build/by-hand"
|
||||||
if check_submodule bzip2; then
|
if check_submodule bzip2; then
|
||||||
for f in "$top_srcdir"/vendor/bzip2/*.c; do
|
for f in "$rel_top_srcdir"/vendor/bzip2/*.c; do
|
||||||
echo "CC $f"
|
run "CC $f" $CC -c "$f"
|
||||||
$CC -c "$f"
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if check_submodule ucl; then
|
if check_submodule ucl; then
|
||||||
for f in "$top_srcdir"/vendor/ucl/src/*.c; do
|
for f in "$rel_top_srcdir"/vendor/ucl/src/*.c; do
|
||||||
echo "CC $f"
|
run "CC $f" $CC -I"$rel_top_srcdir"/vendor/ucl/include -I"$rel_top_srcdir"/vendor/ucl -c "$f"
|
||||||
$CC -I"$top_srcdir"/vendor/ucl/include -I"$top_srcdir"/vendor/ucl -c "$f"
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if check_submodule zlib; then
|
if check_submodule zlib; then
|
||||||
for f in "$top_srcdir"/vendor/zlib/*.c; do
|
for f in "$rel_top_srcdir"/vendor/zlib/*.c; do
|
||||||
echo "CC $f"
|
run "CC $f" $CC -DHAVE_STDARG_H -DHAVE_VSNPRINTF -DHAVE_UNISTD_H -c "$f"
|
||||||
$CC -DHAVE_STDARG_H -DHAVE_VSNPRINTF -DHAVE_UNISTD_H -c "$f"
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if check_submodule zstd; then
|
if check_submodule zstd; then
|
||||||
for f in "$top_srcdir"/vendor/zstd/lib/*/*.c; do
|
for f in "$rel_top_srcdir"/vendor/zstd/lib/*/*.c; do
|
||||||
echo "CC $f"
|
run "CC $f" $CC -DDYNAMIC_BMI2=0 -DZSTD_DISABLE_ASM -c "$f"
|
||||||
$CC -DDYNAMIC_BMI2=0 -DZSTD_DISABLE_ASM -c "$f"
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
echo "===== build UPX ====="
|
run "+" cd "$rel_top_srcdir" || exit 1
|
||||||
cd "$top_srcdir"/build/by-hand || exit 1
|
rel_top_srcdir=.
|
||||||
for f in "$top_srcdir"/src/*.cpp "$top_srcdir"/src/*/*.cpp; do
|
echo "#==== build UPX ====="
|
||||||
echo "CXX $f"
|
run "+" cd "build/by-hand" || exit 1
|
||||||
$CXX -I"$top_srcdir"/vendor -c "$f"
|
rel_top_srcdir=../..
|
||||||
|
for f in "$rel_top_srcdir"/src/*.cpp "$rel_top_srcdir"/src/*/*.cpp; do
|
||||||
|
run "CXX $f" $CXX -I"$rel_top_srcdir"/vendor -c "$f"
|
||||||
done
|
done
|
||||||
# echo "===== link UPX ====="
|
# echo "#==== link UPX ====="
|
||||||
if test "x$AR" = "x"; then
|
if test "x$AR" = "x"; then
|
||||||
# link without using $AR
|
# link without using $AR
|
||||||
echo "CXX upx"
|
run "CXX upx" $CXX -o upx *.o */*.o
|
||||||
$CXX -o upx *.o */*.o
|
|
||||||
else
|
else
|
||||||
echo "AR libupx"
|
run "AR libupx" $AR rcs libupx_submodules.a */*.o
|
||||||
$AR rcs libupx_submodules.a */*.o
|
run "CXX upx" $CXX -o upx *.o -L. -lupx_submodules
|
||||||
echo "CXX upx"
|
|
||||||
$CXX -o upx *.o -L. -lupx_submodules
|
|
||||||
fi
|
fi
|
||||||
pwd
|
echo "# current directory: '$(pwd)'"
|
||||||
ls -l upx*
|
ls -l upx*
|
||||||
|
|
||||||
echo "All done."
|
echo "# All done."
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user