diff --git a/build/Dockerfile b/build/Dockerfile index 098bbf55..219a6434 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,13 +1,21 @@ FROM ekidd/rust-musl-builder +#ENV HTTP_PROXY="http://192.168.0.104:8118" +#ENV HTTPS_PROXY="http://192.168.0.104:8118" + +ENV SODIUM_VERS="1.0.15" + # Build a static copy of libsodium. -RUN VERS=1.0.15 && \ - cd /home/rust/libs && \ - curl -LO https://download.libsodium.org/libsodium/releases/libsodium-$VERS.tar.gz && \ - tar xzf libsodium-$VERS.tar.gz && cd libsodium-$VERS && \ +RUN cd /home/rust/libs && \ + curl -LO https://download.libsodium.org/libsodium/releases/libsodium-$SODIUM_VERS.tar.gz && \ + tar xzf libsodium-$SODIUM_VERS.tar.gz && cd libsodium-$SODIUM_VERS && \ CC=musl-gcc ./configure --prefix=/usr/local/musl && \ make && sudo make install && \ - cd .. && rm -rf libsodium-$VERS.tar.gz libsodium-$VERS + cd .. && rm -rf libsodium-$SODIUM_VERS.tar.gz libsodium-$SODIUM_VERS + +#RUN rustup install nightly +#RUN rustup default nightly +#RUN rustup target add x86_64-unknown-linux-musl ENV SODIUM_STATIC=yes ENV SODIUM_LIB_DIR=/usr/local/musl/lib diff --git a/build/build-release b/build/build-release index 06b3cf37..0a08e530 100755 --- a/build/build-release +++ b/build/build-release @@ -1,5 +1,23 @@ #!/bin/sh +VERSION="latest" +ENABLE_GZ=false + +while getopts "v:gh" opt; do + case $opt in + v) + VERSION=$OPTARG + ;; + g) + ENABLE_GZ=true + ;; + h|\?) + echo "$0 [-v VERSION] [-g] [-h]" + exit 0 + ;; + esac +done + IMAGE='shadowsocks-rust:latest' CUR_DIR=$( cd $( dirname $0 ) && pwd ) @@ -9,6 +27,8 @@ SRC_PATH="/home/rust/src" CARGO_TARGET_DIR="${SRC_PATH}/build/target" LOCAL_USER=$( id -u "$USER" ):$( id -g "$USER" ) +TARGET_NAME="x86_64-unknown-linux-musl" + docker run \ -e CARGO_TARGET_DIR="${CARGO_TARGET_DIR}" \ -v "${CUR_DIR}"/..:"$SRC_PATH" \ @@ -17,25 +37,23 @@ docker run \ /bin/bash -c \ "sudo mkdir -p $CARGO_TARGET_DIR \ && sudo chown -R rust:rust $CARGO_TARGET_DIR \ - && cargo build --release \ + && cargo build --release --target $TARGET_NAME \ && sudo chown -R $LOCAL_USER $CARGO_TARGET_DIR" -TARGET_NAME="x86_64-unknown-linux-musl" + TARGET_DIR="$CUR_DIR/target/$TARGET_NAME/release/" cd "$TARGET_DIR" -VERSION=$1 -if [[ -z "$VERSION" ]]; then - VERSION="latest" -fi - ## Disable OS X ACL file export COPYFILE_DISABLE=1 -tar -czf "${CUR_DIR}/shadowsocks-${VERSION}-release.${TARGET_NAME}.tar.gz" \ - "sslocal" \ - "ssserver" \ - "ssurl" +if $ENABLE_GZ; then + tar -czf "${CUR_DIR}/shadowsocks-${VERSION}-release.${TARGET_NAME}.tar.gz" \ + "sslocal" \ + "ssserver" \ + "ssurl" +fi + tar -cJf "${CUR_DIR}/shadowsocks-${VERSION}-release.${TARGET_NAME}.tar.xz" \ "sslocal" \ "ssserver" \