1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#!/bin/bash
# bash is needed for the timestamp feature in printf
if [ $# -ne 1 ]; then
echo "Usage: $0 [branch-name]"
exit 1
fi
set -e
set -x
version=`echo $1 | sed 's,^tools_r\([0-9][0-9.]*\),\1,'`
tardir=android-platform-frameworks-base_${version}
rsyncdir=../../android-platform-frameworks-base.upstream
cd $rsyncdir
git checkout $1
# standardize timezone to reduce build differences
export TZ=UTC
# get the timestamp from the current git commit
TIMESTAMP=`printf '%(%Y-%m-%d %H:%M:%S)T' $(git log -n1 --format=format:%at)`
cd ../android-platform-frameworks-base/debian
test -d $tardir || mkdir $tardir
rsync -axv --delete --delete-excluded \
--cvs-exclude --exclude 'tools/preload/[0-9]*.compiled' \
$rsyncdir/include \
$rsyncdir/libs \
$rsyncdir/tools \
$tardir/
# do some tricks to make the process deterministic and reproducible
rm -f $tardir.orig.tar.gz
find $tardir -type f -print0 -o -type l -print0 \
| sort --zero-terminated \
| faketime -f "$TIMESTAMP" tar -z --no-recursion --null --files-from - \
--owner=1000 --group=1000 --numeric-owner --format=gnu \
--create --file ../../$tardir.orig.tar.gz
touch --date="$TIMESTAMP" ../../$tardir.orig.tar.gz
|