Also provide musl libc builds of Velocity natives
Reference: PaperMC/Paper#11367
This commit is contained in:
9
native/build-support/alpine.Dockerfile
Normal file
9
native/build-support/alpine.Dockerfile
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
FROM amazoncorretto:17.0.12-alpine3.18
|
||||
|
||||
# Install required dependencies
|
||||
RUN apk add --no-cache bash alpine-sdk cmake openssl-dev openssl
|
||||
|
||||
# Create a non-root user
|
||||
RUN adduser -D user
|
||||
USER user
|
@@ -6,7 +6,8 @@ set -e
|
||||
cd "$(dirname "$0")/.." || exit 1
|
||||
|
||||
ARCHS=(x86_64 aarch64)
|
||||
BASE_DOCKERFILE_VARIANTS=(ubuntu-focal ubuntu-jammy)
|
||||
BASE_DOCKERFILE_VARIANTS=(ubuntu-focal ubuntu-jammy alpine)
|
||||
COMPRESSION_VARIANTS=(ubuntu-focal alpine)
|
||||
|
||||
for variant in "${BASE_DOCKERFILE_VARIANTS[@]}"; do
|
||||
docker_platforms=""
|
||||
@@ -25,8 +26,8 @@ for arch in "${ARCHS[@]}"; do
|
||||
docker run --rm -v "$(pwd)":/app --platform linux/${arch} velocity-native-build:$variant /bin/bash -c "cd /app && ./build-support/compile-linux-crypto.sh"
|
||||
done
|
||||
|
||||
# Use only the oldest variant for the compression library
|
||||
variant=${BASE_DOCKERFILE_VARIANTS[0]}
|
||||
echo "Building native compression for $arch on $variant..."
|
||||
docker run --rm -v "$(pwd)":/app --platform linux/${arch} velocity-native-build:$variant /bin/bash -c "cd /app && ./build-support/compile-linux-compress.sh"
|
||||
for variant in "${COMPRESSION_VARIANTS[@]}"; do
|
||||
echo "Building native compression for $arch on $variant..."
|
||||
docker run --rm -v "$(pwd)":/app --platform linux/${arch} velocity-native-build:$variant /bin/bash -c "cd /app && ./build-support/compile-linux-compress.sh"
|
||||
done
|
||||
done
|
@@ -16,8 +16,14 @@ cd libdeflate || exit
|
||||
rm -rf build && cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -B build && cmake --build build --target libdeflate_static
|
||||
cd ..
|
||||
|
||||
# Determine if we are on musl libc or glibc
|
||||
suffix=""
|
||||
if ldd --version 2>&1 | grep -q musl; then
|
||||
suffix="-musl"
|
||||
fi
|
||||
|
||||
CFLAGS="-O2 -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/ -fPIC -shared -Wl,-z,noexecstack -Wall -Werror -fomit-frame-pointer"
|
||||
ARCH=$(uname -m)
|
||||
mkdir -p src/main/resources/linux_$ARCH
|
||||
$CC $CFLAGS -Ilibdeflate src/main/c/jni_util.c src/main/c/jni_zlib_deflate.c src/main/c/jni_zlib_inflate.c \
|
||||
libdeflate/build/libdeflate.a -o src/main/resources/linux_$ARCH/velocity-compress.so
|
||||
libdeflate/build/libdeflate.a -o src/main/resources/linux_$ARCH/velocity-compress$suffix.so
|
@@ -20,9 +20,11 @@ if [ ! "$CC" ]; then
|
||||
export CC=gcc
|
||||
fi
|
||||
|
||||
output_file="velocity-cipher.so"
|
||||
if [ -n "$OPENSSL_VERSION" ]; then
|
||||
output_file="velocity-cipher-ossl${OPENSSL_VERSION}.so"
|
||||
# Determine if we are on musl libc or glibc
|
||||
suffix=""
|
||||
if ldd --version 2>&1 | grep -q musl; then
|
||||
suffix="-musl"
|
||||
filename=$(echo "$filename" | sed "s/\.so/$suffix.so/")
|
||||
fi
|
||||
|
||||
CFLAGS="-O2 -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/ -fPIC -shared -Wl,-z,noexecstack -Wall -Werror -fomit-frame-pointer"
|
||||
|
Reference in New Issue
Block a user