SOURCES: rpm.macros - typos, s/__kernel_rel/__kernel_ver/.

Jakub Bogusz qboosh w pld-linux.org
Wto, 4 Sty 2005, 23:27:30 CET


On Tue, Jan 04, 2005 at 10:57:12PM +0100, Paweł Sikora wrote:
> On Tuesday 04 of January 2005 22:36, Jakub Bogusz wrote:
> > (..)
> >
> > Niedobrze.
> >
> > 1. Nie obsłuży !dist_kernel (kiedy nagłówki nie należą do żadnego pakietu).
> > 2. Nie przewiduje przypadku EXTRAVERSION != %{release}.
> >
> > Co było źle w poprzedniej wersji?
> 
> nie dzialala z:
> 
> [ /usr/src/linux/include/linux/version.h ]
> #include <linux/config.h>
> #ifdef CONFIG_SMP
> #include <linux/version-smp.h>
> #else
> #include <linux/version-up.h>
> #endif
> 
> [ /usr/src/linux/include/linux/version-up.h ]
> #define UTS_RELEASE "2.6.10-0.93"
> #define LINUX_VERSION_CODE 132618
> #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
> 
> [ /usr/src/linux/include/linux/version-smp.h ]
> #define UTS_RELEASE "2.6.10-0.93smp"
> #define LINUX_VERSION_CODE 132618
> #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

Ojoj... to nie można zrobić jednego version.h z:

#ifndef CONFIG_SMP
#define UTS_RELEASE "..."
#else
#define UTS_RELEASE "...smp"
#endif

W (dotychczasowym) %__kernel_ver jest `head -n1`, więc złapie pierwsze
wystąpienie.
W 2.4 to tak działa (z dokładnością do definicji, bo up/smp jest
sterowane przez -D__KERNEL_SMP zamiast podmiany configa).

Z kernel24.spec:

%{__sed} -i -e 's/#define UTS_RELEASE.*/#if !defined(__KERNEL_SMP)\n#define UTS_RELEASE "%{version}-%{release}"\n#else\n#define UTS_RELEASE "%{version}-%{release}smp"\n#endif/' $RPM_BUILD_ROOT%{_prefix}/src/linux-%{version}/include/linux/version.h


PS. wycinanie "SMP " z vermagic jest IMO niepotrzebne.
W niczym to podwójne "SMP" nie przeszkadza, a jest bliższe oryginału.

-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/




Więcej informacji o liście dyskusyjnej pld-devel-pl