[PATCH 1/2] UBUNTU: expose the kernel EXTRAVERSION in dmesg and /proc/version_signature

Andy Whitcroft apw at canonical.com
Mon Mar 15 10:48:27 UTC 2010

Our versioning has always overridden the kernel EXTRAVERSION such that
where we are based on an -rcN release candidate or have stable updates
applied that information was lost.  We now also have the issue that we
have a major drm backport in the kernel which will take stable updates
from a different source on a different release schedule and it is hard
to know which version is in the kernel.

This patch adds the kernel EXTRAVERSION to /proc/version_signature and
though that also to the kernel version banner.  This allows us to know
the exact original kernel version we are based on.  This also allows us to
augment the version information by adding additional versions to the
EXTRAVERSION.  For example the following EXTRAVERSION:

    EXTRAVERSION = .9+drm33.0

Generates the following version strings:

    $ cat /proc/version_signature
    Ubuntu 2.6.32-16.26-generic
    $ dmesg | grep Linux\ version
    [    0.000000] Linux version 2.6.32-16-generic (root at chloe)
	(gcc version 4.4.3 (Ubuntu 4.4.3-3ubuntu1) ) #26-Ubuntu SMP
	Fri Mar 12 18:02:3 (Ubuntu 2.6.32-16.26-generic

Signed-off-by: Andy Whitcroft <apw at canonical.com>
 debian/rules.d/0-common-vars.mk |    3 +++
 debian/rules.d/2-binary-arch.mk |    2 +-
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
index 0909dc7..d069cad 100644
--- a/debian/rules.d/0-common-vars.mk
+++ b/debian/rules.d/0-common-vars.mk
@@ -49,6 +49,9 @@ ifneq ($(PRINTSHAS),)
 ubuntu_log_opts += --print-shas
+# Get the kernels own extra version to be added to the release signature.
+extraversion=$(shell awk '/EXTRAVERSION =/ { print $$3 }' <Makefile)
 # The debug packages are ginormous, so you probably want to skip
 # building them (as a developer).
diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
index 9d36928..4caf3bd 100644
--- a/debian/rules.d/2-binary-arch.mk
+++ b/debian/rules.d/2-binary-arch.mk
@@ -21,7 +21,7 @@ $(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(arc
 	touch $(builddir)/build-$*/ubuntu-build
 	[ "$(do_full_source)" != 'true' ] && true || \
 		rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) * $(builddir)/build-$*
-	cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$*"/' > $(builddir)/build-$*/.config
+	cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(release)$(extraversion)"/' > $(builddir)/build-$*/.config
 	find $(builddir)/build-$* -name "*.ko" | xargs rm -f
 	$(build_cd) $(kmake) $(build_O) silentoldconfig prepare scripts
 ifeq ($(do_tools),true)

More information about the kernel-team mailing list