CI and cmake updates
This commit is contained in:
parent
65cc40bdda
commit
507c31ec14
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@ -9,7 +9,7 @@ name: 'CI'
|
|||||||
on: [push, workflow_dispatch]
|
on: [push, workflow_dispatch]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
UPX_CMAKE_BUILD_FLAGS: --verbose
|
UPX_CMAKE_BUILD_FLAGS: --verbose
|
||||||
# 2023-07-15
|
# 2023-07-15
|
||||||
|
|||||||
@ -5,7 +5,7 @@ on:
|
|||||||
schedule: [cron: '10 5 * * 3'] # run weekly Wednesday 05:10 UTC
|
schedule: [cron: '10 5 * * 3'] # run weekly Wednesday 05:10 UTC
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
@ -5,7 +5,7 @@ on:
|
|||||||
schedule: [cron: '30 5 * * 3'] # run weekly Wednesday 05:30 UTC
|
schedule: [cron: '30 5 * * 3'] # run weekly Wednesday 05:30 UTC
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
2
.github/workflows/static-analyzer-codeql.yml
vendored
2
.github/workflows/static-analyzer-codeql.yml
vendored
@ -5,7 +5,7 @@ on:
|
|||||||
schedule: [cron: '50 5 * * 3'] # run weekly Wednesday 05:50 UTC
|
schedule: [cron: '50 5 * * 3'] # run weekly Wednesday 05:50 UTC
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
2
.github/workflows/test-alpine-linux.yml
vendored
2
.github/workflows/test-alpine-linux.yml
vendored
@ -6,7 +6,7 @@
|
|||||||
name: 'Test - Minimal Alpine build'
|
name: 'Test - Minimal Alpine build'
|
||||||
on: [workflow_dispatch]
|
on: [workflow_dispatch]
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
2
.github/workflows/test-cmake-default.yml
vendored
2
.github/workflows/test-cmake-default.yml
vendored
@ -3,7 +3,7 @@
|
|||||||
name: 'Test - CMake default build type'
|
name: 'Test - CMake default build type'
|
||||||
on: [workflow_dispatch]
|
on: [workflow_dispatch]
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
5
.github/workflows/weekly-ci-alpine-linux.yml
vendored
5
.github/workflows/weekly-ci-alpine-linux.yml
vendored
@ -13,7 +13,7 @@ on:
|
|||||||
schedule: [cron: '05 4 * * 3'] # run weekly Wednesday 04:05 UTC
|
schedule: [cron: '05 4 * * 3'] # run weekly Wednesday 04:05 UTC
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@ -54,7 +54,8 @@ jobs:
|
|||||||
|
|
||||||
- name: 'Update environment'
|
- name: 'Update environment'
|
||||||
run: |
|
run: |
|
||||||
echo "UPX_CMAKE_CONFIG_FLAGS=-DCMAKE_VERBOSE_MAKEFILE=ON -DUPX_CONFIG_DISABLE_C_STANDARD=ON -DUPX_CONFIG_DISABLE_CXX_STANDARD=ON" >> $GITHUB_ENV
|
echo "UPX_CONFIG_DISABLE_C_STANDARD=ON" >> $GITHUB_ENV
|
||||||
|
echo "UPX_CONFIG_DISABLE_CXX_STANDARD=ON" >> $GITHUB_ENV
|
||||||
|
|
||||||
# build with C17 and C++20 on alpine:edge
|
# build with C17 and C++20 on alpine:edge
|
||||||
- name: ${{ format('Build clang C++20 Release with {0}', env.clang_package) }}
|
- name: ${{ format('Build clang C++20 Release with {0}', env.clang_package) }}
|
||||||
|
|||||||
@ -6,7 +6,7 @@ on:
|
|||||||
schedule: [cron: '20 4 * * 3'] # run weekly Wednesday 04:20 UTC
|
schedule: [cron: '20 4 * * 3'] # run weekly Wednesday 04:20 UTC
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
@ -6,7 +6,7 @@ on:
|
|||||||
schedule: [cron: '30 4 * * 3'] # run weekly Wednesday 04:30 UTC
|
schedule: [cron: '30 4 * * 3'] # run weekly Wednesday 04:30 UTC
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
2
.github/workflows/weekly-ci-zigcc.yml
vendored
2
.github/workflows/weekly-ci-zigcc.yml
vendored
@ -6,7 +6,7 @@ on:
|
|||||||
schedule: [cron: '40 4 * * 3'] # run weekly Wednesday 04:40 UTC
|
schedule: [cron: '40 4 * * 3'] # run weekly Wednesday 04:40 UTC
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
env:
|
env:
|
||||||
CMAKE_REQUIRED_QUIET: 0
|
CMAKE_REQUIRED_QUIET: OFF
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
# 2023-07-15
|
# 2023-07-15
|
||||||
ZIG_DIST_VERSION: 0.11.0-dev.4002+7dd1cf26f
|
ZIG_DIST_VERSION: 0.11.0-dev.4002+7dd1cf26f
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@ -12,8 +12,8 @@ Makevars.local*
|
|||||||
tmp*
|
tmp*
|
||||||
|
|
||||||
*.a
|
*.a
|
||||||
*.d
|
|
||||||
*.bz2
|
*.bz2
|
||||||
|
*.d
|
||||||
*.dll
|
*.dll
|
||||||
*.dylib
|
*.dylib
|
||||||
*.exe
|
*.exe
|
||||||
@ -23,6 +23,7 @@ tmp*
|
|||||||
*.o
|
*.o
|
||||||
*.obj
|
*.obj
|
||||||
*.out
|
*.out
|
||||||
|
*.patch
|
||||||
*.py[cdo]
|
*.py[cdo]
|
||||||
*.rar
|
*.rar
|
||||||
*.so
|
*.so
|
||||||
|
|||||||
@ -48,20 +48,48 @@ if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.git" AND NOT MSVC_IDE)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# useful for CI jobs: allow settings via environment and cache result
|
||||||
|
function(upx_cache_bool_vars default_value)
|
||||||
|
list(REMOVE_AT ARGV 0)
|
||||||
|
foreach(var ${ARGV})
|
||||||
|
set(value ${default_value})
|
||||||
|
if(DEFINED UPX_CACHE_${var})
|
||||||
|
set(value "${UPX_CACHE_${var}}")
|
||||||
|
elseif(DEFINED ${var})
|
||||||
|
set(value "${${var}}")
|
||||||
|
elseif("$ENV{${var}}" MATCHES "^(0|1|OFF|ON|FALSE|TRUE)$")
|
||||||
|
set(value "$ENV{${var}}")
|
||||||
|
set(UPX_CACHE_ORIGIN_FROM_ENV_${var} TRUE CACHE INTERNAL "" FORCE)
|
||||||
|
endif()
|
||||||
|
if(value)
|
||||||
|
set(value ON)
|
||||||
|
else()
|
||||||
|
set(value OFF)
|
||||||
|
endif()
|
||||||
|
if(UPX_CACHE_ORIGIN_FROM_ENV_${var})
|
||||||
|
message(STATUS "setting from environment: ${var} = ${value}")
|
||||||
|
endif()
|
||||||
|
set(${var} "${value}" PARENT_SCOPE)
|
||||||
|
set(UPX_CACHE_${var} "${value}" CACHE INTERNAL "" FORCE)
|
||||||
|
endforeach()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
# global settings
|
# global settings
|
||||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
if(${CMAKE_VERSION} VERSION_GREATER "3.14.7" AND NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
||||||
if(${CMAKE_VERSION} VERSION_GREATER "3.14.7")
|
|
||||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded")
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded")
|
||||||
cmake_policy(SET CMP0091 NEW)
|
cmake_policy(SET CMP0091 NEW)
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED CMAKE_REQUIRED_QUIET)
|
# global CMake settings that default to ON
|
||||||
set(CMAKE_REQUIRED_QUIET ON)
|
upx_cache_bool_vars(ON
|
||||||
if("$ENV{CMAKE_REQUIRED_QUIET}" MATCHES "^(0|1|OFF|ON)$")
|
CMAKE_C_STANDARD_REQUIRED CMAKE_CXX_STANDARD_REQUIRED
|
||||||
set(CMAKE_REQUIRED_QUIET "$ENV{CMAKE_REQUIRED_QUIET}")
|
CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_REQUIRED_QUIET
|
||||||
endif()
|
)
|
||||||
endif()
|
# internal UPX settings that default to OFF
|
||||||
|
upx_cache_bool_vars(OFF
|
||||||
|
UPX_CONFIG_CMAKE_DISABLE_TEST UPX_CONFIG_CMAKE_DISABLE_INSTALL
|
||||||
|
UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO UPX_CONFIG_CMAKE_DISABLE_PLATFORM_CHECK
|
||||||
|
UPX_CONFIG_DISABLE_C_STANDARD UPX_CONFIG_DISABLE_CXX_STANDARD
|
||||||
|
)
|
||||||
|
|
||||||
# determine Git revision
|
# determine Git revision
|
||||||
set(GITREV_SHORT "")
|
set(GITREV_SHORT "")
|
||||||
@ -389,11 +417,10 @@ if(NOT CMAKE_CROSSCOMPILING)
|
|||||||
endif()
|
endif()
|
||||||
if(NOT CMAKE_CROSSCOMPILING AND NOT UPX_CONFIG_DISABLE_SELF_PACK_TEST)
|
if(NOT CMAKE_CROSSCOMPILING AND NOT UPX_CONFIG_DISABLE_SELF_PACK_TEST)
|
||||||
# IMPORTANT NOTE: these tests can only work if the host executable format is supported by UPX!
|
# IMPORTANT NOTE: these tests can only work if the host executable format is supported by UPX!
|
||||||
function(upx_add_test)
|
function(upx_add_test name)
|
||||||
set(name ${ARGV0})
|
|
||||||
list(REMOVE_AT ARGV 0)
|
list(REMOVE_AT ARGV 0)
|
||||||
add_test(NAME ${name} COMMAND ${ARGV})
|
add_test(NAME "${name}" COMMAND ${ARGV})
|
||||||
set_tests_properties(${name} PROPERTIES RUN_SERIAL TRUE) # run these tests sequentially
|
set_tests_properties("${name}" PROPERTIES RUN_SERIAL TRUE) # run these tests sequentially
|
||||||
endfunction()
|
endfunction()
|
||||||
set(exe ${CMAKE_EXECUTABLE_SUFFIX})
|
set(exe ${CMAKE_EXECUTABLE_SUFFIX})
|
||||||
set(upx_self_exe "$<TARGET_FILE:upx>")
|
set(upx_self_exe "$<TARGET_FILE:upx>")
|
||||||
@ -445,9 +472,9 @@ endif() # UPX_CONFIG_CMAKE_DISABLE_INSTALL
|
|||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
function(print_var)
|
function(print_var)
|
||||||
foreach(v ${ARGV})
|
foreach(var ${ARGV})
|
||||||
if(${v})
|
if(${var})
|
||||||
message(STATUS "${v} = ${${v}}")
|
message(STATUS "${var} = ${${var}}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|||||||
@ -50,5 +50,5 @@ RUN cd /usr/bin \
|
|||||||
&& ln -s -v ../../bin/yaml2obj-14 /usr/local/bin/llvm-yaml2obj \
|
&& ln -s -v ../../bin/yaml2obj-14 /usr/local/bin/llvm-yaml2obj \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
# switch back to default user upx 2000:2000
|
# switch back to default user upx:upx 2000:2000
|
||||||
USER upx
|
USER upx
|
||||||
|
|||||||
@ -50,11 +50,11 @@ RUN cd /root \
|
|||||||
&& rm -r ./upx-*.tar.* ./upx-*linux \
|
&& rm -r ./upx-*.tar.* ./upx-*linux \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
# create default user upx 2000:2000
|
# create default user upx:upx 2000:2000
|
||||||
RUN useradd upx -U --uid 2000 --shell /bin/bash -m \
|
RUN useradd upx -U --uid 2000 --shell /bin/bash -m \
|
||||||
&& cd /home/upx && chmod 00700 . \
|
&& cd /home/upx && chmod 00700 . \
|
||||||
# prepare ~/.cache and ~/.local for possible tmpfs mounts
|
# prepare ~/.cache and ~/.local for possible tmpfs mounts
|
||||||
&& mkdir -p .cache .local src/upx \
|
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||||
&& for d in ccache fontconfig go-build mesa_shader_cache tmp wine zig; do mkdir -p .cache/$d; done \
|
&& for d in ccache fontconfig go-build mesa_shader_cache tmp wine zig; do mkdir -p .cache/$d; done \
|
||||||
&& for d in bin include lib share state; do mkdir -p .local/$d; done \
|
&& for d in bin include lib share state; do mkdir -p .local/$d; done \
|
||||||
&& ln -s .cache/wine .wine && ln -s .cache/tmp tmp \
|
&& ln -s .cache/wine .wine && ln -s .cache/tmp tmp \
|
||||||
|
|||||||
@ -308,11 +308,11 @@ ii universal-ctags 5.9.20210829.0-1 amd64
|
|||||||
ii unzip 6.0-26ubuntu3.1 amd64 De-archiver for .zip files
|
ii unzip 6.0-26ubuntu3.1 amd64 De-archiver for .zip files
|
||||||
ii usrmerge 25ubuntu2 all Convert the system to the merged /usr directories scheme
|
ii usrmerge 25ubuntu2 all Convert the system to the merged /usr directories scheme
|
||||||
ii util-linux 2.37.2-4ubuntu3 amd64 miscellaneous system utilities
|
ii util-linux 2.37.2-4ubuntu3 amd64 miscellaneous system utilities
|
||||||
ii vim 2:8.2.3995-1ubuntu2.8 amd64 Vi IMproved - enhanced vi editor
|
ii vim 2:8.2.3995-1ubuntu2.9 amd64 Vi IMproved - enhanced vi editor
|
||||||
ii vim-common 2:8.2.3995-1ubuntu2.8 all Vi IMproved - Common files
|
ii vim-common 2:8.2.3995-1ubuntu2.9 all Vi IMproved - Common files
|
||||||
ii vim-runtime 2:8.2.3995-1ubuntu2.8 all Vi IMproved - Runtime files
|
ii vim-runtime 2:8.2.3995-1ubuntu2.9 all Vi IMproved - Runtime files
|
||||||
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.9 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 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
|
||||||
|
|||||||
16
misc/test-qemu-with-podman/test-qemu2-alpine/10-create-image.sh
Executable file
16
misc/test-qemu-with-podman/test-qemu2-alpine/10-create-image.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
## vim:set ts=4 sw=4 et:
|
||||||
|
set -e; set -o pipefail
|
||||||
|
argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
||||||
|
|
||||||
|
# create the image from Dockerfile
|
||||||
|
# using a rootless Podman container
|
||||||
|
|
||||||
|
image=upx-test-qemu2-alpine-20230708-v1
|
||||||
|
[[ $1 == --print-image ]] && echo "$image" && exit 0
|
||||||
|
|
||||||
|
podman build --squash -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir"
|
||||||
|
|
||||||
|
podman image list "$image"
|
||||||
|
echo
|
||||||
|
podman image tree "$image"
|
||||||
19
misc/test-qemu-with-podman/test-qemu2-alpine/11-list-packages.sh
Executable file
19
misc/test-qemu-with-podman/test-qemu2-alpine/11-list-packages.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
## vim:set ts=4 sw=4 et:
|
||||||
|
set -e; set -o pipefail
|
||||||
|
argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
||||||
|
|
||||||
|
# list all system packages that are installed in the image
|
||||||
|
# using a rootless Podman container
|
||||||
|
|
||||||
|
image="$("$argv0dir/10-create-image.sh" --print-image)"
|
||||||
|
|
||||||
|
podman image list "$image"
|
||||||
|
echo
|
||||||
|
podman image tree "$image"
|
||||||
|
|
||||||
|
echo 'Packages:'
|
||||||
|
flags=( --read-only --rm --pull=never )
|
||||||
|
flags+=( --cap-drop=all ) # drop all capabilities
|
||||||
|
flags+=( --network=none ) # no network needed
|
||||||
|
podman run "${flags[@]}" "$image" bash -c $'apk info -v | sed \'s/ *$//\' | LC_ALL=C sort'
|
||||||
37
misc/test-qemu-with-podman/test-qemu2-alpine/20-image-run-shell.sh
Executable file
37
misc/test-qemu-with-podman/test-qemu2-alpine/20-image-run-shell.sh
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
## vim:set ts=4 sw=4 et:
|
||||||
|
set -e; set -o pipefail
|
||||||
|
argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
||||||
|
|
||||||
|
# run an interactive shell in the image
|
||||||
|
# using a rootless Podman container
|
||||||
|
|
||||||
|
image="$("$argv0dir/10-create-image.sh" --print-image)"
|
||||||
|
|
||||||
|
flags=( --read-only --rm --pull=never )
|
||||||
|
flags+=( --cap-drop=all ) # drop all capabilities
|
||||||
|
flags+=( --network=none ) # no network needed
|
||||||
|
flags+=( -ti -e TERM="$TERM" ) # allocate an interactive pseudo-tty and pass $TERM
|
||||||
|
if [[ 1 == 1 ]]; then
|
||||||
|
# run as user upx 2000:2000
|
||||||
|
flags+=( --user 2000 )
|
||||||
|
# map container users 0..999 to subuid-users 1..1000, and map container user 2000 to current host user
|
||||||
|
flags+=( --uidmap=0:1:1000 --uidmap=2000:0:1 )
|
||||||
|
# map container groups 0..999 to subgid-groups 1..1000, and map container group 2000 to current host group
|
||||||
|
flags+=( --gidmap=0:1:1000 --gidmap=2000:0:1 )
|
||||||
|
# NOTE: we mount the upx top-level directory read-write under /home/upx/src/upx
|
||||||
|
# INFO: SELinux users *may* have to add ":z" to the volume mount flags; check the docs!
|
||||||
|
flags+=( -v "${argv0dir}/../../..:/home/upx/src/upx" )
|
||||||
|
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
|
||||||
|
# run as user root 0:0
|
||||||
|
# ONLY FOR DEBUGGING THE IMAGE
|
||||||
|
# map container user/group 0 to current host user/group
|
||||||
|
flags+=( --user 0 )
|
||||||
|
fi
|
||||||
|
|
||||||
|
podman run "${flags[@]}" "$image" bash -l
|
||||||
|
|
||||||
|
# please see usage instructions in ../README.md
|
||||||
26
misc/test-qemu-with-podman/test-qemu2-alpine/Dockerfile
Normal file
26
misc/test-qemu-with-podman/test-qemu2-alpine/Dockerfile
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
FROM docker.io/library/alpine:3.8
|
||||||
|
|
||||||
|
# install qemu-2.12.0-r3 and some utils
|
||||||
|
RUN apk update && apk upgrade && apk add \
|
||||||
|
bash-completion \
|
||||||
|
musl-dbg \
|
||||||
|
qemu-aarch64 \
|
||||||
|
qemu-arm \
|
||||||
|
qemu-armeb \
|
||||||
|
qemu-i386 \
|
||||||
|
qemu-mips \
|
||||||
|
qemu-mipsel \
|
||||||
|
qemu-ppc \
|
||||||
|
qemu-ppc64 \
|
||||||
|
qemu-ppc64le \
|
||||||
|
qemu-x86_64 \
|
||||||
|
strace \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
# create default user upx:upx 2000:2000
|
||||||
|
RUN adduser upx -u 2000 -D \
|
||||||
|
&& cd /home/upx && chmod 00700 . \
|
||||||
|
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||||
|
&& chown -R upx:upx . \
|
||||||
|
&& true
|
||||||
|
USER upx
|
||||||
@ -1,6 +1,6 @@
|
|||||||
FROM docker.io/library/alpine:3.9
|
FROM docker.io/library/alpine:3.9
|
||||||
|
|
||||||
# install qemu 3.1.0-r3 and some utils
|
# install qemu-3.1.0-r3 and some utils
|
||||||
RUN apk update && apk upgrade && apk add \
|
RUN apk update && apk upgrade && apk add \
|
||||||
bash-completion \
|
bash-completion \
|
||||||
musl-dbg \
|
musl-dbg \
|
||||||
@ -17,10 +17,10 @@ RUN apk update && apk upgrade && apk add \
|
|||||||
strace \
|
strace \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
# create default user upx 2000:2000
|
# create default user upx:upx 2000:2000
|
||||||
RUN adduser upx -u 2000 -D \
|
RUN adduser upx -u 2000 -D \
|
||||||
&& cd /home/upx && chmod 00700 . \
|
&& cd /home/upx && chmod 00700 . \
|
||||||
&& mkdir -p .cache .local/bin src/upx \
|
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||||
&& chown -R upx:upx . \
|
&& chown -R upx:upx . \
|
||||||
&& true
|
&& true
|
||||||
USER upx
|
USER upx
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
FROM docker.io/library/alpine:3.11
|
FROM docker.io/library/alpine:3.11
|
||||||
|
|
||||||
# install qemu 4.2.0-r0 and some utils
|
# install qemu-4.2.0-r0 and some utils
|
||||||
RUN apk update && apk upgrade && apk add \
|
RUN apk update && apk upgrade && apk add \
|
||||||
bash-completion \
|
bash-completion \
|
||||||
musl-dbg \
|
musl-dbg \
|
||||||
@ -17,10 +17,10 @@ RUN apk update && apk upgrade && apk add \
|
|||||||
strace \
|
strace \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
# create default user upx 2000:2000
|
# create default user upx:upx 2000:2000
|
||||||
RUN adduser upx -u 2000 -D \
|
RUN adduser upx -u 2000 -D \
|
||||||
&& cd /home/upx && chmod 00700 . \
|
&& cd /home/upx && chmod 00700 . \
|
||||||
&& mkdir -p .cache .local/bin src/upx \
|
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||||
&& chown -R upx:upx . \
|
&& chown -R upx:upx . \
|
||||||
&& true
|
&& true
|
||||||
USER upx
|
USER upx
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
FROM docker.io/library/alpine:3.13
|
FROM docker.io/library/alpine:3.13
|
||||||
|
|
||||||
# install qemu 5.2.0-r3 and some utils
|
# install qemu-5.2.0-r3 and some utils
|
||||||
RUN apk update && apk upgrade && apk add \
|
RUN apk update && apk upgrade && apk add \
|
||||||
bash-completion \
|
bash-completion \
|
||||||
musl-dbg \
|
musl-dbg \
|
||||||
@ -17,10 +17,10 @@ RUN apk update && apk upgrade && apk add \
|
|||||||
strace \
|
strace \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
# create default user upx 2000:2000
|
# create default user upx:upx 2000:2000
|
||||||
RUN adduser upx -u 2000 -D \
|
RUN adduser upx -u 2000 -D \
|
||||||
&& cd /home/upx && chmod 00700 . \
|
&& cd /home/upx && chmod 00700 . \
|
||||||
&& mkdir -p .cache .local/bin src/upx \
|
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||||
&& chown -R upx:upx . \
|
&& chown -R upx:upx . \
|
||||||
&& true
|
&& true
|
||||||
USER upx
|
USER upx
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
FROM docker.io/library/alpine:3.15
|
FROM docker.io/library/alpine:3.15
|
||||||
|
|
||||||
# install qemu 6.1.1-r0 and some utils
|
# install qemu-6.1.1-r0 and some utils
|
||||||
RUN apk update && apk upgrade && apk add \
|
RUN apk update && apk upgrade && apk add \
|
||||||
bash-completion \
|
bash-completion \
|
||||||
musl-dbg \
|
musl-dbg \
|
||||||
@ -17,10 +17,10 @@ RUN apk update && apk upgrade && apk add \
|
|||||||
strace \
|
strace \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
# create default user upx 2000:2000
|
# create default user upx:upx 2000:2000
|
||||||
RUN adduser upx -u 2000 -D \
|
RUN adduser upx -u 2000 -D \
|
||||||
&& cd /home/upx && chmod 00700 . \
|
&& cd /home/upx && chmod 00700 . \
|
||||||
&& mkdir -p .cache .local/bin src/upx \
|
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||||
&& chown -R upx:upx . \
|
&& chown -R upx:upx . \
|
||||||
&& true
|
&& true
|
||||||
USER upx
|
USER upx
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
FROM docker.io/library/alpine:3.17
|
FROM docker.io/library/alpine:3.17
|
||||||
|
|
||||||
# install qemu 7.1.0-r7 and some utils
|
# install qemu-7.1.0-r7 and some utils
|
||||||
RUN apk update && apk upgrade && apk add \
|
RUN apk update && apk upgrade && apk add \
|
||||||
bash-completion \
|
bash-completion \
|
||||||
musl-dbg \
|
musl-dbg \
|
||||||
@ -17,10 +17,10 @@ RUN apk update && apk upgrade && apk add \
|
|||||||
strace \
|
strace \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
# create default user upx 2000:2000
|
# create default user upx:upx 2000:2000
|
||||||
RUN adduser upx -u 2000 -D \
|
RUN adduser upx -u 2000 -D \
|
||||||
&& cd /home/upx && chmod 00700 . \
|
&& cd /home/upx && chmod 00700 . \
|
||||||
&& mkdir -p .cache .local/bin src/upx \
|
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||||
&& chown -R upx:upx . \
|
&& chown -R upx:upx . \
|
||||||
&& true
|
&& true
|
||||||
USER upx
|
USER upx
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
FROM docker.io/library/alpine:3.18
|
FROM docker.io/library/alpine:3.18
|
||||||
|
|
||||||
# install qemu 8.0.3-r0 and some utils
|
# install qemu-8.0.3-r0 and some utils
|
||||||
RUN apk update && apk upgrade && apk add \
|
RUN apk update && apk upgrade && apk add \
|
||||||
bash-completion \
|
bash-completion \
|
||||||
musl-dbg \
|
musl-dbg \
|
||||||
@ -17,10 +17,10 @@ RUN apk update && apk upgrade && apk add \
|
|||||||
strace \
|
strace \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
# create default user upx 2000:2000
|
# create default user upx:upx 2000:2000
|
||||||
RUN adduser upx -u 2000 -D \
|
RUN adduser upx -u 2000 -D \
|
||||||
&& cd /home/upx && chmod 00700 . \
|
&& cd /home/upx && chmod 00700 . \
|
||||||
&& mkdir -p .cache .local/bin src/upx \
|
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||||
&& chown -R upx:upx . \
|
&& chown -R upx:upx . \
|
||||||
&& true
|
&& true
|
||||||
USER upx
|
USER upx
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user