Is there a document or page that details all of the changes in how recent Fedora Core kernels are built? I've noticed several changes, and I want to verify I understand them all. I apologize as I've seen some traffic, but I can't seem to find a definite answer (I'm sure I just passed over it).
Specifically:
1. The "sourcecode" package, which is now ARCH="noarch"
Assumption: I assume the package name change was because the ARCH has changed.
Additional Q: Why is the "sourcecode" package not built by default when "--target=noarch" is passed? I.e., %ifarch noarch %define builddoc 1 %define buildsource 0 ^^^
2. There is another variable in EXTRAVERSIONS, defaults to "root"
Assumption: I assume this is to differentiate between UML (User Mode Linux) kernels (so the same build system can be used)?
Additional Q: Is this a stock kernel change? Or Red Hat only?
3. Athlon no longer a build option at all in the SPEC file
Assumption: Are there support issues with this? Or was it another reasoning?**
Additional Q: Is there any reason why we can't "patch back in" just the few changes into the SPEC so one can build Athlon kernels easily with "--target=athlon"?
[ **BTW, I'm fully aware that the i686 kernel runs fairly optimized on Athlon. But turning off the generic support, and optimizing for K7 makes a significant difference for me in engineering applications. ]
Also, to add in Athlon support, you don't have to make it part of the "all_x86" set. In fact, I made Athlon a separate build conditional on its own in my own spec file (for 2.6.8-1.541) here (along with a few other changes): http://www.vaporwarelabs.com/files/temp/kernel-2.6.8-1.541BS.spec
And for those that want to build Athlon optimized kernels, the .config files are here: http://www.vaporwarelabs.com/files/temp/kernel-2.6.8-athlon.config http://www.vaporwarelabs.com/files/temp/kernel-2.6.8-athlon-smp.config
On Sun, Sep 26, 2004 at 02:10:16PM -0400, Bryan J. Smith wrote:
- The "sourcecode" package, which is now ARCH="noarch"
I assume the package name change was because the ARCH has changed.
Yes.
Why is the "sourcecode" package not built by default when "--target=noarch" is passed? I.e.,
There is no need to duplicate the files derivable from the src.rpm in another package. Kernel modules can now be built with just the kernel package. There is no need to have the kernel-sourcecode package to build kernel modules.
- There is another variable in EXTRAVERSIONS, defaults to "root"
I assume this is to differentiate between UML (User Mode Linux) kernels (so the same build system can be used)? Is this a stock kernel change? Or Red Hat only?
I don't know this one.
- Athlon no longer a build option at all in the SPEC file
Are there support issues with this? Or was it another reasoning?**
The reason is the one you give below:
[ **BTW, I'm fully aware that the i686 kernel runs fairly optimized on Athlon.
But turning off the generic support, and optimizing for K7 makes a significant difference for me in engineering applications. ]
How significant? Is this something most users are going to notice in their use of the system?
On Sun, Sep 26, 2004 at 02:10:16PM -0400, Bryan J. Smith wrote:
- There is another variable in EXTRAVERSIONS, defaults to "root"
I assume to distinguish Red Hat-blessed kernels from home-built kernels. There's a comment in the spec file indicating something along those lines:
# # Polite request for people who spin their own kernel rpms: # please modify the "release" field in a way that identifies # that the kernel isn't the stock distribution kernel, for example by # adding some text to the end of the version number. # [...] %define rhbsys %([ -r /etc/beehive-root ] && echo || echo .`whoami`) %define release %(R="$Revision: 1.339 $"; RR="${R##: }"; echo ${RR%%?})%{rhbsys}
--L
Am So, den 26.09.2004 schrieb Bryan J. Smith um 20:10:
Is there a document or page that details all of the changes in how recent Fedora Core kernels are built? I've noticed several changes, and I want to verify I understand them all. I apologize as I've seen some traffic, but I can't seem to find a definite answer (I'm sure I just passed over it).
Additional Q: Why is the "sourcecode" package not built by default when "--target=noarch" is passed? I.e., %ifarch noarch %define builddoc 1 %define buildsource 0
Bryan J. Smith b.j.smith@ieee.org
You are not speaking about current FC2 kernels. 2.6.8-1.541 is the current development kernel. The topic about a separate kernel-sourcecode "missing" has been discussed to extend on the development / test list. And Arjan recently posted a short instruction on how to rpmbuild the kernel source rpm from the src.rpm. As this is not topic for the stable FC list you should look at the other lists mentioned.
Alexander
Am So, den 26.09.2004 schrieb Alexander Dalloz um 20:28:
Is there a document or page that details all of the changes in how recent Fedora Core kernels are built? I've noticed several changes, and I want to verify I understand them all. I apologize as I've seen some traffic, but I can't seem to find a definite answer (I'm sure I just passed over it).
Additional Q: Why is the "sourcecode" package not built by default when "--target=noarch" is passed? I.e., %ifarch noarch %define builddoc 1 %define buildsource 0
Bryan J. Smith b.j.smith@ieee.org
You are not speaking about current FC2 kernels. 2.6.8-1.541 is the current development kernel. The topic about a separate kernel-sourcecode "missing" has been discussed to extend on the development / test list. And Arjan recently posted a short instruction on how to rpmbuild the kernel source rpm from the src.rpm. As this is not topic for the stable FC list you should look at the other lists mentioned.
Alexander
Sorry, this should have gone to the fedora-list@redhat.com list, but the OP managed to puzzle the reply-to address to be this devel list while the posting went to the fedora-list@redhat.com list.
Alexander
On Sun, 2004-09-26 at 20:10, Bryan J. Smith wrote:
- The "sourcecode" package, which is now ARCH="noarch"
Assumption: I assume the package name change was because the ARCH has changed.
correct; this was during a fc2 update
Additional Q: Why is the "sourcecode" package not built by default when "--target=noarch" is passed? I.e., %ifarch noarch %define builddoc 1 %define buildsource 0 ^^^
yes the plan is to not ship the sourcecode package at all for fc3 but release note how to get the sourcecode from the src.rpm
- There is another variable in EXTRAVERSIONS, defaults to "root"
Assumption: I assume this is to differentiate between UML (User Mode Linux) kernels (so the same build system can be used)?
actually it is to differentiate local builds vs buildsystem builds; mostly that is for my own sanity so that I know my own local builds and know that they don't match exact CVS tags
Additional Q: Is this a stock kernel change? Or Red Hat only?
EXTRAVERSION is strictly defined by Red Hat, in upstream it's designed for free use for packagers ;)
- Athlon no longer a build option at all in the SPEC file
the gain Athlon gave previously is, in 2.6 kernels, now a runtime option not a compiletime option, so no need to have different kernels for athlon anymore.
Additional Q: Is there any reason why we can't "patch back in" just the few changes into the SPEC so one can build Athlon kernels easily with "--target=athlon"?
why bother ?
[ **BTW, I'm fully aware that the i686 kernel runs fairly optimized on Athlon. But turning off the generic support, and optimizing for K7 makes a significant difference for me in engineering applications. ]
even in 2.6?
Le dim 26/09/2004 à 21:24, Arjan van de Ven a écrit :
yes the plan is to not ship the sourcecode package at all for fc3 but release note how to get the sourcecode from the src.rpm
It will be good if "rpmbuild -bb --target noarch kernel-2.6.spec" and "rpmbuild -bp --target noarch kernel-2.6.spec" provide the same source tree.
Some examples :
No COPYING.modules file : diff -urN linux-2.6.8-1.541.admin/COPYING.modules linux-2.6.8/COPYING.modules --- linux-2.6.8-1.541.admin/COPYING.modules 2004-09-27 10:15:05.000000000 +0200 +++ linux-2.6.8/COPYING.modules 1970-01-01 01:00:00.000000000 +0100
crypto/signature/key.h is not generated : diff -urN linux-2.6.8-1.541.admin/crypto/signature/key.h linux-2.6.8/crypto/signature/key.h --- linux-2.6.8-1.541.admin/crypto/signature/key.h 2004-09-27 10:13:43.000000000 +0200 +++ linux-2.6.8/crypto/signature/key.h 2004-09-27 10:21:45.485961926 +0200 @@ -1,27 +1,7 @@ -const char ksign_def_public_key[] __initdata= - "\x98\xe2\x04\x41\x57\xcb\xb7\x11\x02\x00\xb6\x09\x28\x26\x53\xf0" - "\xd8\x20\x04\xff\x00\x94\x58\x12\x44\xbd\x34\x0f\x93\x51\x89\x5d"
Bad (or missing) EXTRAVERSION : diff -urN linux-2.6.8-1.541.admin/Makefile linux-2.6.8/Makefile --- linux-2.6.8-1.541.admin/Makefile 2004-09-27 10:15:04.000000000 +0200 +++ linux-2.6.8/Makefile 2004-09-27 10:22:03.019462154 +0200 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 8 -EXTRAVERSION = -1.541.admincustom +EXTRAVERSION = -prep NAME=Zonked Quokka
The diffstat : .config | 2264 +++++++++++++++++++ .config.cmd | 173 + .config.old | 2444 ++++++++++++++++++++ COPYING.modules | 707 ----- Makefile | 2 configs/kernel-2.6.8-i586-smp.config | 12 configs/kernel-2.6.8-i586.config | 12 configs/kernel-2.6.8-i686-smp.config | 12 configs/kernel-2.6.8-i686.config | 12 configs/kernel-2.6.8-ia64.config | 12 configs/kernel-2.6.8-ppc.config | 10 configs/kernel-2.6.8-ppc32dy4.config | 10 configs/kernel-2.6.8-ppc64.config | 8 configs/kernel-2.6.8-ppc64iseries.config | 8 configs/kernel-2.6.8-ppc8260.config | 10 configs/kernel-2.6.8-ppc8560.config | 10 configs/kernel-2.6.8-s390.config | 10 configs/kernel-2.6.8-s390x.config | 10 configs/kernel-2.6.8-x86_64-smp.config | 12 configs/kernel-2.6.8-x86_64.config | 12 crypto/signature/key.h | 32 include/linux/autoconf.h | 2265 +++++++++++++++++++ scripts/basic/.docproc.cmd | 66 scripts/basic/.fixdep.cmd | 76 scripts/basic/.split-include.cmd | 55 scripts/basic/docproc | 14 scripts/basic/fixdep | 25 scripts/basic/split-include | 14 scripts/kconfig/.conf.cmd | 1 scripts/kconfig/.conf.o.cmd | 53 scripts/kconfig/.libkconfig.so.cmd | 1 scripts/kconfig/.mconf.o.cmd | 86 scripts/kconfig/.zconf.tab.o.cmd | 71 scripts/kconfig/conf | 44 scripts/kconfig/conf.o | 93 scripts/kconfig/lex.zconf.c | 3688 +++++++++++++++++++++++++++++++ scripts/kconfig/libkconfig.so | 661 +++++ scripts/kconfig/mconf.o | 65 scripts/kconfig/zconf.tab.c | 2127 +++++++++++++++++ scripts/kconfig/zconf.tab.h | 125 + scripts/kconfig/zconf.tab.o | 363 +++ 41 files changed, 14861 insertions(+), 814 deletions(-)
On Mon, Sep 27, 2004 at 10:52:26AM +0200, Matias Feliciano wrote:
Le dim 26/09/2004 à 21:24, Arjan van de Ven a écrit :
yes the plan is to not ship the sourcecode package at all for fc3 but release note how to get the sourcecode from the src.rpm
It will be good if "rpmbuild -bb --target noarch kernel-2.6.spec" and "rpmbuild -bp --target noarch kernel-2.6.spec" provide the same source tree.
it's not entirely reasonable to expect that; just like kernel-sourcecode isn't identical.
crypto/signature/key.h is not generated :
I don't see this as a problem; the file that does exist is supposed to be valid enough for building your own kernel.
Bad (or missing) EXTRAVERSION :
-EXTRAVERSION = -1.541.admincustom +EXTRAVERSION = -prep
ok I can see the point of changing this to be more informative
The diffstat : .config | 2264 +++++++++++++++++++ .config.cmd | 173 + .config.old | 2444 ++++++++++++++++++++
not reasonable to be expected; simply because of the "which config" question alone.
configs/kernel-2.6.8-i586-smp.config | 12 configs/kernel-2.6.8-i586.config | 12 configs/kernel-2.6.8-i686-smp.config | 12 configs/kernel-2.6.8-i686.config | 12 configs/kernel-2.6.8-ia64.config | 12 configs/kernel-2.6.8-ppc.config | 10 configs/kernel-2.6.8-ppc32dy4.config | 10 configs/kernel-2.6.8-ppc64.config | 8 configs/kernel-2.6.8-ppc64iseries.config | 8 configs/kernel-2.6.8-ppc8260.config | 10 configs/kernel-2.6.8-ppc8560.config | 10 configs/kernel-2.6.8-s390.config | 10 configs/kernel-2.6.8-s390x.config | 10 configs/kernel-2.6.8-x86_64-smp.config | 12 configs/kernel-2.6.8-x86_64.config | 12
make oldconfig reorders stuff somewhat. yawn :) In addition the kernel-sourcecode configs are not the configs used during binary rpm build (for example the kernel-sourcode configs turn things like generating debuginfo into binaries since while the rpm build will strip this properly, people who build their own generally don't and end up with HUGE binary files which gives problems in several other places)
crypto/signature/key.h | 32
different key; not too interesting
include/linux/autoconf.h | 2265 +++++++++++++++++++ scripts/basic/.docproc.cmd | 66 scripts/basic/.fixdep.cmd | 76 scripts/basic/.split-include.cmd | 55 scripts/basic/docproc | 14 scripts/basic/fixdep | 25 scripts/basic/split-include | 14 scripts/kconfig/.conf.cmd | 1 scripts/kconfig/.conf.o.cmd | 53 scripts/kconfig/.libkconfig.so.cmd | 1 scripts/kconfig/.mconf.o.cmd | 86 scripts/kconfig/.zconf.tab.o.cmd | 71 scripts/kconfig/conf | 44 scripts/kconfig/conf.o | 93 scripts/kconfig/lex.zconf.c | 3688 +++++++++++++++++++++++++++++++ scripts/kconfig/libkconfig.so | 661 +++++ scripts/kconfig/mconf.o | 65 scripts/kconfig/zconf.tab.c | 2127 +++++++++++++++++ scripts/kconfig/zconf.tab.h | 125 + scripts/kconfig/zconf.tab.o | 363 +++
these are all autogenerated files during the build and thus don't belong in a source tree really.
Le lun 27/09/2004 à 11:03, Arjan van de Ven a écrit :
On Mon, Sep 27, 2004 at 10:52:26AM +0200, Matias Feliciano wrote:
It will be good if "rpmbuild -bb --target noarch kernel-2.6.spec" and "rpmbuild -bp --target noarch kernel-2.6.spec" provide the same source tree.
it's not entirely reasonable to expect that; just like kernel-sourcecode isn't identical.
crypto/signature/key.h is not generated :
I don't see this as a problem; the file that does exist is supposed to be valid enough for building your own kernel.
It's not : const int ksign_def_public_key_size = 0; /* automatically generated by bin2hex */ static unsigned char ksign_def_public_key[] __initdata = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
configs/kernel-2.6.8-i586-smp.config | 12 configs/kernel-2.6.8-i586.config | 12 configs/kernel-2.6.8-i686-smp.config | 12 configs/kernel-2.6.8-i686.config | 12 configs/kernel-2.6.8-ia64.config | 12 configs/kernel-2.6.8-ppc.config | 10 configs/kernel-2.6.8-ppc32dy4.config | 10 configs/kernel-2.6.8-ppc64.config | 8 configs/kernel-2.6.8-ppc64iseries.config | 8 configs/kernel-2.6.8-ppc8260.config | 10 configs/kernel-2.6.8-ppc8560.config | 10 configs/kernel-2.6.8-s390.config | 10 configs/kernel-2.6.8-s390x.config | 10 configs/kernel-2.6.8-x86_64-smp.config | 12 configs/kernel-2.6.8-x86_64.config | 12
make oldconfig reorders stuff somewhat. yawn :) In addition the kernel-sourcecode configs are not the configs used during binary rpm build (for example the kernel-sourcode configs turn things like generating debuginfo into binaries since while the rpm build will strip this properly, people who build their own generally don't and end up with HUGE binary files which gives problems in several other places)
--- linux-2.6.8-1.541.admin/configs/kernel-2.6.8-i686.config 2004-09-27 10:15:05.000000000 +0200 +++ linux-2.6.8/configs/kernel-2.6.8-i686.config 2004-09-27 10:21:54.000000000 +0200 @@ -49,8 +49,8 @@ # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SIG is not set -# CONFIG_MODULE_SIG is not set +CONFIG_MODULE_SIG=y +# CONFIG_MODULE_SIG_FORCE is not set CONFIG_KMOD=y
#
CONFIG_MODULE_SIG is not set. Normal, there is no key :-)
It should be nice if a "make modules_install" sign modules like the .spec file do : # gpg sign the modules %if %{signmodules} for i in ` find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f` ; do sh ./scripts/modsign/modsign.sh $i mv -f $i.signed $i done %endif
I know I can build the i686.rpm with my custom .config file (as I do right now :-)).
I don't see this as a problem; the file that does exist is supposed to be valid enough for building your own kernel.
It's not : const int ksign_def_public_key_size = 0; /* automatically generated by bin2hex */ static unsigned char ksign_def_public_key[] __initdata = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
and how is that not valid ??
Le mar 28/09/2004 à 23:03, Arjan van de Ven a écrit :
I don't see this as a problem; the file that does exist is supposed to be valid enough for building your own kernel.
It's not : const int ksign_def_public_key_size = 0; /* automatically generated by bin2hex */ static unsigned char ksign_def_public_key[] __initdata = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
and how is that not valid ??
I am not a crypto expert but if it's valid key it seems easy to crack. No ?
Anyway, since there is no secret key in kernel-sourcecode (it's normal) and the secret key is not generated with "rpmbuild -bp", you can forget this :-)
So, what is the significant difference between "rpmbuild -bp" and kernel-sourcecode: EXTRAVERSION in Makefile.
I have another request : kernel-sourcecode depend on gtk2-devel and qt-devel (for "make xconfig and gconfig"). If we want "rpmbuild -bp" close to the "old" kernel-sourcecode, perhaps we should add "BuildPreReq: gtk2-devel, qt-devel" in kernel-2.6.spec .
On Wed, Sep 29, 2004 at 07:44:52AM +0200, Matias Feliciano wrote:
};
and how is that not valid ??
I am not a crypto expert but if it's valid key it seems easy to crack. No ?
It's actually an empty keyring without keys :)
So, what is the significant difference between "rpmbuild -bp" and kernel-sourcecode: EXTRAVERSION in Makefile.
yep that is something worth fixing
If we want "rpmbuild -bp" close to the "old" kernel-sourcecode, perhaps we should add "BuildPreReq: gtk2-devel, qt-devel" in kernel-2.6.spec .
ew no ;)