reorganizing release ouput to cleaner directory structure

This commit is contained in:
dan_s
2026-02-25 23:50:14 -06:00
parent 3cf6c37bf6
commit 10a1b27de1
5 changed files with 52 additions and 5 deletions

1
.gitignore vendored
View File

@@ -175,6 +175,7 @@ src/RandomX/build-linux/
src/RandomX/build-win64/
src/wallet-utility.exe
src/.build_target
release/
# other
repos/

View File

@@ -11,22 +11,28 @@ make clean 2>/dev/null || true
rm -rf depends/built depends/x86_64-unknown-linux-gnu depends/work
make -C depends clean 2>/dev/null || true
# Limit parallelism to avoid OOM kills inside Docker.
# Each C++ compilation can use 1-2 GB RAM; cap at ~half of nproc.
JOBS=$(( $(nproc) / 2 ))
[ "$JOBS" -lt 1 ] && JOBS=1
# Build RandomX for Linux (clean, since host build is different arch/libc)
cd src/RandomX
rm -rf build-linux
mkdir -p build-linux && cd build-linux
cmake -DARCH=native ..
make -j$(nproc)
make -j"$JOBS"
cd /hush3
# Run the normal build
./util/build.sh --disable-tests -j$(nproc)
./util/build.sh --disable-tests -j"$JOBS"
# Package release
echo "Creating Linux release package..."
VERSION=$(grep -oP 'define\(_CLIENT_VERSION.*?,\s*\K[0-9]+' configure.ac | head -3 | tr '\n' '.' | sed 's/\.$//')
VERSION=${VERSION:-3.10.5}
RELEASE_DIR="release-linux"
UBUNTU_VERSION=$(grep -oP 'VERSION_ID="\K[^"]+' /etc/os-release 2>/dev/null || echo "unknown")
RELEASE_DIR="release/linux-${UBUNTU_VERSION}"
mkdir -p "$RELEASE_DIR"
strip -s src/hushd src/hush-cli src/hush-tx

View File

@@ -56,7 +56,7 @@ if [[ "${1:-}" == "--linux-release" ]]; then
echo "Building Linux release inside Ubuntu 20.04 Docker container..."
sudo docker build -t hush-builder -f Dockerfile.build .
sudo docker run --rm -e HOST_UID=$(id -u) -e HOST_GID=$(id -g) -v "$SCRIPT_DIR:/hush3" hush-builder "$@"
echo "Docker build complete. Release is in release-linux/"
echo "Docker build complete. Release is in release/linux-<ubuntu_version>/"
exit $?
fi

View File

@@ -97,3 +97,34 @@ CXXFLAGS="${EXTRA_CXXFLAGS} -I$PREFIX/include" \
./configure --prefix="${PREFIX}" --with-gui=no "$HARDENING_ARG" "$LCOV_ARG"
make "$@" V=1 NO_GTEST=1 STATIC=1
# Package release
echo "Creating macOS release package..."
VERSION=$(grep -oP 'define\(_CLIENT_VERSION.*?,\s*\K[0-9]+' configure.ac | head -3 | tr '\n' '.' | sed 's/\.$//')
VERSION=${VERSION:-3.10.5}
RELEASE_DIR="release/mac"
mkdir -p "$RELEASE_DIR"
# Strip binaries
strip src/hushd src/hush-cli src/hush-tx 2>/dev/null || true
# Copy binaries
cp src/hushd src/hush-cli src/hush-tx "$RELEASE_DIR/"
# Copy wrapper scripts
cp src/hush-arrakis-chain src/dragonxd src/dragonx-cli "$RELEASE_DIR/" 2>/dev/null || true
# Copy required data files
cp asmap.dat sapling-spend.params sapling-output.params "$RELEASE_DIR/" 2>/dev/null || true
# Copy bootstrap script
cp contrib/bootstrap/bootstrap-dragonx.sh "$RELEASE_DIR/" 2>/dev/null || true
# Create ZIP
rm -f "$RELEASE_DIR/hush-${VERSION}-mac.zip"
cd "$RELEASE_DIR"
zip -9 "hush-${VERSION}-mac.zip" *
cd ..
echo "Release package created: $RELEASE_DIR/hush-${VERSION}-mac.zip"
ls -lh "$RELEASE_DIR/hush-${VERSION}-mac.zip"

View File

@@ -39,6 +39,15 @@ fi
cd $WD
sed -i 's/-lboost_system-mt /-lboost_system-mt-s /' configure
# Clean any stale native-compiled objects before cross-compiling.
# If objects were previously built with the native Linux compiler (ELF format),
# make won't recompile them for Windows (COFF format), causing link failures.
if [ -f src/libbitcoin_server.a ]; then
echo "Cleaning previous build objects to ensure Windows cross-compilation..."
cd src/ && make clean 2>/dev/null || true && cd ..
fi
cd src/
CC="${CC} -g " CXX="${CXX} -g " make V=1 hushd.exe hush-cli.exe hush-tx.exe
@@ -47,7 +56,7 @@ cd $WD
echo "Creating Windows release package..."
VERSION=$(grep -oP 'define\(_CLIENT_VERSION.*?,\s*\K[0-9]+' configure.ac | head -3 | tr '\n' '.' | sed 's/\.$//')
VERSION=${VERSION:-3.10.5}
RELEASE_DIR="release-win64"
RELEASE_DIR="release/windows"
mkdir -p "$RELEASE_DIR"
# Strip binaries