commit
43b769f5ae
3 changed files with 182 additions and 11 deletions
166
.github/workflows/build-strace.yml
vendored
Normal file
166
.github/workflows/build-strace.yml
vendored
Normal 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 }}
|
|
@ -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)|
|
||||
|[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)|
|
||||
|
||||
|[strace](https://github.com/ernw/static-toolbox/actions?query=workflow%3A%22strace%22)|![strace](https://github.com/ernw/static-toolbox/workflows/strace/badge.svg)|
|
||||
|
|
|
@ -10,34 +10,39 @@ fi
|
|||
source $GITHUB_WORKSPACE/build/lib.sh
|
||||
init_lib "$1"
|
||||
|
||||
VERSION="v6.3"
|
||||
|
||||
build_strace() {
|
||||
fetch "https://github.com/strace/strace" "${BUILD_DIRECTORY}/strace" git
|
||||
cd "${BUILD_DIRECTORY}/strace"
|
||||
git clean -fdx
|
||||
git checkout v5.7
|
||||
git checkout "$VERSION"
|
||||
./bootstrap
|
||||
CMD="CFLAGS=\"${GCC_OPTS}\" "
|
||||
CMD+="CXXFLAGS=\"${GXX_OPTS}\" "
|
||||
CMD+="LDFLAGS=\"-static -pthread\" "
|
||||
if [ "$CURRENT_ARCH" != "x86" ] && [ "$CURRENT_ARCH" != "x86_64" ];then
|
||||
CMD+="CC_FOR_BUILD=\"/i686-linux-musl-cross/bin/i686-linux-musl-gcc\" "
|
||||
CMD+="CPP_FOR_BUILD=\"/i686-linux-musl-cross/bin/i686-linux-musl-g++\" "
|
||||
if [ "$CURRENT_ARCH" != "x86_64" ];then
|
||||
CMD+="CC_FOR_BUILD=\"/x86_64-linux-musl-cross/bin/x86_64-linux-musl-gcc\" "
|
||||
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
|
||||
CMD+="./configure --host=i486-linux-musl --target=$(get_host_triple)"
|
||||
CMD+="./configure --disable-mpers --host=$(get_host_triple)"
|
||||
eval "$CMD"
|
||||
make CFLAGS="-w" -j4
|
||||
strip strace
|
||||
strip "${BUILD_DIRECTORY}/strace/src/strace"
|
||||
}
|
||||
|
||||
main() {
|
||||
build_strace
|
||||
local version
|
||||
version=$(get_version "${BUILD_DIRECTORY}/strace/strace --version 2>&1 | head -n1 | awk '{print \$4}'")
|
||||
cp "${BUILD_DIRECTORY}/strace/strace" "${OUTPUT_DIRECTORY}/strace"
|
||||
version=$(get_version "${BUILD_DIRECTORY}/strace/src/strace -V 2>&1 | head -n1 | awk '{print \$4}'")
|
||||
version_number=$(echo "$version" | cut -d"-" -f2)
|
||||
cp "${BUILD_DIRECTORY}/strace/src/strace" "${OUTPUT_DIRECTORY}/strace${version}"
|
||||
echo "[+] Finished building strace ${CURRENT_ARCH}"
|
||||
|
||||
echo ::set-output name=PACKAGED_NAME::"strace${version}"
|
||||
echo ::set-output name=PACKAGED_NAME_PATH::"${OUTPUT_DIRECTORY}/*"
|
||||
echo "PACKAGED_NAME=strace${version}" >> $GITHUB_OUTPUT
|
||||
echo "PACKAGED_NAME_PATH=${OUTPUT_DIRECTORY}/*" >> $GITHUB_OUTPUT
|
||||
echo "PACKAGED_VERSION=${version_number}" >> $GITHUB_OUTPUT
|
||||
}
|
||||
|
||||
main
|
||||
|
|
Loading…
Reference in a new issue