diff options
Diffstat (limited to 'debian/make_orig_multi.sh')
-rwxr-xr-x | debian/make_orig_multi.sh | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/debian/make_orig_multi.sh b/debian/make_orig_multi.sh new file mode 100755 index 0000000..8564744 --- /dev/null +++ b/debian/make_orig_multi.sh @@ -0,0 +1,71 @@ +#!/bin/sh +set -e +echo "This needs the following packages:" +echo " python3-toml devscripts cargo cargo-lock" +echo "" + +TMPDIR=`mktemp -d` +echo "Using '${TMPDIR}'..." +cat > "${TMPDIR}/Makefile" <<'EOF' +include /usr/share/dpkg/pkg-info.mk +all: + @echo $(DEB_VERSION_UPSTREAM) +EOF +SRCDIR="$PWD" + +if [ -z "$1" ] + then + USCAN_ARGS=""; + CARGO_VER=$(make -f "${TMPDIR}/Makefile"); + else + USCAN_ARGS="--download-version $1"; + CARGO_VER="$1"; +fi; + +BOOTSTRAP_PY=$(find "${PWD}" -name bootstrap.py -type f) +VENDOR_SUS_WHITELIST=$(find "${PWD}/debian" -name vendor-tarball-unsuspicious.txt -type f) + +# Download cargo tarball +uscan --rename ${USCAN_ARGS} --force-download --destdir "${TMPDIR}/" + +# Extract cargo source +cd "${TMPDIR}" +mkdir cargo +tar -xaf "${TMPDIR}/cargo_${CARGO_VER}.orig.tar.gz" -C cargo --strip-components=1 +cd cargo + +# Download build-deps via cargo-vendor +export GIT_AUTHOR_NAME="deb-build" +export GIT_AUTHOR_EMAIL="<>" +export GIT_COMMITTER_NAME="${GIT_AUTHOR_NAME}" +export GIT_COMMITTER_EMAIL="${GIT_AUTHOR_EMAIL}" + +SRCDIR="$SRCDIR" \ +CARGO_PRE_VENDOR="$SRCDIR/debian/make_orig_multi-pre-vendor.sh" \ +"$SRCDIR/debian/scripts/debian-cargo-vendor" + +cp -R vendor vendor-scan + +( cd vendor-scan +"$SRCDIR/debian/scripts/audit-vendor-source" \ + "$VENDOR_SUS_WHITELIST" \ + "the 'excludes' key of the relevant debcargo.toml in debcargo-conf.git" \ + -m text/x-script.python +) + +rm -rf vendor-scan + +# Pack it up, reproducibly +tar --sort=name \ + --use-compress-program='gzip -9n' \ + --mtime="./Cargo.lock" \ + --owner=root --group=root \ + -cf "${TMPDIR}/cargo_${CARGO_VER}.orig-vendor.tar.gz" vendor + +# All is good, we are done! +echo "Your files are available at:" +echo "${TMPDIR}/cargo_${CARGO_VER}.orig.tar.gz \\" +echo "${TMPDIR}/cargo_${CARGO_VER}.orig-vendor.tar.gz" +echo "" +echo "Unpacked cargo sources are available under:" +echo "${TMPDIR}/cargo/" |