]> TLD Linux GIT Repositories - packages/kernel.git/blob - kernel-vanilla.spec
- started work on 2.6.32.56
[packages/kernel.git] / kernel-vanilla.spec
1 # Conditional build:
2 %bcond_without  source          # don't build kernel-vanilla-source package
3 %bcond_without  pcmcia          # don't build pcmcia
4 %bcond_with     verbose         # verbose build (V=1)
5 %bcond_with     pae             # build PAE (HIGHMEM64G) support on uniprocessor
6
7 %{?debug:%define with_verbose 1}
8
9 %define         have_drm        1
10 %define         have_oss        1
11 %define         have_sound      1
12 %define         have_isa        1
13
14 %define         _basever                2.6.32
15 %define         _postver                .56
16 %define         _rel                    0.1
17
18 %define         _enable_debug_packages                  0
19
20 %define         alt_kernel      vanilla%{?with_pae:-pae}
21
22 # kernel release (used in filesystem and eventually in uname -r)
23 # modules will be looked from /lib/modules/%{kernel_release}
24 # _localversion is just that without version for "> localversion"
25 %define         _localversion %{_rel}
26 %define         kernel_release %{version}-%{alt_kernel}-%{_localversion}
27
28 Summary:        The Linux kernel (the core of the Linux operating system)
29 Summary(de.UTF-8):      Der Linux-Kernel (Kern des Linux-Betriebssystems)
30 Summary(et.UTF-8):      Linuxi kernel (ehk operatsioonisüsteemi tuum)
31 Summary(fr.UTF-8):      Le Kernel-Linux (La partie centrale du systeme)
32 Summary(pl.UTF-8):      Jądro Linuksa
33 Name:           kernel-%{alt_kernel}
34 Version:        %{_basever}%{_postver}
35 Release:        %{_rel}
36 Epoch:          3
37 License:        GPL v2
38 Group:          Base/Kernel
39 Source0:        http://www.kernel.org/pub/linux/kernel/v2.6/linux-%{_basever}.tar.bz2
40 # Source0-md5:  260551284ac224c3a43c4adac7df4879
41 %if "%{_postver}" != "%{nil}"
42 Source1:        http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/patch-%{version}.bz2
43 # Source1-md5:  53394bf7139e25ca328f7894ad21d1ad
44 %endif
45
46 Source2:        kernel-vanilla-autoconf.h
47 Source3:        kernel-vanilla-config.h
48 Source4:        kernel-vanilla-module-build.pl
49
50 Source10:       kernel-vanilla-x86.config
51 Source11:       kernel-vanilla-x86_64.config
52
53 URL:            http://www.kernel.org/
54 BuildRequires:  binutils >= 3:2.18
55 BuildRequires:  /sbin/depmod
56 BuildRequires:  gcc >= 5:3.2
57 # for hostname command
58 BuildRequires:  net-tools
59 BuildRequires:  perl-base
60 BuildRequires:  rpm-build >= 4.4.9-56
61 BuildRequires:  rpmbuild(macros) >= 1.217
62 Autoreqprov:    no
63 Requires(post): coreutils
64 Requires(post): geninitrd >= 2.57
65 Requires(post): module-init-tools >= 0.9.9
66 Requires:       /sbin/depmod
67 Requires:       coreutils
68 Requires:       geninitrd >= 2.57
69 Requires:       module-init-tools >= 0.9.9
70 Obsoletes:      kernel%{_alt_kernel}-firmware
71 Obsoletes:      kernel%{_alt_kernel}-isdn-mISDN
72 Obsoletes:      kernel-misc-acer_acpi
73 Obsoletes:      kernel-misc-fuse
74 Obsoletes:      kernel-misc-uvc
75 Obsoletes:      kernel-modules
76 Obsoletes:      kernel-net-ar81
77 Obsoletes:      kernel-net-hostap
78 Obsoletes:      kernel-net-ieee80211
79 Obsoletes:      kernel-net-ipp2p
80 Obsoletes:      kernel-smp
81 Conflicts:      e2fsprogs < 1.29
82 Conflicts:      isdn4k-utils < 3.1pre1
83 Conflicts:      jfsutils < 1.1.3
84 Conflicts:      module-init-tools < 0.9.10
85 Conflicts:      nfs-utils < 1.0.5
86 Conflicts:      oprofile < 0.9
87 Conflicts:      ppp < 1:2.4.0
88 Conflicts:      procps < 3.2.0
89 Conflicts:      quota-tools < 3.09
90 Conflicts:      reiserfsprogs < 3.6.3
91 Conflicts:      udev < 1:071
92 Conflicts:      util-linux < 2.10o
93 Conflicts:      xfsprogs < 2.6.0
94 %if %{with pae}
95 ExclusiveArch:  %{ix86}
96 ExcludeArch:    i386 i486 i586
97 %else
98 ExclusiveArch:  %{ix86} %{x8664}
99 %endif
100 ExclusiveOS:    Linux
101 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
102
103 %ifarch %{ix86} %{x8664}
104 %define         target_arch_dir         x86
105 %endif
106 %ifnarch %{ix86} %{x8664}
107 %define         target_arch_dir         %{_target_base_arch}
108 %endif
109
110 %ifarch %{ix86}
111 %define         kernel_config           x86
112 %else
113 %define         kernel_config           %{_target_base_arch}
114 %endif
115
116 %define         defconfig       arch/%{target_arch_dir}/defconfig
117
118 # No ELF objects there to strip (skips processing 27k files)
119 %define         _noautostrip    .*%{_kernelsrcdir}/.*
120 %define         _noautochrpath  .*%{_kernelsrcdir}/.*
121
122 %define         initrd_dir      /boot
123
124 %define         _kernelsrcdir   /usr/src/linux-%{version}-%{alt_kernel}
125
126 %if "%{_target_base_arch}" != "%{_arch}"
127         %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
128         %define DepMod /bin/true
129
130         %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
131         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
132         %define DepMod /sbin/depmod
133         %endif
134
135 %else
136         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
137         %define DepMod /sbin/depmod
138 %endif
139
140 %define Features %(echo "%{__features}" | sed '/^$/d')
141
142 %description
143 This package contains the Linux kernel that is used to boot and run
144 your system. It contains few device drivers for specific hardware.
145 Most hardware is instead supported by modules loaded after booting.
146
147 %{Features}
148
149 %description -l de.UTF-8
150 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
151 Linux-Betriebssystems. Der Kernel ist für grundliegende
152 Systemfunktionen verantwortlich: Speicherreservierung,
153 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
154
155 %{Features}
156
157 %description -l fr.UTF-8
158 Le package kernel contient le kernel linux (vmlinuz), la partie
159 centrale d'un système d'exploitation Linux. Le noyau traite les
160 fonctions basiques d'un système d'exploitation: allocation mémoire,
161 allocation de process, entrée/sortie de peripheriques, etc.
162
163 %{Features}
164
165 %description -l pl.UTF-8
166 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
167 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
168 się w komputerze, takiego jak sterowniki dysków itp.
169
170 %{Features}
171
172 %package vmlinux
173 Summary:        vmlinux - uncompressed kernel image
174 Summary(de.UTF-8):      vmlinux - dekompressiertes Kernel Bild
175 Summary(pl.UTF-8):      vmlinux - rozpakowany obraz jądra
176 Group:          Base/Kernel
177 Obsoletes:      kernel-smp-vmlinux
178
179 %description vmlinux
180 vmlinux - uncompressed kernel image.
181
182 %description vmlinux -l de.UTF-8
183 vmlinux - dekompressiertes Kernel Bild.
184
185 %description vmlinux -l pl.UTF-8
186 vmlinux - rozpakowany obraz jądra.
187
188 %package drm
189 Summary:        DRM kernel modules
190 Summary(de.UTF-8):      DRM Kernel Treiber
191 Summary(pl.UTF-8):      Sterowniki DRM
192 Group:          Base/Kernel
193 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
194 Requires:       %{name} = %{epoch}:%{version}-%{release}
195 Obsoletes:      kernel-smp-drm
196 Autoreqprov:    no
197
198 %description drm
199 DRM kernel modules.
200
201 %description drm -l de.UTF-8
202 DRM Kernel Treiber.
203
204 %description drm -l pl.UTF-8
205 Sterowniki DRM.
206
207 %package pcmcia
208 Summary:        PCMCIA modules
209 Summary(de.UTF-8):      PCMCIA Module
210 Summary(pl.UTF-8):      Moduły PCMCIA
211 Group:          Base/Kernel
212 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
213 Requires:       %{name} = %{epoch}:%{version}-%{release}
214 Obsoletes:      kernel-smp-pcmcia
215 Conflicts:      pcmcia-cs < 3.1.21
216 Conflicts:      pcmciautils < 004
217 Autoreqprov:    no
218
219 %description pcmcia
220 PCMCIA modules.
221
222 %description pcmcia -l de.UTF-8
223 PCMCIA Module.
224
225 %description pcmcia -l pl.UTF-8
226 Moduły PCMCIA.
227
228 %package sound-alsa
229 Summary:        ALSA kernel modules
230 Summary(de.UTF-8):      ALSA Kernel Module
231 Summary(pl.UTF-8):      Sterowniki dźwięku ALSA
232 Group:          Base/Kernel
233 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
234 Requires:       %{name} = %{epoch}:%{version}-%{release}
235 Obsoletes:      kernel-smp-sound-alsa
236 Autoreqprov:    no
237
238 %description sound-alsa
239 ALSA (Advanced Linux Sound Architecture) sound drivers.
240
241 %description sound-alsa -l de.UTF-8
242 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
243
244 %description sound-alsa -l pl.UTF-8
245 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
246
247 %package sound-oss
248 Summary:        OSS kernel modules
249 Summary(de.UTF-8):      OSS Kernel Module
250 Summary(pl.UTF-8):      Sterowniki dźwięku OSS
251 Group:          Base/Kernel
252 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
253 Requires:       %{name} = %{epoch}:%{version}-%{release}
254 Obsoletes:      kernel-smp-sound-oss
255 Autoreqprov:    no
256
257 %description sound-oss
258 OSS (Open Sound System) drivers.
259
260 %description sound-oss -l de.UTF-8
261 OSS (Open Sound System) Treiber.
262
263 %description sound-oss -l pl.UTF-8
264 Sterowniki dźwięku OSS (Open Sound System).
265
266 %package headers
267 Summary:        Header files for the Linux kernel
268 Summary(de.UTF-8):      Header Dateien für den Linux-Kernel
269 Summary(pl.UTF-8):      Pliki nagłówkowe jądra Linuksa
270 Group:          Development/Building
271 Autoreqprov:    no
272
273 %description headers
274 These are the C header files for the Linux kernel, which define
275 structures and constants that are needed when rebuilding the kernel or
276 building kernel modules.
277
278 %description headers -l de.UTF-8
279 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
280 Strukturen und Konstante beinhalten, die beim rekompilieren des
281 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
282
283 %description headers -l pl.UTF-8
284 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
285 oraz budowania modułów jądra.
286
287 %package module-build
288 Summary:        Development files for building kernel modules
289 Summary(de.UTF-8):      Development Dateien die beim Kernel Modul kompilationen gebraucht werden
290 Summary(pl.UTF-8):      Pliki służące do budowania modułów jądra
291 Group:          Development/Building
292 Requires:       %{name}-headers = %{epoch}:%{version}-%{release}
293 Conflicts:      rpmbuild(macros) < 1.321
294 Autoreqprov:    no
295
296 %description module-build
297 Development files from kernel source tree needed to build Linux kernel
298 modules from external packages.
299
300 %description module-build -l de.UTF-8
301 Development Dateien des Linux-Kernels die beim kompilieren externer
302 Kernel Module gebraucht werden.
303
304 %description module-build -l pl.UTF-8
305 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
306 Linuksa z zewnętrznych pakietów.
307
308 %package source
309 Summary:        Kernel source tree
310 Summary(de.UTF-8):      Der Kernel Quelltext
311 Summary(pl.UTF-8):      Kod źródłowy jądra Linuksa
312 Group:          Development/Building
313 Requires:       %{name}-module-build = %{epoch}:%{version}-%{release}
314 Autoreqprov:    no
315
316 %description source
317 This is the source code for the Linux kernel. You can build a custom
318 kernel that is better tuned to your particular hardware.
319
320 %description source -l de.UTF-8
321 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
322 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
323 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
324 im Kernel-Source definiert sind. Die Source-Dateien können auch
325 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
326 Hardware ausgerichtet ist.
327
328 %description source -l fr.UTF-8
329 Le package pour le kernel-source contient le code source pour le noyau
330 linux. Ces sources sont nécessaires pour compiler la plupart des
331 programmes C, car il dépend de constantes définies dans le code
332 source. Les sources peuvent être aussi utilisée pour compiler un noyau
333 personnalisé pour avoir de meilleures performances sur des matériels
334 particuliers.
335
336 %description source -l pl.UTF-8
337 Pakiet zawiera kod źródłowy jądra systemu.
338
339 %package doc
340 Summary:        Kernel documentation
341 Summary(de.UTF-8):      Kernel Dokumentation
342 Summary(pl.UTF-8):      Dokumentacja do jądra Linuksa
343 Group:          Documentation
344 Autoreqprov:    no
345
346 %description doc
347 This is the documentation for the Linux kernel, as found in
348 /usr/src/linux/Documentation directory.
349
350 %description doc -l de.UTF-8
351 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
352 Verzeichniss vorgefunden werden kann.
353
354 %description doc -l pl.UTF-8
355 Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu
356 /usr/src/linux/Documentation.
357
358 %prep
359 %setup -q -n linux-%{_basever}
360
361 %if "%{_postver}" != "%{nil}"
362 %{__bzip2} -dc %{SOURCE1} | patch -p1 -s
363 %endif
364
365 # Fix EXTRAVERSION in main Makefile
366 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{_postver}-%{alt_kernel}#g' Makefile
367
368 # on sparc this line causes CONFIG_INPUT=m (instead of =y), thus breaking build
369 sed -i -e '/select INPUT/d' net/bluetooth/hidp/Kconfig
370
371 # cleanup backups after patching
372 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
373
374 %build
375 TuneUpConfigForIX86 () {
376         set -x
377 %ifarch %{ix86}
378         pae=
379         [ "$2" = "yes" ] && pae=yes
380         %if %{with pae}
381         pae=yes
382         %endif
383         %ifnarch i386
384         sed -i 's:CONFIG_M386=y:# CONFIG_M386 is not set:' $1
385         %endif
386         %ifarch i486
387         sed -i 's:# CONFIG_M486 is not set:CONFIG_M486=y:' $1
388         %endif
389         %ifarch i586
390         sed -i 's:# CONFIG_M586 is not set:CONFIG_M586=y:' $1
391         %endif
392         %ifarch i686
393         sed -i 's:# CONFIG_M686 is not set:CONFIG_M686=y:' $1
394         %endif
395         %ifarch pentium3
396         sed -i 's:# CONFIG_MPENTIUMIII is not set:CONFIG_MPENTIUMIII=y:' $1
397         %endif
398         %ifarch pentium4
399         sed -i 's:# CONFIG_MPENTIUM4 is not set:CONFIG_MPENTIUM4=y:' $1
400         %endif
401         %ifarch athlon
402         sed -i 's:# CONFIG_MK7 is not set:CONFIG_MK7=y:' $1
403         %endif
404         %ifarch i686 athlon pentium3 pentium4
405         if [ "$pae" = "yes" ]; then
406                 sed -i "s:CONFIG_HIGHMEM4G=y:# CONFIG_HIGHMEM4G is not set:" $1
407                 sed -i "s:# CONFIG_HIGHMEM64G is not set:CONFIG_HIGHMEM64G=y\nCONFIG_X86_PAE=y:" $1
408         fi
409         sed -i 's:CONFIG_MATH_EMULATION=y:# CONFIG_MATH_EMULATION is not set:' $1
410         %endif
411         return 0
412 %endif
413 }
414
415 BuildConfig() {
416         %{?debug:set -x}
417         # is this a special kernel we want to build?
418         Config="%{kernel_config}"
419         KernelVer=%{kernel_release}
420         echo "Building config file using $Config.conf..."
421         cat $RPM_SOURCE_DIR/kernel-vanilla-$Config.config > %{defconfig}
422         TuneUpConfigForIX86 %{defconfig}
423
424 %{?debug:sed -i "s:# CONFIG_DEBUG_SLAB is not set:CONFIG_DEBUG_SLAB=y:" %{defconfig}}
425 %{?debug:sed -i "s:# CONFIG_DEBUG_PREEMPT is not set:CONFIG_DEBUG_PREEMPT=y:" %{defconfig}}
426 %{?debug:sed -i "s:# CONFIG_RT_DEADLOCK_DETECT is not set:CONFIG_RT_DEADLOCK_DETECT=y:" %{defconfig}}
427
428 }
429
430 BuildKernel() {
431         %{?debug:set -x}
432         echo "Building kernel $1 ..."
433         %{__make} %CrossOpts mrproper \
434                 RCS_FIND_IGNORE='-name build-done -prune -o'
435         ln -sf %{defconfig} .config
436
437         %{__make} %CrossOpts clean \
438                 RCS_FIND_IGNORE='-name build-done -prune -o'
439         %{__make} %CrossOpts include/linux/version.h \
440                 %{?with_verbose:V=1}
441
442         %{__make} %CrossOpts scripts/mkcompile_h \
443                 %{?with_verbose:V=1}
444
445         %{__make} %CrossOpts \
446                 %{?with_verbose:V=1}
447 }
448
449 PreInstallKernel() {
450         Config="%{kernel_config}"
451         KernelVer=%{kernel_release}
452
453         mkdir -p $KERNEL_INSTALL_DIR/boot
454         install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer
455 %ifarch %{ix86} %{x8664}
456         install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
457         install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
458 %endif
459
460         %{__make} %CrossOpts modules_install firmware_install \
461                 %{?with_verbose:V=1} \
462                 DEPMOD=%DepMod \
463                 INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \
464                 INSTALL_FW_PATH=$KERNEL_INSTALL_DIR/lib/firmware/$KernelVer \
465                 KERNELRELEASE=$KernelVer
466
467         # You'd probabelly want to make it somewhat different
468         install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}
469         install Module.symvers $KERNEL_INSTALL_DIR%{_kernelsrcdir}/Module.symvers-dist
470
471         echo "CHECKING DEPENDENCIES FOR KERNEL MODULES"
472         if [ %DepMod = /sbin/depmod ]; then
473                 /sbin/depmod --basedir $KERNEL_INSTALL_DIR -ae -F $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer -r $KernelVer || :
474         fi
475         touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.dep
476         echo "KERNEL RELEASE $KernelVer DONE"
477 }
478
479 KERNEL_BUILD_DIR=`pwd`
480 echo "-%{_localversion}" > localversion
481
482 KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel"
483 rm -rf $KERNEL_INSTALL_DIR
484 BuildConfig
485 ln -sf %{defconfig} .config
486 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux
487 rm -f include/linux/autoconf.h
488 %{__make} %CrossOpts include/linux/autoconf.h
489 install include/linux/autoconf.h \
490         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux/autoconf-dist.h
491 install .config \
492         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/config-dist
493 BuildKernel
494 PreInstallKernel
495
496 %{__make} %CrossOpts include/linux/utsrelease.h
497 cp include/linux/utsrelease.h{,.save}
498 cp include/linux/version.h{,.save}
499 cp scripts/mkcompile_h{,.save}
500
501 %install
502 rm -rf $RPM_BUILD_ROOT
503 umask 022
504
505 export DEPMOD=%DepMod
506
507 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
508 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
509
510 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
511 if cp -al COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
512         l=l
513         rm -f $RPM_BUILD_ROOT/COPYING
514 fi
515
516 KERNEL_BUILD_DIR=`pwd`
517
518 cp -a$l $KERNEL_BUILD_DIR/build-done/kernel/* $RPM_BUILD_ROOT
519
520 if [ -e  $RPM_BUILD_ROOT/lib/modules/%{kernel_release} ] ; then
521         rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
522         ln -sf %{_kernelsrcdir} $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
523         install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{cluster,misc}
524 fi
525
526 find . -maxdepth 1 ! -name "build-done" ! -name "." -exec cp -a$l "{}" "$RPM_BUILD_ROOT%{_kernelsrcdir}/" ";"
527
528 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
529
530 %{__make} %CrossOpts mrproper archclean \
531         RCS_FIND_IGNORE='-name build-done -prune -o'
532
533 if [ -e $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/autoconf-dist.h ]; then
534         install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/autoconf-dist.h \
535                 $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
536         install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/config-dist \
537                 $RPM_BUILD_ROOT%{_kernelsrcdir}
538 fi
539
540 cp -Rdp$l $KERNEL_BUILD_DIR/include/linux/* \
541         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
542
543 %{__make} %CrossOpts mrproper
544 mv -f include/linux/utsrelease.h.save $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/utsrelease.h
545 cp include/linux/version.h{.save,}
546 cp scripts/mkcompile_h{.save,}
547 rm -rf include/linux/version.h.save
548 rm -rf scripts/mkcompile_h.save
549 install %{SOURCE2} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf.h
550 install %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
551
552 # collect module-build files and directories
553 perl %{SOURCE4} %{_kernelsrcdir} $KERNEL_BUILD_DIR
554
555 # ghosted initrd
556 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
557
558 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
559 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
560 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
561
562 # remove unnecessary dir with dead symlink
563 rm -rf $RPM_BUILD_ROOT/arch/i386
564
565 %clean
566 rm -rf $RPM_BUILD_ROOT
567
568 %preun
569 if [ -x /sbin/new-kernel-pkg ]; then
570         /sbin/new-kernel-pkg --remove %{kernel_release}
571 fi
572
573 %post
574 mv -f /boot/vmlinuz-%{alt_kernel} /boot/vmlinuz-%{alt_kernel}.old 2> /dev/null > /dev/null
575 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz-%{alt_kernel}
576 mv -f /boot/System.map-%{alt_kernel} /boot/System.map-%{alt_kernel}.old 2> /dev/null > /dev/null
577 ln -sf System.map-%{kernel_release} /boot/System.map-%{alt_kernel}
578
579 %depmod %{kernel_release}
580
581 /sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
582 mv -f %{initrd_dir}/initrd-%{alt_kernel} %{initrd_dir}/initrd-%{alt_kernel}.old 2> /dev/null > /dev/null
583 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd-%{alt_kernel}
584
585 if [ -x /sbin/new-kernel-pkg ]; then
586         if [ -f /etc/tld-release ]; then
587                 title=$(sed 's/^[0-9.]\+ //' < /etc/tld-release)
588         else
589                 title='TLD Linux'
590         fi
591
592         title="$title %{alt_kernel}"
593
594         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "$title"
595 elif [ -x /sbin/rc-boot ]; then
596         /sbin/rc-boot 1>&2 || :
597 fi
598
599 %post vmlinux
600 mv -f /boot/vmlinux-%{alt_kernel} /boot/vmlinux-%{alt_kernel}.old 2> /dev/null > /dev/null
601 ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
602
603 %post drm
604 %depmod %{kernel_release}
605
606 %postun drm
607 %depmod %{kernel_release}
608
609 %post pcmcia
610 %depmod %{kernel_release}
611
612 %postun pcmcia
613 %depmod %{kernel_release}
614
615 %post sound-alsa
616 %depmod %{kernel_release}
617
618 %postun sound-alsa
619 %depmod %{kernel_release}
620
621 %post sound-oss
622 %depmod %{kernel_release}
623
624 %postun sound-oss
625 %depmod %{kernel_release}
626
627 %post headers
628 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux-%{alt_kernel}
629
630 %postun headers
631 if [ "$1" = "0" ]; then
632         if [ -L %{_prefix}/src/linux-%{alt_kernel} ]; then
633                 if [ "$(readlink %{_prefix}/src/linux-%{alt_kernel})" = "linux-%{version}-%{alt_kernel}" ]; then
634                         rm -f %{_prefix}/src/linux-%{alt_kernel}
635                 fi
636         fi
637 fi
638
639 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
640 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
641 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
642
643 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
644 if [ "$1" = 0 ]; then
645         rm -f /lib/modules/%{kernel_release}/{build,source}
646 fi
647
648 %files
649 %defattr(644,root,root,755)
650 /boot/vmlinuz-%{kernel_release}
651 /boot/System.map-%{kernel_release}
652 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
653 /lib/firmware/%{kernel_release}
654 %dir /lib/modules/%{kernel_release}
655 %dir /lib/modules/%{kernel_release}/kernel
656 /lib/modules/%{kernel_release}/kernel/arch
657 /lib/modules/%{kernel_release}/kernel/crypto
658 /lib/modules/%{kernel_release}/kernel/drivers
659 %if %{have_drm}
660 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
661 %endif
662 /lib/modules/%{kernel_release}/kernel/fs
663
664 # this directory will be removed after disabling rcutorture mod. in 2.6.20.
665 /lib/modules/%{kernel_release}/kernel/kernel
666
667 /lib/modules/%{kernel_release}/kernel/lib
668 %ifarch %{x8664}
669 /lib/modules/%{kernel_release}/kernel/mm
670 %endif
671 /lib/modules/%{kernel_release}/kernel/net
672 %if %{have_sound}
673 %dir /lib/modules/%{kernel_release}/kernel/sound
674 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
675 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
676 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
677 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
678 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
679 %endif
680 %dir /lib/modules/%{kernel_release}/misc
681 %if %{with pcmcia}
682 %dir /lib/modules/%{kernel_release}/kernel/drivers/pcmcia
683 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
684 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
685 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
686 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
687 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
688 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
689 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
690 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
691 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
692 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
693 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
694 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
695 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
696 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
697 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
698 %exclude /lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
699 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
700 %endif
701 %ghost /lib/modules/%{kernel_release}/modules.*
702 # symlinks pointing to kernelsrcdir
703 %ghost /lib/modules/%{kernel_release}/build
704 %ghost /lib/modules/%{kernel_release}/source
705 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
706
707 %files vmlinux
708 %defattr(644,root,root,755)
709 /boot/vmlinux-%{kernel_release}
710
711 %if %{have_drm}
712 %files drm
713 %defattr(644,root,root,755)
714 /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
715 %endif
716
717 %if %{with pcmcia}
718 %files pcmcia
719 %defattr(644,root,root,755)
720 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
721 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
722 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
723 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
724 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
725 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
726 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
727 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
728 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
729 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
730 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
731 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
732 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
733 /lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
734 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
735 %endif
736
737 %if %{have_sound}
738 %files sound-alsa
739 %defattr(644,root,root,755)
740 /lib/modules/%{kernel_release}/kernel/sound
741 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
742 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
743 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
744 %if %{have_oss}
745 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
746 %endif
747 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
748 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
749 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
750 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
751
752 %if %{have_oss}
753 %files sound-oss
754 %defattr(644,root,root,755)
755 /lib/modules/%{kernel_release}/kernel/sound/oss
756 %endif
757 %endif
758
759 %files headers
760 %defattr(644,root,root,755)
761 %dir %{_kernelsrcdir}
762 %{_kernelsrcdir}/include
763 %dir %{_kernelsrcdir}/arch
764 %dir %{_kernelsrcdir}/arch/[!K]*
765 %{_kernelsrcdir}/arch/*/include
766 %dir %{_kernelsrcdir}/security
767 %dir %{_kernelsrcdir}/security/selinux
768 %{_kernelsrcdir}/security/selinux/include
769 %{_kernelsrcdir}/config-dist
770 %{_kernelsrcdir}/Module.symvers-dist
771
772 %files module-build -f aux_files
773 %defattr(644,root,root,755)
774 # symlinks pointint to kernelsrcdir
775 %dir /lib/modules/%{kernel_release}
776 /lib/modules/%{kernel_release}/build
777 %{_kernelsrcdir}/Kbuild
778 %{_kernelsrcdir}/localversion
779 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
780 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
781 %{_kernelsrcdir}/drivers/lguest/lg.h
782 %{_kernelsrcdir}/kernel/bounds.c
783 %dir %{_kernelsrcdir}/scripts
784 %dir %{_kernelsrcdir}/scripts/kconfig
785 %{_kernelsrcdir}/scripts/Kbuild.include
786 %{_kernelsrcdir}/scripts/Makefile*
787 %{_kernelsrcdir}/scripts/basic
788 %{_kernelsrcdir}/scripts/mkmakefile
789 %{_kernelsrcdir}/scripts/mod
790 %{_kernelsrcdir}/scripts/module-common.lds
791 %{_kernelsrcdir}/scripts/setlocalversion
792 %{_kernelsrcdir}/scripts/*.c
793 %{_kernelsrcdir}/scripts/*.sh
794 %{_kernelsrcdir}/scripts/kconfig/*
795 %{_kernelsrcdir}/scripts/mkcompile_h
796 %dir %{_kernelsrcdir}/scripts/selinux
797 %{_kernelsrcdir}/scripts/selinux/Makefile
798 %dir %{_kernelsrcdir}/scripts/selinux/mdp
799 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
800 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
801
802 %files doc
803 %defattr(644,root,root,755)
804 %dir %{_kernelsrcdir}
805 %{_kernelsrcdir}/Documentation
806
807 %if %{with source}
808 %files source -f aux_files_exc
809 %defattr(644,root,root,755)
810 %{_kernelsrcdir}/arch/*/[!Mk]*
811 %{_kernelsrcdir}/arch/*/kernel/[!M]*
812 %{_kernelsrcdir}/arch/ia64/kvm
813 %{_kernelsrcdir}/arch/powerpc/kvm
814 %{_kernelsrcdir}/arch/s390/kvm
815 %{_kernelsrcdir}/arch/x86/kvm
816 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
817 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
818 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
819 %{_kernelsrcdir}/block
820 %{_kernelsrcdir}/crypto
821 %{_kernelsrcdir}/drivers
822 %{_kernelsrcdir}/firmware
823 %{_kernelsrcdir}/fs
824 %{_kernelsrcdir}/init
825 %{_kernelsrcdir}/ipc
826 %{_kernelsrcdir}/kernel
827 %exclude %{_kernelsrcdir}/kernel/bounds.c
828 %{_kernelsrcdir}/lib
829 %{_kernelsrcdir}/mm
830 %{_kernelsrcdir}/net
831 %{_kernelsrcdir}/samples
832 %{_kernelsrcdir}/scripts/*
833 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
834 %exclude %{_kernelsrcdir}/scripts/Makefile*
835 %exclude %{_kernelsrcdir}/scripts/basic
836 %exclude %{_kernelsrcdir}/scripts/kconfig
837 %exclude %{_kernelsrcdir}/scripts/mkmakefile
838 %exclude %{_kernelsrcdir}/scripts/mod
839 %exclude %{_kernelsrcdir}/scripts/setlocalversion
840 %exclude %{_kernelsrcdir}/scripts/*.c
841 %exclude %{_kernelsrcdir}/scripts/*.sh
842 %{_kernelsrcdir}/sound
843 %{_kernelsrcdir}/security
844 %{_kernelsrcdir}/tools
845 %{_kernelsrcdir}/usr
846 %{_kernelsrcdir}/virt
847 %{_kernelsrcdir}/COPYING
848 %{_kernelsrcdir}/CREDITS
849 %{_kernelsrcdir}/MAINTAINERS
850 %{_kernelsrcdir}/README
851 %{_kernelsrcdir}/REPORTING-BUGS
852 %{_kernelsrcdir}/.mailmap
853 %endif