Re: [2.6.16-rc6] CONFIG_LOCALVERSION_AUTO
From: Sam Ravnborg
Date: Thu Mar 16 2006 - 15:31:28 EST
On Wed, Mar 15, 2006 at 05:47:51AM +0100, Mathis Ahrens wrote:
>
> Hi all,
>
> i just discovered this cute little feature, but had three
> minor issues while experimenting with it on 2.6.16-rc6:
>
> 1.
> Semantics of LOCALVERSION are confusing and probably buggy.
> The Makefile states:
>
> # Take the contents of any files called localversion* and the config
> # variable CONFIG_LOCALVERSION and append them to KERNELRELEASE.
> # LOCALVERSION from the command line override all of this
>
> whereas my simplified view of current code is:
>
> version = major + minor + patch + extra
> release = version + localver-full
> localver-full = localver + localver-auto
> localver = <concat all localversions*> + $CONFIG_LOCALVERSION
> localver-auto = $LOCALVERSION + <some -gxxxxxx>
>
> LOCALVERSION does not seem to /override/ anything if specified on the
> command line, but rather (with CONFIG_LOCALVERSION_AUTO=y) gets
> /inserted/.
>
> Also, with CONFIG_LOCALVERSION_AUTO=n, specifying LOCALVERSION
> on the command line currently does nothing at all. This is a regression
> from 2.6.15, I suppose.
This is a bug.
I will fix that for 2.6.17.
> 2.
> "make kernelrelease" does not imply "make .kernelrelease", it only
> does cat the file .kernelrelease (or shows an error if it's not there).
>
> This leads to the following IMHO slightly irritating behaviour
> $ echo "LV1" > localversion
> $ make kernelrelease
> 2.6.16-rc6LV1
> $ echo "LV2" > localversion
> $ make kernelrelease
> 2.6.16-rc6LV1
>
> Is there a reason for this?
make kernelrelase shall work in both a read-only environment and shall
avoid modifying files when run as another user.
So the simple measure was to error out only if .kernelrelease was
missing.
The trick here seems to print $(KERNELVERSION)$(localver-full)
but only if .kernelrelease is present.
On the other hand if .kernelrelase and $(KERNELVERSION)$(localver-full)
differ then what to print.
The kernelrelease of the kernel or how it is configured?
echo -sam > locelversion does NOT change the kernel.
The kernelrealse of the kernel is only changed after running 'make'.
And this is what we want to see - the kernelrelase of the kernel, not
what happes to be stored in a file after the kernel was compiled.
>
> 3.
> The help of CONFIG_LOCALVERSION_AUTO reads:
>
> Note: This requires Perl, and a git repository, but not necessarily
> the git or cogito tools to be installed.
>
> Looking at scripts/setlocalversion, this does not seem to be correct
> anymore.
Thanks. Will be fixed.
Sam
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/