Hi Manoj,

>         OK. Since you are using git kernels, perhaps you can try this
>  experiment: 

Sure.

>    a) running make-kpkg on a pristine git tree works
>    b) make some change (add/delete whitespace, or something, so the tree
>       is not pristine, and run make-kpkg again. Does it still work?
>    c) Get another pristine git tree, where make-kpkg has not been
>       run. Now make a change -- so the tree is dirty. _Then_ run
>       make-kpkg. Does that work?

Ok, let's see. First run: CONFIG_LOCALVERSION_AUTO is set:

$ sh scripts/setlocalversion
-g65c44b40[no newline]

a) running make-kpkg by itself creates debian/changelog with version
   2.6.21-g65c44b40-pb1 (-pb1 is my local configuration)
   running it with kernel_image argument starts compiling, and
   UTS_RELEASE gets set to 2.6.21-g65c44b40-dirty; the kernel then
   builds and finally make-kpkg reports:
The UTS Release version in include/linux/utsrelease.h
     "2.6.21-g65c44b40-dirty" 
does not match current version:
     "2.6.21-g65c44b40" 
Please correct this.

b) make-kpkg has already dirtied the tree (scripts/package/builddeb for
   example), just rerunning make-kpkg kernel_image gives:
The changelog says we are creating 2.6.21-g65c44b40
However, I thought the version is 2.6.21-g65c44b40-dirty

c) works just fine, creates version 2.6.21-g65c44b40-dirty-pb1

Now the same without CONFIG_LOCALVERSION_AUTO

a) works fine, creates package version 2.6.21-pb1
b) same as before, the tree isn't pristine anyway after invoking
   make-kpkg. it still works fine and creates 2.6.21-pb1 again
c) works fine, creates package version 2.6.21-pb1

So exactly as I claimed before, the problem you're trying to solve only
happens when CONFIG_LOCALVERSION_AUTO is set and you're building from a
git tree. My typical use case is (c), so I don't care that (a) and (b)
don't work when CONFIG_LOCALVERSION_AUTO is set.

>         If the only failure mode is when CONFIG_LOCALVERSION_AUTO is
>  set, then I'll just detect that and halt early, and stop nuking the
>  setlocalversion script. 

I'd very much appreciate a way out in that case :)

> I think we want make-kpkg to still work out of
>  the box for the three cases above.

Unfortunately CONFIG_LOCALVERSION_AUTO is set by default even though it
only has an effect on git trees. Where do the default config files come
from? make-kpkg doesn't work on a tree without a .config.

johannes

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to