aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2017-05-05 16:30:37 +0200
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2017-05-07 14:46:27 +0200
commit9d7a7dc094f56d04610c2917af37cb9c48e99961 (patch)
treecbb782176309fda193b7c9cd85e2fa574777d969
parent491cc7445644441b11565cb5a52a66ce43cf5f41 (diff)
downloadvendor_replicant-release-scripts-9d7a7dc094f56d04610c2917af37cb9c48e99961.tar.gz
vendor_replicant-release-scripts-9d7a7dc094f56d04610c2917af37cb9c48e99961.tar.bz2
vendor_replicant-release-scripts-9d7a7dc094f56d04610c2917af37cb9c48e99961.zip
Replicant 6.0 0001 images release
Besides updating the scripts to account for changes introduced after Android 4.2, the following modifications were made: * Introduce releasevars.sh to store frequently used variables * Remove SDK parts and devices not yet supported by Replicant 6.0 * Add unpackbootimg to release tools * Use my GPG key for signing * Use more functionality from the repo tool to simplify the scripts * Only accept tags for git metadata. * Additionally tag the LineageOS mirror besides our forked repos. Ignore the manifest repo as it's tagged manually. * Add releasebuild.sh script to build all targets and the toolchain * Make sure a bash shell is used * Use repo tool from $PATH * Abort on error Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
-rwxr-xr-xrelease.sh112
-rwxr-xr-xreleasebuild.sh74
-rwxr-xr-xreleasediff.sh17
-rwxr-xr-xreleasetag.sh81
-rwxr-xr-xreleasevars.sh44
5 files changed, 170 insertions, 158 deletions
diff --git a/release.sh b/release.sh
index a711d7f..89b366b 100755
--- a/release.sh
+++ b/release.sh
@@ -1,7 +1,8 @@
-#!/bin/sh
+#!/bin/bash
#
# Copyright (C) 2011 Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
# Copyright (C) 2011-2015 Paul Kocialkowski <contact@paulk.fr>
+# Copyright (C) 2017 Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,36 +18,24 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+set -e
+
# Variables
SCRIPT=$0
REPLICANT_DIR=$1
RELEASE_DIR=$2
RELEASE_TYPE=$3
+. releasevars.sh
+
ARGS_COUNT=2
-REPO="../tools/repo"
RELEASE_TOOLS_DIR="$REPLICANT_DIR/out/host/linux-x86/bin"
-RELEASE_TOOLS="adb fastboot heimdall mkbootimg"
-RELEASE_SDK_DIR="$REPLICANT_DIR/out/host/linux-x86/sdk"
-RELEASE_SDK="replicant-sdk_linux-x86.zip"
-RELEASE_IMAGES_DIR="$REPLICANT_DIR/out/target/product"
-RELEASE_IMAGES="recovery.img replicant-4.2-crespo.zip replicant-4.2-galaxysmtd.zip replicant-4.2-i9100.zip replicant-4.2-n7000.zip replicant-4.2-maguro.zip replicant-4.2-p3100.zip replicant-4.2-p3110.zip replicant-4.2-p5100.zip replicant-4.2-p5110.zip replicant-4.2-i9300.zip replicant-4.2-n7100.zip replicant-4.2-gta04.zip bootable.zip replicant_gta04_install.sh"
-RELEASE_DEVICES="crespo galaxysmtd i9100 n7000 maguro p3100 p3110 p5100 p5110 i9300 n7100 gta04"
+RELEASE_TOOLS="adb fastboot heimdall mkbootimg unpackbootimg"
+RELEASE_IMAGES_DIR="$REPLICANT_DIR/out/dist"
RELEASE_SCRIPTS_DIR=$( dirname "$SCRIPT" )
-RELEASE_SCRIPTS="release.sh releasediff.sh releasetag.sh"
+RELEASE_SCRIPTS="release.sh releasediff.sh releasetag.sh releasevars.sh releasebuild.sh"
RELEASE_SECURITY_DIR="$REPLICANT_DIR/vendor/replicant-security"
-RELEASE_SECURITY="media.x509.pem platform.x509.pem shared.x509.pem system.x509.pem"
-RELEASE_KEY="4A80EB23"
-
-METADATA="$RELEASE_DIR/metadata"
-SECURITY="$RELEASE_DIR/security"
-SCRIPTS="$RELEASE_DIR/scripts"
-TOOLS="$RELEASE_DIR/tools"
-IMAGES="$RELEASE_DIR/images"
-SDK="$RELEASE_DIR/sdk"
-
-VERSION="4.2"
-RELEASE="0004"
+RELEASE_SECURITY="media.x509.pem platform.x509.pem releasekey.x509.pem shared.x509.pem"
release_signatures_tools () {
if ! [ -d "$TOOLS" ]
@@ -64,22 +53,6 @@ release_signatures_tools () {
cd "$dir"
}
-release_signatures_sdk () {
- if ! [ -d "$SDK" ]
- then
- return
- fi
-
- dir=$( pwd )
-
- cd "$SDK"
- for sdk in $RELEASE_SDK
- do
- gpg --default-key "$RELEASE_KEY" --armor --output "$sdk.asc" --detach-sign "$sdk"
- done
- cd "$dir"
-}
-
release_signatures_images () {
if ! [ -d "$IMAGES" ]
then
@@ -89,11 +62,6 @@ release_signatures_images () {
cd "$IMAGES"
for device in $RELEASE_DEVICES
do
- if ! [ -d "$IMAGES/$device" ]
- then
- continue
- fi
-
for image in $RELEASE_IMAGES
do
if [ -f "$IMAGES/$device/$image" ]
@@ -108,7 +76,6 @@ release_signatures () {
echo "Releasing signatures"
release_signatures_tools
- release_signatures_sdk
release_signatures_images
mkdir -p "$SECURITY"
@@ -124,7 +91,6 @@ release_signatures () {
release_images () {
echo "Releasing images"
- mkdir -p "$IMAGES"
for device in $RELEASE_DEVICES
do
@@ -147,22 +113,6 @@ release_images () {
done
}
-release_sdk () {
- echo "Releasing sdk"
- mkdir -p "$SDK"
-
- for sdk in $RELEASE_SDK
- do
- cp "$RELEASE_SDK_DIR/$sdk" "$SDK/"
- done
-
- dir=$( pwd )
-
- cd "$SDK"
- sha256sum * > "sdk.sha256"
- cd "$dir"
-}
-
release_tools () {
echo "Releasing tools"
mkdir -p "$TOOLS"
@@ -206,7 +156,7 @@ release_security () {
}
release_metadata_about () {
- cat "$REPLICANT_DIR/vendor/replicant/README.mkdn" | awk "/^Replicant$/{replicant=1} /^CyanogenMod$/{replicant=0} replicant" > "$METADATA/readme.txt"
+ cat "$REPLICANT_DIR/vendor/replicant/README.mkdn" | awk "/^Replicant$/{replicant=1} /^LineageOS$/{replicant=0} replicant" > "$METADATA/readme.txt"
}
release_metadata_date () {
@@ -214,7 +164,9 @@ release_metadata_date () {
}
release_metadata_changelog () {
- cat "$REPLICANT_DIR/vendor/replicant/CHANGELOG.mkdn" | awk "/### .*/{n++} n==1, /### .*/ {n++} n==2" > "$METADATA/changelog.txt"
+ cat "$REPLICANT_DIR/vendor/replicant/CHANGELOG.mkdn" \
+ | awk "/### .*/{n++} n==1, /### .*/ {n++} n==2" \
+ | sed '/===============/q' | tac | sed -e '/===============/,+1d' | tac > "$METADATA/changelog.txt"
}
release_metadata_release () {
@@ -237,36 +189,29 @@ release_metadata_git () {
do
cd $git_repo
echo "manifest"
- git show --format=oneline -s "replicant-$VERSION-$RELEASE" 2>/dev/null || git show --format=oneline -s
+ git show --format=oneline -s "replicant-$VERSION-$RELEASE" 2>/dev/null
echo ""
cd "$REPLICANT_DIR"
-
+
done > "$METADATA/git-tags.txt"
- $REPO list | while read git_repo
+ $REPO list -p | while read git_repo
do
- cd $git_repo
- echo "$git_repo" | sed "s/ : .*$/ /g"
- git show --format=oneline -s "replicant-$VERSION-$RELEASE" 2>/dev/null || git show --format=oneline -s
- echo ""
- cd "$REPLICANT_DIR"
+ if ! [ "$git_repo" = "manifest" ]
+ then
+ cd $git_repo
+ echo "$git_repo"
+ git show --format=oneline -s $(git describe)
+ echo ""
+ cd "$REPLICANT_DIR"
+ fi
done >> "$METADATA/git-tags.txt"
- $REPO manifest -r > "$METADATA/manifest.xml"
+ $REPO manifest -r -o "$METADATA/manifest.xml"
cd "$dir"
}
-release_metadata_sdk() {
- echo "Releasing metadata"
- mkdir -p "$METADATA"
- release_metadata_git
- release_metadata_prebuilt
- release_metadata_release
- release_metadata_date
- release_metadata_about
-}
-
release_metadata () {
echo "Releasing metadata"
mkdir -p "$METADATA"
@@ -293,11 +238,6 @@ case "$RELEASE_TYPE" in
"signatures")
release_signatures
;;
- "sdk")
- release_metadata_sdk
- release_scripts
- release_sdk
- ;;
*)
release_metadata
release_security
diff --git a/releasebuild.sh b/releasebuild.sh
new file mode 100755
index 0000000..5a22f8a
--- /dev/null
+++ b/releasebuild.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+#
+# Copyright (C) 2017 Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+set -e
+
+SCRIPT=$0
+REPLICANT_DIR=$1
+
+. releasevars.sh
+
+ARGS_COUNT=1
+parallel_tasks=$(echo "$(grep 'processor' /proc/cpuinfo | wc -l ) + 1" | bc)
+
+build_bacon () {
+ device=$1
+
+ dir=$( pwd )
+ cd "$REPLICANT_DIR"
+
+ . build/envsetup.sh
+ lunch "replicant_$device-userdebug"
+
+ make -j$parallel_tasks bacon
+
+ ./vendor/replicant/sign-build $device
+
+ cd "$dir"
+}
+
+build_all () {
+ for device in $RELEASE_DEVICES
+ do
+ build_bacon $device
+ done
+}
+
+prepare () {
+ dir=$( pwd )
+ cd "$REPLICANT_DIR"
+
+ make clobber
+ ./vendor/replicant/build-toolchain
+
+ cd "$dir"
+}
+
+print_help () {
+ echo "$SCRIPT: [REPLICANT_DIR]"
+}
+
+# Check for the correct number of args
+if [ "$#" -lt "$ARGS_COUNT" ]
+then
+ print_help
+ exit 1
+fi
+
+prepare
+build_all
diff --git a/releasediff.sh b/releasediff.sh
index 68ba5cb..98a53ac 100755
--- a/releasediff.sh
+++ b/releasediff.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
#
# Copyright (C) 2013-2015 Paul Kocialkowski <contact@paulk.fr>
#
@@ -21,20 +21,13 @@ SCRIPT=$0
REPLICANT_DIR=$1
RELEASE_DIR=$2
+. releasevars.sh
+
ARGS_COUNT=2
-COLOR=1
-REPO="../tools/repo"
-METADATA="$RELEASE_DIR/metadata"
regexp=".*path=\"\([^\"]*\)\".*revision=\"\([^\"]*\)\".*"
-if [ "$COLOR" = "1" ]
-then
- color_start="\033[36m"
- color_end="\033[0m"
-else
- color_start=""
- color_end=""
-fi
+
+set_color
diff_repos () {
paths=$( cat "$METADATA/manifest.xml" | grep "path=" | sed "s/$regexp/\1/g" )
diff --git a/releasetag.sh b/releasetag.sh
index 21fdad4..90e2c27 100755
--- a/releasetag.sh
+++ b/releasetag.sh
@@ -1,6 +1,7 @@
-#!/bin/sh
+#!/bin/bash
#
# Copyright (C) 2015 Paul Kocialkowski <contact@paulk.fr>
+# Copyright (C) 2017 Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,75 +17,41 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+set -e
+
# Variables
SCRIPT=$0
REPLICANT_DIR=$1
-MANIFEST=$2
+
+. releasevars.sh
ARGS_COUNT=1
-COLOR=1
-TMP="/tmp"
-REPO="../tools/repo"
-RELEASE_KEY="4A80EB23"
-REMOTE="replicant"
PUSH_REMOTE="git.replicant.us"
-VERSION="4.2"
-RELEASE="0004"
-
-if [ "$COLOR" = "1" ]
-then
- color_start="\033[36m"
- color_end="\033[0m"
-else
- color_start=""
- color_end=""
-fi
+set_color
-manifest () {
+tag_repos () {
dir=$( pwd )
cd "$REPLICANT_DIR"
- $REPO manifest -r > $MANIFEST
-
- cd "$dir"
-}
-
-tag_repos () {
- list=""
-
- default=$( cat $MANIFEST | grep default | grep "remote=\"$REMOTE\"" )
- if [ "$default" != "" ]
- then
- list=$( cat $MANIFEST | grep project | grep -v "remote=\"" )"\n"
- fi
+ ALL_MIRROR_REPOS=$( repo forall -c ' echo "$REPO_REMOTE$REPO_PROJECT" | grep lineage-mirror \
+ | cut -c15-' )
+ ALL_REPLICANT_REPOS=$( repo forall -c ' echo "$REPO_REMOTE$REPO_PROJECT" | grep replicant \
+ | cut -c10- | grep -v "manifest.git" || true ' )
+ TAGGING_CMD="echo \"Tagging $color_start \$REPO_PROJECT $color_end\" && \
+ git tag -u $RELEASE_KEY -m \"Replicant $VERSION $RELEASE images release\" \
+ \"replicant-$VERSION-$RELEASE\""
+ PUSHING_CMD="echo \"Pushing $color_start \$REPO_PROJECT $color_end\" && \
+ git push \"git@$PUSH_REMOTE:\$REPO_PROJECT\" \"replicant-$VERSION-$RELEASE\""
- list="$list"$( cat $MANIFEST | grep project | grep "remote=\"$REMOTE\"" )
+ repo forall $ALL_MIRROR_REPOS -c "$TAGGING_CMD && $PUSHING_CMD"
+ repo forall $ALL_REPLICANT_REPOS -c "$TAGGING_CMD && $PUSHING_CMD"
- echo "$list" | while read repo
- do
- path=$( echo "$repo" | sed "s/.*path=\"\([^\"]*\)\".*/\1/g" )
- revision=$( echo "$repo" | sed "s/.*revision=\"\([^\"]*\)\".*/\1/g" )
-
- dir=$( pwd )
- cd "$REPLICANT_DIR/$path"
-
- echo "Tagging ""$color_start""$path""$color_end"" with $revision"
-
- git tag -s -u $RELEASE_KEY -m "Replicant $VERSION $RELEASE images release" -a "replicant-$VERSION-$RELEASE" $revision
-
- echo "Pusing ""$color_start""$path""$color_end"
-
- path=$( echo $path | tr '[:upper:]' '[:lower:]' )
-
- git push "git@$PUSH_REMOTE:replicant/$path.git" "replicant-$VERSION-$RELEASE"
-
- cd "$dir"
- done
+ cd "$dir"
}
print_help () {
- echo "$SCRIPT: [REPLICANT_DIR] (MANIFEST)"
+ echo "$SCRIPT: [REPLICANT_DIR]"
}
# Check for the correct number of args
@@ -94,10 +61,4 @@ then
exit 1
fi
-if [ "$MANIFEST" = "" ]
-then
- MANIFEST="$TMP/manifest.xml"
- manifest
-fi
-
tag_repos
diff --git a/releasevars.sh b/releasevars.sh
new file mode 100755
index 0000000..21c434c
--- /dev/null
+++ b/releasevars.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+#
+# Copyright (C) 2017 Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+VERSION="6.0"
+RELEASE="0001"
+
+RELEASE_IMAGES="recovery-i9100.img recovery-i9300.img recovery-n7100.img recovery-i9305.img replicant-6.0-i9100.zip replicant-6.0-i9300.zip replicant-6.0-n7100.zip replicant-6.0-i9305.zip"
+RELEASE_DEVICES="i9100 i9300 n7100 i9305"
+
+RELEASE_KEY="5816A24C10757FC4"
+REPO="repo"
+COLOR=1
+
+METADATA="$RELEASE_DIR/metadata"
+SECURITY="$RELEASE_DIR/security"
+SCRIPTS="$RELEASE_DIR/scripts"
+TOOLS="$RELEASE_DIR/tools"
+IMAGES="$RELEASE_DIR/images"
+
+set_color () {
+ if [ "$COLOR" = "1" ]
+ then
+ color_start="\033[36m"
+ color_end="\033[0m"
+ else
+ color_start=""
+ color_end=""
+ fi
+}