Merge pull request #15 from ttdennis/strace

Strace
This commit is contained in:
hnzlmnn-ernw 2023-05-22 14:54:34 +02:00 committed by GitHub
commit 43b769f5ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 182 additions and 11 deletions

166
.github/workflows/build-strace.yml vendored Normal file
View file

@ -0,0 +1,166 @@
name: strace
on:
workflow_dispatch
jobs:
build-x86:
name: Build strace x86
runs-on: ubuntu-latest
container: muslcc/x86_64:i686-linux-musl
outputs:
version: ${{ steps.build_strace.outputs.PACKAGED_VERSION }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install dependencies
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh
- name: Install testing dependencies
run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl
- name: Install build compiler
run: /bin/sh -c "apk update && apk upgrade && apk add --no-cache curl rsync sudo util-linux && cd / && curl -so ${ARCH}-cross.tgz ${HOST}/${ARCH}-cross.tgz && tar -xf ${ARCH}-cross.tgz && rm ${ARCH}-cross.tgz && cd ${ARCH}-cross"
env:
ARCH: x86_64-linux-musl
HOST: http://musl.cc/
TEMP: /tmp
USER: 0
- name: Build strace
id: build_strace
run: $GITHUB_WORKSPACE/build/targets/build_strace.sh x86
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ steps.build_strace.outputs.PACKAGED_NAME }}
path: ${{ steps.build_strace.outputs.PACKAGED_NAME_PATH }}
build-x86_64:
name: Build strace x86_64
runs-on: ubuntu-latest
container: muslcc/x86_64:x86_64-linux-musl
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install dependencies
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh
- name: Install testing dependencies
run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl
- name: Build strace
id: build_strace
run: $GITHUB_WORKSPACE/build/targets/build_strace.sh x86_64
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ steps.build_strace.outputs.PACKAGED_NAME }}
path: ${{ steps.build_strace.outputs.PACKAGED_NAME_PATH }}
build-armhf:
name: Build strace ARMHF
runs-on: ubuntu-latest
container: muslcc/x86_64:arm-linux-musleabihf
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install dependencies
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh
- name: Install testing dependencies
run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl
- name: Install build compiler
run: /bin/sh -c "apk update && apk upgrade && apk add --no-cache curl rsync sudo util-linux && cd / && curl -so ${ARCH}-cross.tgz ${HOST}/${ARCH}-cross.tgz && tar -xf ${ARCH}-cross.tgz && rm ${ARCH}-cross.tgz && cd ${ARCH}-cross"
env:
ARCH: x86_64-linux-musl
HOST: http://musl.cc/
TEMP: /tmp
USER: 0
- name: Build strace
id: build_strace
run: $GITHUB_WORKSPACE/build/targets/build_strace.sh armhf
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ steps.build_strace.outputs.PACKAGED_NAME }}
path: ${{ steps.build_strace.outputs.PACKAGED_NAME_PATH }}
build-aarch64:
name: Build strace AARCH64
runs-on: ubuntu-latest
container: muslcc/x86_64:aarch64-linux-musl
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install dependencies
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh
- name: Install testing dependencies
run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl
- name: Install build compiler
run: /bin/sh -c "apk update && apk upgrade && apk add --no-cache curl rsync sudo util-linux && cd / && curl -so ${ARCH}-cross.tgz ${HOST}/${ARCH}-cross.tgz && tar -xf ${ARCH}-cross.tgz && rm ${ARCH}-cross.tgz && cd ${ARCH}-cross"
env:
ARCH: x86_64-linux-musl
HOST: http://musl.cc/
TEMP: /tmp
USER: 0
- name: Build strace
id: build_strace
run: $GITHUB_WORKSPACE/build/targets/build_strace.sh aarch64
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ steps.build_strace.outputs.PACKAGED_NAME }}
path: ${{ steps.build_strace.outputs.PACKAGED_NAME_PATH }}
create-release:
name: Create strace Release
runs-on: ubuntu-latest
needs: [build-x86, build-x86_64, build-armhf, build-aarch64]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Prepare Environment
run: mkdir /tmp/releases
- name: Download Artifacts
uses: actions/download-artifact@v2
with:
path: /tmp/releases
- name: List Artifacts
run: ls -laR /tmp/releases
- name: Tag Release
id: tag_release
run: |
set +e
if git rev-list "strace-v${{ needs.build-x86.outputs.version }}".. >/dev/null;then
echo "Tag for strace-v${{ needs.build-x86.outputs.version }} already exists. Skipping release creation."
echo "NEW_RELEASE=false" >> $GITHUB_OUTPUT
else
git tag "strace-v${{ needs.build-x86.outputs.version }}"
git push origin "strace-v${{ needs.build-x86.outputs.version }}"
echo "NEW_RELEASE=true" >> $GITHUB_OUTPUT
fi
- name: Create Release
uses: ncipollo/release-action@v1
if: ${{ steps.tag_release.outputs.NEW_RELEASE == 'true' }}
with:
name: strace-v${{ needs.build-x86.outputs.version }}
tag: strace-v${{ needs.build-x86.outputs.version }}
artifacts: "/tmp/releases/*/*"
token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -28,4 +28,4 @@ The following table shows the building status for the current toolset. The follo
|[socat](https://github.com/ernw/static-toolbox/actions?query=workflow%3A%22socat%22)|![socat](https://github.com/ernw/static-toolbox/workflows/socat/badge.svg)| |[socat](https://github.com/ernw/static-toolbox/actions?query=workflow%3A%22socat%22)|![socat](https://github.com/ernw/static-toolbox/workflows/socat/badge.svg)|
|[GDB & gdbserver](https://github.com/ernw/static-toolbox/actions?query=workflow%3AGDB)|![GDB & gdbserver](https://github.com/ernw/static-toolbox/workflows/GDB%20&%20gdbserver/badge.svg)| |[GDB & gdbserver](https://github.com/ernw/static-toolbox/actions?query=workflow%3AGDB)|![GDB & gdbserver](https://github.com/ernw/static-toolbox/workflows/GDB%20&%20gdbserver/badge.svg)|
|[tcpdump](https://github.com/ernw/static-toolbox/actions?query=workflow%3A%22tcpdump%22)|![tcpdump](https://github.com/ernw/static-toolbox/workflows/tcpdump/badge.svg)| |[tcpdump](https://github.com/ernw/static-toolbox/actions?query=workflow%3A%22tcpdump%22)|![tcpdump](https://github.com/ernw/static-toolbox/workflows/tcpdump/badge.svg)|
|[strace](https://github.com/ernw/static-toolbox/actions?query=workflow%3A%22strace%22)|![strace](https://github.com/ernw/static-toolbox/workflows/strace/badge.svg)|

View file

@ -10,34 +10,39 @@ fi
source $GITHUB_WORKSPACE/build/lib.sh source $GITHUB_WORKSPACE/build/lib.sh
init_lib "$1" init_lib "$1"
VERSION="v6.3"
build_strace() { build_strace() {
fetch "https://github.com/strace/strace" "${BUILD_DIRECTORY}/strace" git fetch "https://github.com/strace/strace" "${BUILD_DIRECTORY}/strace" git
cd "${BUILD_DIRECTORY}/strace" cd "${BUILD_DIRECTORY}/strace"
git clean -fdx git clean -fdx
git checkout v5.7 git checkout "$VERSION"
./bootstrap ./bootstrap
CMD="CFLAGS=\"${GCC_OPTS}\" " CMD="CFLAGS=\"${GCC_OPTS}\" "
CMD+="CXXFLAGS=\"${GXX_OPTS}\" " CMD+="CXXFLAGS=\"${GXX_OPTS}\" "
CMD+="LDFLAGS=\"-static -pthread\" " CMD+="LDFLAGS=\"-static -pthread\" "
if [ "$CURRENT_ARCH" != "x86" ] && [ "$CURRENT_ARCH" != "x86_64" ];then if [ "$CURRENT_ARCH" != "x86_64" ];then
CMD+="CC_FOR_BUILD=\"/i686-linux-musl-cross/bin/i686-linux-musl-gcc\" " CMD+="CC_FOR_BUILD=\"/x86_64-linux-musl-cross/bin/x86_64-linux-musl-gcc\" "
CMD+="CPP_FOR_BUILD=\"/i686-linux-musl-cross/bin/i686-linux-musl-g++\" " CMD+="CPP_FOR_BUILD=\"/x86_64-linux-musl-cross/bin/x86_64-linux-musl-g++ -E\" "
CMD+="CXX_FOR_BUILD=\"/x86_64-linux-musl-cross/bin/x86_64-linux-musl-g++\" "
fi fi
CMD+="./configure --host=i486-linux-musl --target=$(get_host_triple)" CMD+="./configure --disable-mpers --host=$(get_host_triple)"
eval "$CMD" eval "$CMD"
make CFLAGS="-w" -j4 make CFLAGS="-w" -j4
strip strace strip "${BUILD_DIRECTORY}/strace/src/strace"
} }
main() { main() {
build_strace build_strace
local version local version
version=$(get_version "${BUILD_DIRECTORY}/strace/strace --version 2>&1 | head -n1 | awk '{print \$4}'") version=$(get_version "${BUILD_DIRECTORY}/strace/src/strace -V 2>&1 | head -n1 | awk '{print \$4}'")
cp "${BUILD_DIRECTORY}/strace/strace" "${OUTPUT_DIRECTORY}/strace" version_number=$(echo "$version" | cut -d"-" -f2)
cp "${BUILD_DIRECTORY}/strace/src/strace" "${OUTPUT_DIRECTORY}/strace${version}"
echo "[+] Finished building strace ${CURRENT_ARCH}" echo "[+] Finished building strace ${CURRENT_ARCH}"
echo ::set-output name=PACKAGED_NAME::"strace${version}" echo "PACKAGED_NAME=strace${version}" >> $GITHUB_OUTPUT
echo ::set-output name=PACKAGED_NAME_PATH::"${OUTPUT_DIRECTORY}/*" echo "PACKAGED_NAME_PATH=${OUTPUT_DIRECTORY}/*" >> $GITHUB_OUTPUT
echo "PACKAGED_VERSION=${version_number}" >> $GITHUB_OUTPUT
} }
main main