summaryrefslogtreecommitdiff
path: root/dev-util/android-tools/files/make-tarballs.sh
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-01-27 18:07:28 +0000
committerV3n3RiX <venerix@redcorelinux.org>2018-01-27 18:07:28 +0000
commit67f76a858f1ac826bd8a550d756d9ec6e340ed4f (patch)
tree45f4ada6be05bc180a14e017c9d5c6b58a0eec6e /dev-util/android-tools/files/make-tarballs.sh
parent38b7258d086dd5e263c3bbe3880c8c956676bc71 (diff)
gentoo resync : 27.01.2018
Diffstat (limited to 'dev-util/android-tools/files/make-tarballs.sh')
-rwxr-xr-xdev-util/android-tools/files/make-tarballs.sh128
1 files changed, 128 insertions, 0 deletions
diff --git a/dev-util/android-tools/files/make-tarballs.sh b/dev-util/android-tools/files/make-tarballs.sh
new file mode 100755
index 000000000000..5a0a775c1290
--- /dev/null
+++ b/dev-util/android-tools/files/make-tarballs.sh
@@ -0,0 +1,128 @@
+#!/bin/bash
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# Create the various tarballs we need. GoB does not provide stable archives (unlike github),
+# and some repos are uselessly fat, so we have to create things by hand. Fun times.
+
+set -e
+
+die() {
+ echo "error: $*" >&2
+ exit 1
+}
+
+fetch_boringssl() {
+ local ver=$1 tag=$2
+ local content hash
+
+ echo "checking boringssl in ${tag}"
+ content=$(wget -nv "https://android.googlesource.com/platform/external/boringssl/+/${tag}/BORINGSSL_REVISION?format=TEXT" -O -)
+ hash=$(echo "${content}" | base64 -d)
+ echo "using boringssl ${hash}"
+
+ local tar="${DISTDIR}/boringssl-${hash}.tar.gz"
+ if [[ ! -e ${tar} ]] ; then
+ # We use github as it provides stable tarballs. GoB does not (includes timestamps).
+ # https://boringssl.googlesource.com/boringssl/+archive/${hash}.tar.gz
+ wget -c "https://github.com/google/boringssl/archive/${hash}.tar.gz" -O "${tar}"
+ fi
+
+ du -h "${tar}"
+}
+
+# The extras repo has ballooned to ~200MB, so we have to strip the large useless
+# files and random binaries.
+fetch_extras() {
+ local ver=$1 tag=$2
+ local tar="${DISTDIR}/android-tools-${ver}-extras.tar.xz"
+
+ if [[ ! -e ${tar} ]] ; then
+ local prune=(
+ ioshark
+ memory_replay
+ perfprofd
+ simpleperf
+ )
+ local dir="${tag}-extras"
+ rm -rf "${dir}"
+ mkdir "${dir}"
+ cd "${dir}"
+
+ wget "https://android.googlesource.com/platform/system/extras/+archive/${tag}.tar.gz" -O extras.tar.gz
+ tar xf extras.tar.gz
+ rm -rf "${prune[@]}" extras.tar.gz
+
+ cd ..
+ tar cf - "${dir}" | xz -9 > "${dir}.tar.xz"
+ rm -rf "${dir}"
+
+ mv "${dir}.tar.xz" "${tar}"
+ fi
+
+ du -h "${tar}"
+}
+
+# Since the GoB archive is unstable, we might as well rewrite it into xz to shrink.
+fetch_selinux() {
+ local ver=$1 tag=$2
+ local tar="${DISTDIR}/android-tools-${ver}-selinux.tar.xz"
+
+ if [[ ! -e ${tar} ]] ; then
+ wget "https://android.googlesource.com/platform/external/selinux/+archive/${tag}.tar.gz" -O - | zcat | xz > "${tar}"
+ fi
+
+ du -h "${tar}"
+}
+
+# Since the GoB archive is unstable, we might as well rewrite it into xz to shrink.
+fetch_f2fs() {
+ local ver=$1 tag=$2
+ local tar="${DISTDIR}/android-tools-${ver}-f2fs-tools.tar.xz"
+
+ if [[ ! -e ${tar} ]] ; then
+ wget "https://android.googlesource.com/platform/external/f2fs-tools/+archive/${tag}.tar.gz" -O - | zcat | xz > "${tar}"
+ fi
+
+ du -h "${tar}"
+}
+
+usage() {
+ local status=$1
+
+ [[ ${status} -eq 1 ]] && exec 1>&2
+
+ cat <<-EOF
+ Usage: $0 <android version>
+
+ To find the next available version, consult:
+ https://git.archlinux.org/svntogit/community.git/log/trunk?h=packages/android-tools
+
+ They have some helper scripts for building the files directly.
+
+ Example:
+ $0 android-8.1.0_r1
+ EOF
+
+ exit ${status}
+}
+
+main() {
+ [[ $# -ne 1 ]] && usage 1
+ [[ $1 == "-h" || $1 == "--help" ]] && usage 0
+
+ if [[ -z ${DISTDIR} ]] ; then
+ eval $(portageq -v envvar DISTDIR)
+ fi
+ if [[ -z ${DISTDIR} ]] ; then
+ die "Please set \$DISTDIR first"
+ fi
+
+ local ver="${1#android-}"
+ local tag="android-${ver}"
+ fetch_boringssl "${ver}" "${tag}"
+ fetch_extras "${ver}" "${tag}"
+ fetch_selinux "${ver}" "${tag}"
+ fetch_f2fs "${ver}" "${tag}"
+}
+main "$@"