[PATCH 1/1] UBUNTU: expose the debian changelog version number via the kernel build number

Ben Collins ben.collins at canonical.com
Tue Dec 2 14:49:01 UTC 2008


On Tue, 2008-12-02 at 14:46 +0000, Andy Whitcroft wrote:
> We currently expose the Ubuntu ABI via the basic kernel version
> number (in /proc/version and uname) and expose the full version via
> /proc/version_signature.  We do this to maintain stability in the naming
> of our modules simplifying external module updates.  But this does mean
> that the normal version is lacking some information needed to directly
> identify the actual build, both to normal tools and more importantly in
> the Oops/panic output:

Sweet. Mix this with removing the -ub- version we had in -1.1 for
jaunty, and I'm all happy. ACK!

>   $ cat /proc/version
>   Linux version 2.6.27-10-generic (root at dm) (gcc version 4.3.2 (Ubuntu
>          4.3.2-1ubuntu11) ) #1 SMP Mon Dec 1 17:56:07 GMT 2008
>   $ cat /proc/version_signature
>   Ubuntu 2.6.27-10.21~lp276943apw1-generic
> 
> This patch additionally exposed the version suffix via the 'version'
> field, the #1 SMP <date> section above as below.  This exposes the
> upload number plus and relative updates:
> 
>   $ cat /proc/version
>   Linux version 2.6.27-10-generic (root at dm) (gcc version 4.3.2 (Ubuntu
>          4.3.2-1ubuntu11) ) #21~lp276943apw1 SMP Mon Dec 1 17:56:07 GMT 2008
> 
> This has the advantage that the oops reporter also reports the the
> beginning of this field (up to the first space) as part of a panic so
> they would then look like the below which should aid kernel
> identification:
> 
>   Pid: 2847, comm: grub Not tainted 2.6.27-10-generic #21~lp276943apw1
> 
> For autobuilder generated builds we also add a -Ubuntu suffix indicating
> they are offical releases.  This also appears with the upload number in
> oopses.
> 
>   Pid: 2847, comm: grub Not tainted 2.6.27-10-generic #21-Ubuntu
> 
> This may be enough for kerneloops to know they are ours.
> 
> Signed-off-by: Andy Whitcroft <apw at canonical.com>
> ---
>  debian/rules.d/0-common-vars.mk |    9 ++++++++-
>  debian/rules.d/1-maintainer.mk  |    1 +
>  2 files changed, 9 insertions(+), 1 deletions(-)
> 
> diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
> index f9d12e9..30721b1 100644
> --- a/debian/rules.d/0-common-vars.mk
> +++ b/debian/rules.d/0-common-vars.mk
> @@ -53,6 +53,11 @@ prev_abinum	:= $(shell echo $(prev_revision) | sed -e 's/\..*//')$(abi_suffix)
>  
>  abi_release	:= $(release)-$(abinum)
>  
> +uploadnum	:= $(shell echo $(revision) | sed -e 's/.*\.//')
> +ifneq ($(wildcard /CurrentlyBuilding),)
> +  uploadnum	:= $(uploadnum)-Ubuntu
> +endif
> +
>  # We force the sublevel to be exactly what we want. The actual source may
>  # be an in development git tree. We want to force it here instead of
>  # committing changes to the top level Makefile
> @@ -91,7 +96,9 @@ conc_level		= -j$(CONCURRENCY_LEVEL)
>  
>  # target_flavour is filled in for each step
>  kmake = make ARCH=$(build_arch) EXTRAVERSION=-$(abinum)-$(target_flavour) \
> -	CONFIG_DEBUG_SECTION_MISMATCH=y SUBLEVEL=$(SUBLEVEL)
> +	CONFIG_DEBUG_SECTION_MISMATCH=y SUBLEVEL=$(SUBLEVEL) \
> +	KBUILD_BUILD_VERSION="$(uploadnum)"
> +
>  ifneq ($(LOCAL_ENV_CC),)
>  kmake += CC=$(LOCAL_ENV_CC) DISTCC_HOSTS=$(LOCAL_ENV_DISTCC_HOSTS)
>  endif
> diff --git a/debian/rules.d/1-maintainer.mk b/debian/rules.d/1-maintainer.mk
> index eb95413..c8f473a 100644
> --- a/debian/rules.d/1-maintainer.mk
> +++ b/debian/rules.d/1-maintainer.mk
> @@ -51,6 +51,7 @@ printenv:
>  	@echo "release           = $(release)"
>  	@echo "revisions         = $(revisions)"
>  	@echo "revision          = $(revision)"
> +	@echo "uploadnum         = $(uploadnum)"
>  	@echo "prev_revisions    = $(prev_revisions)"
>  	@echo "prev_revision     = $(prev_revision)"
>  	@echo "abinum            = $(abinum)"
> -- 
> 1.6.0.4.911.gc990
> 
> 





More information about the kernel-team mailing list