[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