[xenial linux-meta-raspi2 3/3] UBUNTU: add update-version to simplify updates

Thadeu Lima de Souza Cascardo cascardo at canonical.com
Wed Feb 1 12:58:18 UTC 2017


From: Andy Whitcroft <apw at canonical.com>

BugLink: http://bugs.launchpad.net/bugs/1601954
Signed-off-by: Andy Whitcroft <apw at canonical.com>
Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
[cascardo: changed tagprefix to Ubuntu-raspi2-]
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo at canonical.com>
---
 update-version | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)
 create mode 100755 update-version

diff --git a/update-version b/update-version
new file mode 100755
index 0000000..b38bdef
--- /dev/null
+++ b/update-version
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+tag_prefix="Ubuntu-raspi2-"
+
+if [ "$#" -ne 1 ]; then
+	echo "Usage: $0 <linux-source-directory>" 1>&2
+	exit 1
+fi
+master_dir="$1"
+
+# Work out the master kernel version.
+if [ -f "$master_dir/debian/debian.env" ]; then
+	branch=`sed -ne 's/DEBIAN=//p' <"$master_dir/debian/debian.env"`
+	changelog="-l$branch/changelog"
+else
+	changelog=""
+fi
+master_version=`(cd "$master_dir" && LC_ALL=C dpkg-parsechangelog -S Version $changelog)`
+
+# Work out our current version taking into account closed sections.
+here_series=$( LC_ALL=C dpkg-parsechangelog -S Distribution )
+if [ "$here_series" = "UNRELEASED" ]; then
+	here_version=$( LC_ALL=C dpkg-parsechangelog -o 1 -S Version )
+	here_series=$( LC_ALL=C dpkg-parsechangelog -c 1 -S Distribution )
+else
+	here_version=$( LC_ALL=C dpkg-parsechangelog -S Version )
+fi
+
+# Ensure we have the appropriate tag.
+here_tagversion=$( echo "$tag_prefix$here_version" | sed -e 's/~/_/g' )
+count=$( git for-each-ref "refs/tags/$here_tagversion" | wc -l )
+if [ "$count" != 1 ]; then
+	echo "$0: $here_tagversion: tag not found" 1>&2
+	exit 1
+fi
+
+# We need to ensure the ABI number matches our master source.
+# extract both for comparison.
+here_abi=${here_version%.*}
+master_abi=$(echo ${master_version%.*} | sed -e 's/-/./g')
+master_abi_human=${master_version%.*}
+
+# Extract the upload number from the _previous_ upload and increment it.
+here_upload=${here_version##*.}
+here_upload=$(( $here_upload + 1 ))
+here_newversion="$master_abi.$here_upload"
+
+#echo "here_version<$here_version> here_abi<$here_abi> here_newversion<$here_newversion>"
+#echo "master_version<$master_version> master_abi<$master_abi>"
+
+# First insert any primary changes.
+marker="__CHANGELOG_FRAGMENT_MARKER__"
+dch --newversion "$here_newversion" "$marker"
+
+# Prepare the the blank changelog.
+tmp="/tmp/$$.msg"
+
+# If the parent represents an ABI bump include that.
+if dpkg --compare-versions "$here_abi" lt "$master_abi"; then
+	echo "Updated to ABI: $master_abi"
+	[ -f "$tmp" ] && echo "" >>"$tmp"
+	echo "  * Bump ABI $master_abi_human" >>"$tmp"
+fi
+
+# Format any existing commits.
+count=$( git log --oneline "$here_tagversion".. | wc -l )
+if [ "$count" != 0 ]; then
+	[ -f "$tmp" ] && echo "" >>"$tmp"
+	git log "$here_tagversion".. | "debian/scripts/misc/git-ubuntu-log" >>"$tmp"
+fi
+
+# Insert official changelog fragment.
+sed -i -e '/^  \* '"$marker"'/{
+r '"$tmp"'
+d
+}' debian/changelog
+rm -f "$tmp"
+
+# Close this changelog entry.
+dch --distribution "$here_series" --release ''
+
+# Emit final closing commands.
+echo "git commit -s -m 'UBUNTU: $tag_prefix$here_newversion' debian/changelog"
+here_tagversion=$( echo "$tag_prefix$here_newversion" | sed -e 's/~/_/g' )
+echo "git tag -s -m '$tag_prefix$here_newversion' '$here_tagversion'"
-- 
2.9.3





More information about the kernel-team mailing list