996f0e6a0f
The tarball is almost 100MiB and it unpacks to roughly 0.75GiB, because it contains tons of generated html docs and other stuff that is not needed for building. Unpacking it on Cygwin takes several minutes (done in parallel, but still) and even on Linux the unpacking takes longer than the actual compilation. Change-Id: Ied9f3059530f4e9a856170ec3fcc304631ff8e0a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89825 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
60 lines
1.4 KiB
Bash
Executable file
60 lines
1.4 KiB
Bash
Executable file
#! /bin/sh
|
|
|
|
# Repack the boost tarball as xz (much faster to unpack) and remove
|
|
# a lot of needless files such as generated html docs.
|
|
|
|
tarball="$1"
|
|
|
|
if test -z "$tarball" -o ! -f "$tarball"; then
|
|
echo "Usage: $0 <tarball>"
|
|
exit 1
|
|
fi
|
|
|
|
tmpdir=$(mktemp -d)
|
|
|
|
if ! test -d "$tmpdir"; then
|
|
echo mktemp failed
|
|
exit 1
|
|
fi
|
|
|
|
echo Unpacking "$tarball" ...
|
|
tar x -C "$tmpdir" -f "$tarball"
|
|
if test $? -ne 0; then
|
|
echo tar x failed
|
|
rm -rf "$tmpdir"
|
|
exit 1
|
|
fi
|
|
|
|
echo Removing unnecessary files ...
|
|
find "$tmpdir" \( -name doc -o -name test -o -name example \) -type d -prune -print0 | xargs -0 rm -r
|
|
if test $? -ne 0; then
|
|
echo file removal failed
|
|
rm -rf "$tmpdir"
|
|
exit 1
|
|
fi
|
|
|
|
name="$(basename "$tarball" | sed 's/\.tar.*$//').tar.xz"
|
|
dir=$(ls "$tmpdir")
|
|
|
|
echo Creating "$name" ...
|
|
# To make the tarball reproducible, use a timestamp of a file inside the tarball (they all seem to have the same mtime).
|
|
if ! test -f "$tmpdir/$dir/README.md"; then
|
|
echo timestamp retrieval failed, check the script
|
|
rm -rf "$tmpdir"
|
|
exit 1
|
|
fi
|
|
# Many of the options are to make the tarball reproducible.
|
|
LC_ALL=C tar c -C "$tmpdir" --xz -f "$(pwd)/$name" --format=gnu --sort=name --owner=0 --group=0 --mode=go=rX,u=rwX --mtime "$tmpdir/$dir/README.md" "$dir"
|
|
if test $? -ne 0; then
|
|
echo tar c failed
|
|
rm -rf "$tmpdir"
|
|
exit 1
|
|
fi
|
|
|
|
echo Cleaning up ...
|
|
rm -rf "$tmpdir"
|
|
|
|
sha256sum "$name"
|
|
|
|
echo Done.
|
|
exit 0
|