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