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