2020-11-11 17:51:56 +03:00
#!/usr/bin/env bash
2018-09-11 17:11:27 +03:00
set -xeuo pipefail
2014-10-03 18:06:49 +04:00
srcdir = $1
shift
PKG_VER = $1
shift
GITREV = $1
shift
TARFILE = ${ PKG_VER } .tar
2018-06-06 00:49:48 +03:00
TARFILE_TMP = $( pwd ) /${ TARFILE } .tmp
2014-10-03 18:06:49 +04:00
test -n " ${ srcdir } "
test -n " ${ PKG_VER } "
test -n " ${ GITREV } "
TOP = $( git rev-parse --show-toplevel)
echo " Archiving ${ PKG_VER } at ${ GITREV } to ${ TARFILE_TMP } "
( cd ${ TOP } ; git archive --format= tar --prefix= ${ PKG_VER } / ${ GITREV } ) > ${ TARFILE_TMP }
ls -al ${ TARFILE_TMP }
( cd ${ TOP } ; git submodule status) | while read line; do
rev = $( echo ${ line } | cut -f 1 -d ' ' ) ; path = $( echo ${ line } | cut -f 2 -d ' ' )
echo " Archiving ${ path } at ${ rev } "
( cd ${ srcdir } /${ path } ; git archive --format= tar --prefix= ${ PKG_VER } /${ path } / ${ rev } ) > submodule.tar
tar -A -f ${ TARFILE_TMP } submodule.tar
rm submodule.tar
done
2018-06-06 00:49:48 +03:00
tmpd = ${ TOP } /.dist-tmp
trap cleanup EXIT
function cleanup ( ) {
if test -f ${ tmpd } /.tmp; then
rm " ${ tmpd } " -rf
fi
}
# Run it now
cleanup
mkdir ${ tmpd } && touch ${ tmpd } /.tmp
( cd ${ tmpd }
mkdir -p .cargo vendor
2020-12-08 21:29:05 +03:00
( cd ${ TOP } && cargo vendor ${ tmpd } /vendor)
cp ${ TOP } /Cargo.lock .
cp ${ TOP } /cargo-vendor-config .cargo/config
2018-10-11 21:25:31 +03:00
# Filter out bundled libcurl and systemd; we always want the pkgconfig ones
for crate_subdir in curl-sys/curl \
libz-sys/src/zlib \
systemd/libsystemd-sys/systemd \
libsystemd-sys/systemd; do
rm -rf vendor/$crate_subdir
2019-05-08 17:15:48 +03:00
python3 -c '
2018-10-11 21:25:31 +03:00
import json, sys
crate, subdir = sys.argv[ 1] .split( "/" , 1)
checksum_file = ( "vendor/%s/.cargo-checksum.json" % crate)
j = json.load( open( checksum_file) )
j[ "files" ] = { f:c for f, c in j[ "files" ] .items( ) if not f.startswith( subdir) }
open( checksum_file, "w" ) .write( json.dumps( j) ) ' $crate_subdir
done
2020-12-11 18:09:57 +03:00
tar --transform= " s,^, ${ PKG_VER } /, " -rf ${ TARFILE_TMP } * .cargo/
2018-06-06 00:49:48 +03:00
)
2018-09-22 01:02:18 +03:00
2020-12-31 19:55:19 +03:00
# And finally, vendor generated code. See install-extra-builddeps.sh
# and Makefile-rpm-ostree.am for more.
( cd ${ srcdir }
cp rpmostree-rust{ ,-prebuilt} .h
cp rpmostree-cxxrs{ ,-prebuilt} .h
cp rpmostree-cxxrs{ ,-prebuilt} .cxx
2021-01-27 04:35:37 +03:00
cp rust/cxx.h rust/cxx-prebuilt.h
tar --transform " s,^, ${ PKG_VER } /, " -rf ${ TARFILE_TMP } rpmostree-{ rust,cxxrs} -prebuilt.h rpmostree-cxxrs-prebuilt.cxx rust/cxx-prebuilt.h)
2018-09-22 01:02:18 +03:00
2014-10-03 18:06:49 +04:00
mv ${ TARFILE_TMP } ${ TARFILE }