diff --git a/.github/workflows/build-gdb.yml b/.forgejo/workflows/build-gdb.yml similarity index 100% rename from .github/workflows/build-gdb.yml rename to .forgejo/workflows/build-gdb.yml diff --git a/.github/workflows/build-nmap.yml b/.forgejo/workflows/build-nmap.yml similarity index 100% rename from .github/workflows/build-nmap.yml rename to .forgejo/workflows/build-nmap.yml diff --git a/.github/workflows/build-openssh.yml b/.forgejo/workflows/build-openssh.yml similarity index 100% rename from .github/workflows/build-openssh.yml rename to .forgejo/workflows/build-openssh.yml diff --git a/.github/workflows/build-socat.yml b/.forgejo/workflows/build-socat.yml similarity index 56% rename from .github/workflows/build-socat.yml rename to .forgejo/workflows/build-socat.yml index feef419..6113268 100644 --- a/.github/workflows/build-socat.yml +++ b/.forgejo/workflows/build-socat.yml @@ -4,16 +4,20 @@ on: jobs: build-x86: name: Build socat x86 - runs-on: ubuntu-latest - container: muslcc/x86_64:i686-linux-musl + runs-on: docker + container: + image: muslcc/x86_64:i686-linux-musl outputs: - version: ${{ steps.build_socat.outputs.PACKAGED_VERSION }} + version: "${{ steps.build_socat.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 + run: sudo apk update && sudo apk add bash nodejs git-lfs + + - name: Checkout + uses: actions/checkout@v4 + + - name: Install build dependencies + run: 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 @@ -23,18 +27,27 @@ jobs: run: $GITHUB_WORKSPACE/build/targets/build_socat.sh x86 - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} build-x86_64: name: Build socat x86_64 - runs-on: ubuntu-latest + runs-on: docker container: muslcc/x86_64:x86_64-linux-musl steps: + - name: Install dependencies + run: sudo apk update && sudo apk add bash nodejs git-lfs + - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 + + - name: Install build dependencies + run: sudo bash build/install_deps_alpine.sh + + - name: Checkout + uses: actions/checkout@v4 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh @@ -47,18 +60,18 @@ jobs: run: $GITHUB_WORKSPACE/build/targets/build_socat.sh x86_64 - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} build-armhf: name: Build socat ARMHF - runs-on: ubuntu-latest + runs-on: docker container: muslcc/x86_64:arm-linux-musleabihf steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh @@ -79,18 +92,18 @@ jobs: run: $GITHUB_WORKSPACE/build/targets/build_socat.sh armhf - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} build-aarch64: name: Build socat AARCH64 - runs-on: ubuntu-latest + runs-on: docker container: muslcc/x86_64:aarch64-linux-musl steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh @@ -111,24 +124,88 @@ jobs: run: $GITHUB_WORKSPACE/build/targets/build_socat.sh aarch64 - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: https://code.forgejo.org/forgejo/upload-artifact@v4 + with: + name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} + path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} + + build-ppc32: + name: Build socat powerpc32 + runs-on: docker + container: muslcc/x86_64:powerpc-linux-musl + steps: + - name: Checkout + uses: actions/checkout@v4 + + - 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 socat + id: build_socat + run: $GITHUB_WORKSPACE/build/targets/build_socat.sh ppc32 + + - name: Upload artifacts + uses: https://code.forgejo.org/forgejo/upload-artifact@v4 + with: + name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} + path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} + + build-ppc64: + name: Build socat powerpc64 + runs-on: docker + container: muslcc/x86_64:powerpc64-linux-musl + steps: + - name: Checkout + uses: actions/checkout@v4 + + - 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 socat + id: build_socat + run: $GITHUB_WORKSPACE/build/targets/build_socat.sh ppc64 + + - name: Upload artifacts + uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} create-release: name: Create socat Release - runs-on: ubuntu-latest - needs: [build-x86, build-x86_64, build-armhf, build-aarch64] + runs-on: docker + needs: [build-x86, build-x86_64, build-armhf, build-aarch64, build-ppc32, build-ppc64] steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Prepare Environment run: mkdir /tmp/releases - name: Download Artifacts - uses: actions/download-artifact@v2 + uses: https://code.forgejo.org/forgejo/download-artifact@v4 with: path: /tmp/releases diff --git a/.github/workflows/build-strace.yml b/.forgejo/workflows/build-strace.yml similarity index 100% rename from .github/workflows/build-strace.yml rename to .forgejo/workflows/build-strace.yml diff --git a/.github/workflows/build-tcpdump.yml b/.forgejo/workflows/build-tcpdump.yml similarity index 100% rename from .github/workflows/build-tcpdump.yml rename to .forgejo/workflows/build-tcpdump.yml diff --git a/build/install_deps_alpine.sh b/build/install_deps_alpine.sh index 3f916b0..15b52b7 100755 --- a/build/install_deps_alpine.sh +++ b/build/install_deps_alpine.sh @@ -13,6 +13,8 @@ apk add \ libtool \ qemu-arm \ qemu-aarch64 \ + qemu-ppc \ + qemu-ppc64 \ file \ texinfo \ zip \ diff --git a/build/lib.sh b/build/lib.sh index 8107faa..3d09984 100755 --- a/build/lib.sh +++ b/build/lib.sh @@ -47,6 +47,10 @@ get_host_triple(){ host="arm-linux-musleabihf" elif [ "$CURRENT_ARCH" == "aarch64" ];then host="aarch64-linux-musl" + elif [ "$CURRENT_ARCH" == "ppc32" ];then + host="powerpc-linux-musl" + elif [ "$CURRENT_ARCH" == "ppc64" ];then + host="powerpc64-linux-musl" fi echo $host } @@ -145,6 +149,20 @@ get_version(){ else echo "qemu-aarch64 not found, skipping AARCH64 version checks." >&2 fi + elif [ "$CURRENT_ARCH" == "ppc32" ];then + if which qemu-ppc 1>&2 2>/dev/null;then + cmd="qemu-ppc ${cmd}" + version+=$(eval "$cmd") + else + echo "qemu-ppc not found, skipping ppc32 version checks." >&2 + fi + elif [ "$CURRENT_ARCH" == "ppc64" ];then + if which qemu-ppc64 1>&2 2>/dev/null;then + cmd="qemu-ppc64 ${cmd}" + version+=$(eval "$cmd") + else + echo "qemu-ppc64 not found, skipping ppc64 version checks." >&2 + fi else version+=$(eval "$cmd") fi @@ -214,6 +232,10 @@ lib_build_openssl(){ openssl_arch="linux-x86_64" elif [ "${CURRENT_ARCH}" == "aarch64" ];then openssl_arch="linux-generic64" + elif [ "${CURRENT_ARCH}" == "ppc32" ];then + openssl_arch="linux-ppc" + elif [ "${CURRENT_ARCH}" == "ppc64" ];then + openssl_arch="linux-ppc" fi CFLAGS="${GCC_OPTS}" \ ./Configure \ diff --git a/build/targets/build_socat.sh b/build/targets/build_socat.sh index d09b841..5550a88 100755 --- a/build/targets/build_socat.sh +++ b/build/targets/build_socat.sh @@ -4,7 +4,7 @@ if [ -z "$GITHUB_WORKSPACE" ];then exit 1 fi if [ "$#" -ne 1 ];then - echo "Usage: ${0} [x86|x86_64|armhf|aarch64]" + echo "Usage: ${0} [x86|x86_64|armhf|aarch64|ppc32|ppc64]" echo "Example: ${0} x86_64" exit 1 fi