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