[PATCH][kteam-tools] git-build-kernel: fix series selection for UNRELEASED custom kernels

Kamal Mostafa kamal at canonical.com
Mon May 8 20:36:27 UTC 2017


G-b-k determines the target series and build chroot by examining the
topmost changelog entry -- but if that is in the "UNRELEASED" state,
it falls back to examining the git repo itself (e.g. xenial.git).

This scheme is insufficient for the custom kernels that we've recently
moved to arbitrary repo.git names e.g. linux-something.git -- they can't
figure out their target series when they are the "UNRELEASED" state.

Now, g-b-k will also examine the second changelog entry, if the first is
in the "UNRELEASED" state.

Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
 git-build-kernel/git-build-kernel | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/git-build-kernel/git-build-kernel b/git-build-kernel/git-build-kernel
index c0481d4..781c41b 100755
--- a/git-build-kernel/git-build-kernel
+++ b/git-build-kernel/git-build-kernel
@@ -76,7 +76,12 @@ eval `git show $GITBRANCH:debian/debian.env | grep DEBIAN=`
 ### debian.master/changelog, and use it as the basis of the chroot.
 ### If it isn't useful, try to use the git repo directory name.
 chg="`git show $GITBRANCH:$DEBIAN/changelog | head -1`"
-DISTRO=`echo "$chg" | sed -n -e '1s/^.* \(.*\);.*$/\1/p'`
+
+DISTRO=$(
+    git show :$DEBIAN/changelog | grep '^[a-z]' | head -2 | sed -n -e 's/^.* \(.*\);.*$/\1/p'  | while read DISTRO
+    do [ "$DISTRO" != "UNRELEASED" ] && { echo $DISTRO; break; }
+    done
+    )
 CHROOT="$DISTRO"
 CHROOT="${CHROOT%-proposed}"
 if [ "$CHROOT" = "UNRELEASED" -o -z "$CHROOT" ]
-- 
2.7.4





More information about the kernel-team mailing list