diff --git a/package.sh b/package.sh deleted file mode 100755 index 3d24d9a..0000000 --- a/package.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -set -e -bold=$(tput bold) -normal=$(tput sgr0) - -# This script generates packages for a release and places them in target/packages/. -# Don't use it directly, use package-docker.sh instead. - -cd "$(dirname $0)" - -echo "${bold}Running checks${normal}" -set -x -cargo fmt -- --check -cargo clippy --all -cargo test -q -set +x - -echo "${bold}Building${normal}" -set -x -cargo build --release -set +x - -echo "${bold}Packaging${normal}" -set -x -VERSION=$(cargo pkgid | sed 's/.*#//') -PKG_DIR=target/packages/$VERSION -mkdir -p $PKG_DIR -rm -f $PKG_DIR/* - -cargo deb -mv target/debian/*.deb $PKG_DIR - -#fakeroot alien --to-rpm -c $PKG_DIR/*.deb -#mv *.rpm $PKG_DIR -fakeroot alien --to-tgz -c $PKG_DIR/*.deb -mv *.tgz $PKG_DIR - -cargo build --release --target=x86_64-pc-windows-gnu -zip -j $PKG_DIR/"fclones-$VERSION-win.x86_64.zip" target/x86_64-pc-windows-gnu/release/fclones.exe diff --git a/Dockerfile b/packaging/Dockerfile similarity index 60% rename from Dockerfile rename to packaging/Dockerfile index c8ec565..6a93d18 100644 --- a/Dockerfile +++ b/packaging/Dockerfile @@ -4,5 +4,11 @@ RUN apt-get install -y fakeroot alien gcc-mingw-w64-x86-64 zip RUN rustup component add rustfmt RUN rustup component add clippy RUN rustup toolchain install stable-x86_64-pc-windows-gnu +RUN rustup target add x86_64-unknown-linux-musl +RUN rustup target add i686-unknown-linux-musl RUN rustup target add x86_64-pc-windows-gnu RUN cargo install cargo-deb +RUN mkdir /rpmbuild +RUN chmod -R a+rwx /rpmbuild +RUN chmod -R a+rwx /usr/local/cargo/registry + diff --git a/packaging/build-image.sh b/packaging/build-image.sh new file mode 100755 index 0000000..88f77f4 --- /dev/null +++ b/packaging/build-image.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# Builds a docker image used for generating various fclones packages +IMAGE="pkolaczk/fclones-builder" +docker build -t $IMAGE $(realpath "$(dirname $0)") diff --git a/packaging/package-internal.sh b/packaging/package-internal.sh new file mode 100755 index 0000000..8512177 --- /dev/null +++ b/packaging/package-internal.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -e +bold=$(tput bold) +normal=$(tput sgr0) + +# This script generates packages for a release and places them in target/packages/. +# Don't use it directly, use package.sh instead. + +cd "$(dirname $0)/.." + +echo "${bold}Building${normal}" +set -x +cargo build --release +cargo build --release --target i686-unknown-linux-musl +cargo build --release --target x86_64-unknown-linux-musl +cargo build --release --target x86_64-pc-windows-gnu +set +x + +echo "${bold}Packaging${normal}" +set -x +VERSION=$(cargo pkgid | sed 's/.*#//') +PKG_DIR=target/packages/$VERSION +mkdir -p $PKG_DIR +rm -f $PKG_DIR/* + +cargo deb +mv target/debian/*.deb $PKG_DIR + +fakeroot alien --to-rpm -c $PKG_DIR/*.deb +mv *.rpm $PKG_DIR +fakeroot alien --to-tgz -c $PKG_DIR/*.deb +mv *.tgz $PKG_DIR/"fclones-$VERSION-linux-glibc-x86_64.tar.gz" + +tar -zcvf $PKG_DIR/"fclones-$VERSION-linux-musl-x86_64.tar.gz" target/x86_64-unknown-linux-musl/release/fclones +tar -zcvf $PKG_DIR/"fclones-$VERSION-linux-musl-i686.tar.gz" target/i686-unknown-linux-musl/release/fclones +zip -j $PKG_DIR/"fclones-$VERSION-windows-x86_64.zip" target/x86_64-pc-windows-gnu/release/fclones.exe diff --git a/package-docker.sh b/packaging/package.sh similarity index 62% rename from package-docker.sh rename to packaging/package.sh index c20d701..66d3369 100755 --- a/package-docker.sh +++ b/packaging/package.sh @@ -5,7 +5,10 @@ # Additionally the pulled in docker container includes an older libc, therefore generated packages # will be compatible with older Linux distributions. -FCLONES_HOME=$(realpath "$(dirname $0)") +FCLONES_HOME=$(realpath "$(dirname $0)/..") +echo $FCLONES_HOME IMAGE="pkolaczk/fclones-builder" -docker build -t $IMAGE "$FCLONES_HOME" -docker run -v "$FCLONES_HOME":/fclones -it $IMAGE /fclones/package.sh +docker run \ + -v "$FCLONES_HOME":/fclones \ + -u $(id -u ${USER}):$(id -g ${USER}) \ + -it $IMAGE /fclones/packaging/package-internal.sh diff --git a/src/reflink.rs b/src/reflink.rs index 5403b63..8336d95 100644 --- a/src/reflink.rs +++ b/src/reflink.rs @@ -60,7 +60,7 @@ pub fn reflink(src: &PathAndMetadata, dest: &PathAndMetadata, log: &dyn Log) -> fn linux_reflink( _target: &PathAndMetadata, _link: &PathAndMetadata, - _log: &StdLog, + _log: &dyn Log, ) -> io::Result<()> { unreachable!() }