[kernel] r19508 - dists/sid/linux/debian/bin
Ben Hutchings
benh at alioth.debian.org
Sun Nov 18 01:30:08 UTC 2012
Author: benh
Date: Sun Nov 18 01:30:08 2012
New Revision: 19508
Log:
Add script to edit changelog for stable updates
Added:
dists/sid/linux/debian/bin/stable-update.sh (contents, props changed)
Added: dists/sid/linux/debian/bin/stable-update.sh
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux/debian/bin/stable-update.sh Sun Nov 18 01:30:08 2012 (r19508)
@@ -0,0 +1,78 @@
+#!/bin/bash -eu
+
+if [ $# -ne 2 ]; then
+ echo >&2 "Usage: $0 REPO VERSION"
+ echo >&2 "REPO is the git repository to generate a changelog from"
+ echo >&2 "VERSION is the stable version (without leading v)"
+ exit 2
+fi
+
+# Get base version, i.e. the Linus stable release that a version is based on
+base_version() {
+ local ver
+ ver="${1%-rc*}"
+ case "$ver" in
+ 2.6.*.* | [3-9].*.* | ??.*.*)
+ ver="${ver%.*}"
+ ;;
+ esac
+ echo "$ver"
+}
+
+add_update() {
+ local base update
+ base="$(base_version "$1")"
+ update="${1#$base.}"
+ if [ "$update" = "$1" ]; then
+ update=0
+ fi
+ update="$((update + $2))"
+ if [ $update = 0 ]; then
+ echo "$base"
+ else
+ echo "$base.$update"
+ fi
+}
+
+# Get next stable update version
+next_update() {
+ add_update "$1" 1
+}
+
+export GIT_DIR="$1/.git"
+
+new_ver="$2"
+cur_pkg_ver="$(dpkg-parsechangelog | sed -n 's/^Version: //p')"
+cur_ver="${cur_pkg_ver%-*}"
+
+if [ "$(base_version "$new_ver")" != "$(base_version "$cur_ver")" ]; then
+ echo >&2 "$new_ver is not on the same stable series as $cur_ver"
+ exit 2
+fi
+
+case "$cur_pkg_ver" in
+ *~experimental*)
+ new_pkg_ver="$new_ver-1~experimental.1"
+ ;;
+ *)
+ new_pkg_ver="$new_ver-1"
+ ;;
+esac
+
+# dch insists on word-wrapping everything, so just add the URLs initially
+dch -v "$new_pkg_ver" --preserve --multimaint-merge -D UNRELEASED \
+ --release-heuristic=changelog "$(
+ echo "New upstream stable update: "
+ while [ "v$cur_ver" != "v$new_ver" ]; do
+ cur_ver="$(next_update "$cur_ver")"
+ echo "http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-$cur_ver"
+ done)"
+
+# Then insert the shortlogs with sed
+while [ "v$cur_ver" != "v$new_ver" ]; do
+ next_ver="$(next_update "$cur_ver")"
+ sed -i '/ChangeLog-'"${next_ver//./\\.}"'/a\
+'"$(git log --reverse --pretty=' - %s\' "v$cur_ver..v$next_ver^")"'
+' debian/changelog
+ cur_ver="$next_ver"
+done
More information about the Kernel-svn-changes
mailing list