diff --git a/release_scripts/build_all.sh b/release_scripts/build_all.sh index d5ca00e..0e7d526 100755 --- a/release_scripts/build_all.sh +++ b/release_scripts/build_all.sh @@ -37,3 +37,4 @@ gnome-terminal --tab -- linux_x64/build.sh $1 gnome-terminal --tab -- windows_x64/build.sh $1 gnome-terminal --tab -- macos_aarch64/build.sh $1 gnome-terminal --tab -- macos_x64/build.sh $1 +gnome-terminal --tab -- source/build.sh $1 diff --git a/release_scripts/images/ubuntu/prepare.sh b/release_scripts/images/ubuntu/prepare.sh index 2626ef9..53811ff 100755 --- a/release_scripts/images/ubuntu/prepare.sh +++ b/release_scripts/images/ubuntu/prepare.sh @@ -14,6 +14,7 @@ LINUX_HEADERS_VERSION=6.15.4 MACOSX_SDK_VERSION=15.5 MAKE_VERSION=4.4.1 MINGW_VERSION=12.0.0 +XZ_VERSION=5.8.1 _7ZIP_SHA256="914c7e20ad5ef8e4d3cf08620ff8894b28fe11b7eb99809d6930870fbe48a281" CMAKE_SHA256="585ae9e013107bc8e7c7c9ce872cbdcbdff569e675b07ef57aacfb88c886faac" @@ -411,6 +412,21 @@ tar -xf $FREEBSD_FILE ./lib/ ./usr/lib/ ./usr/include/ rm $FREEBSD_FILE #find /usr/local/cross-freebsd-aarch64/usr/lib -xtype l|xargs ls -l|grep ' /lib/'|awk '{print "ln -sf /usr/local/cross-freebsd-aarch64"$11 " " $9}'|/bin/sh +echo "Install xz" + +apt-get remove -yq xz-utils + +cd /root + +git clone --depth=1 --branch v$XZ_VERSION https://github.com/tukaani-project/xz +cd xz +mkdir build && cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang +make -j$(nproc) + +cp -f lzma* /usr/bin +cp -f xz* /usr/bin + echo "Deleting system glibc files to force our glibc" rm /usr/lib/x86_64-linux-gnu/crt1.o diff --git a/release_scripts/source/Dockerfile b/release_scripts/source/Dockerfile new file mode 100644 index 0000000..d1e556f --- /dev/null +++ b/release_scripts/source/Dockerfile @@ -0,0 +1,4 @@ +FROM p2pool_build_ubuntu +ARG P2POOL_VERSION BUILD_TIMESTAMP +ADD p2pool_source.sh /root +RUN /root/p2pool_source.sh ${P2POOL_VERSION} ${BUILD_TIMESTAMP} diff --git a/release_scripts/source/build.sh b/release_scripts/source/build.sh new file mode 100755 index 0000000..8afcef6 --- /dev/null +++ b/release_scripts/source/build.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# Example usage: ./build.sh v4.8.1 + +cd "$(dirname "$0")" + +docker build --build-arg P2POOL_VERSION=$1 --build-arg BUILD_TIMESTAMP="$(git show --no-patch --format=%ct $1)" -t p2pool_source_build . + +docker create --name p2pool_source_build_container p2pool_source_build:latest +docker cp p2pool_source_build_container:/root/p2pool_source-$1.tar.xz ../p2pool_source-$1.tar.xz +docker rm p2pool_source_build_container + +docker image rm -f p2pool_source_build diff --git a/release_scripts/source/p2pool_source.sh b/release_scripts/source/p2pool_source.sh new file mode 100755 index 0000000..65fedbe --- /dev/null +++ b/release_scripts/source/p2pool_source.sh @@ -0,0 +1,18 @@ +#!/bin/sh +set -e + +export TZ=UTC0 + +CURRENT_DATE=$(date -u -d @$2 +"%Y-%m-%d") +CURRENT_TIME=$(date -u -d @$2 +"%H:%M:%S") +TOUCH_DATE=$(date -u -d @$2 +"%Y%m%d%H%M.%S") + +cd /root + +git clone --depth=1 --recursive --branch $1 https://github.com/SChernykh/p2pool + +tar --format=pax --pax-option='exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime' --sort=name --owner=0 --group=0 --mtime="$CURRENT_DATE $CURRENT_TIME" --exclude=".git" --exclude="release_scripts/*.tar*" -f p2pool_source-$1.tar -c p2pool +touch -t $TOUCH_DATE p2pool_source-$1.tar + +xz --version +xz --lzma2=preset=9e,dict=256MiB,pb=0 p2pool_source-$1.tar