a question about the .spec file

John Reiser jreiser at BitWagon.com
Thu Feb 22 02:38:01 UTC 2007


Pete Zaitcev wrote:
> On Wed, 21 Feb 2007 17:26:49 -0500, "Chris Taylor" <chtaylo4 at gmail.com> wrote:
> 
> 
>># now run oldconfig over all the config files
>>for i in *.config
> 
> 
>>since there are different .config files for each iteration of the kernel (
>>i.e kernel-2.6.19-i586.config vs  kernel-2.6.18-i586.config) should the
>>.spec file be specific to the kernel that it's intended for?
> 
> 
> I suspect that you're mistaken in your diagnosis. The scriptlet you
> quoted runs in the top of the build tree. A few lines earlier, this
> happens:
> 
> cp -f %{all_arch_configs} .
> 
> The dot was removed, then untarred and patched, at the beginning of build.
> Thus, the *.config is not globbed over a bunch of different configs left
> over in the unclean .../SOURCES/. It cannot possibly run across different
> revisions.
> 
> Right? Or I am missing something?

About one year ago in kernel-2.6.15-1.1977_FC5 there was a problem
with the .spec not defending itself against old *.config files.  See
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=182950

In the .spec for the current kernel-2.6.20-1.2936.fc7 the defense
is contained in lines such as:
   %define all_arch_configs $RPM_SOURCE_DIR/kernel-%{kversion}-*.config
which includes %{kversion} in the relevant filenames.  However, kversion
is only 2.6.%{sublevel}, so the defense is not necessarily exhaustive.

> ... You're still advised to remove
> old sources before running rpm -i on an SRPM.

This advice confirms that some .spec files do/did have such misfeatures;
and/or the misdesign of rpm for not anticipating the use of SOURCES
as an uncontrolled cache, multiple simultaneous builds [inhibiting
"rm -f SOURCES/*"], etc.

-- 
John Reiser, jreiser at BitWagon.com




More information about the devel mailing list