]> TLD Linux GIT Repositories - packages/kernel.git/blob - kernel-vanilla.spec
- updated to 4.5.1
[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         4.5
7 %define         postver         1
8 %define         rel             1
9
10 %define         alt_kernel      4.5-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/v4.x/linux-%{basever}.tar.xz
30 # Source0-md5:  a60d48eee08ec0536d5efb17ca819aef
31 %if "%{postver}" != "0"
32 Source1:        http://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
33 # Source1-md5:  1df9ff0283c1732ebbf7c55f340a121b
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 # version.h location changed in 3.7, but a lot of external modules don't know about it
473 # add a compatibility symlink
474 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
475
476 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
477 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
478
479 # collect module-build files and directories
480 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
481 fileoutdir=$(pwd)
482 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
483 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
484 cd -
485
486 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
487         ff=${f##%{objdir}/}
488         if [ -x "$f" ]; then
489                 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
490         else
491                 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
492         fi
493         echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
494         cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
495 done
496
497 %if %{with doc}
498 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
499 install -d $RPM_BUILD_ROOT%{_docdir}
500 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
501
502 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
503 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
504 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
505 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
506 %else
507 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
508 %endif
509
510 %clean
511 rm -rf $RPM_BUILD_ROOT
512
513 %preun
514 if [ -x /sbin/new-kernel-pkg ]; then
515         /sbin/new-kernel-pkg --remove %{kernel_release}
516 fi
517
518 %post
519 %depmod %{kernel_release}
520
521 %posttrans
522 # generate initramfs
523 if [ -x /sbin/dracut ]; then
524         /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
525 fi
526 # update boot loader
527 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
528         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then
529                 /sbin/update-grub >/dev/null
530         fi
531 fi
532
533 %post drm
534 %depmod %{kernel_release}
535
536 %postun drm
537 %depmod %{kernel_release}
538
539 %post pcmcia
540 %depmod %{kernel_release}
541
542 %postun pcmcia
543 %depmod %{kernel_release}
544
545 %post sound-alsa
546 %depmod %{kernel_release}
547
548 %postun sound-alsa
549 %depmod %{kernel_release}
550
551 %post sound-oss
552 %depmod %{kernel_release}
553
554 %postun sound-oss
555 %depmod %{kernel_release}
556
557 %post headers
558 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
559
560 %postun headers
561 if [ "$1" = "0" ]; then
562         if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
563                 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
564                         rm -f %{_prefix}/src/linux%{_alt_kernel}
565                 fi
566         fi
567 fi
568
569 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
570 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
571 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
572
573 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
574 if [ "$1" = 0 ]; then
575         rm -f /lib/modules/%{kernel_release}/{build,source}
576 fi
577
578 %files
579 %defattr(644,root,root,755)
580 /boot/vmlinuz-%{kernel_release}
581 /boot/System.map-%{kernel_release}
582 /boot/config-%{kernel_release}
583 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
584 /lib/firmware/%{kernel_release}
585
586 %dir /lib/modules/%{kernel_release}
587 %dir /lib/modules/%{kernel_release}/kernel
588 /lib/modules/%{kernel_release}/kernel/arch
589 /lib/modules/%{kernel_release}/kernel/crypto
590 /lib/modules/%{kernel_release}/kernel/drivers
591 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
592 /lib/modules/%{kernel_release}/kernel/fs
593 /lib/modules/%{kernel_release}/kernel/kernel
594 /lib/modules/%{kernel_release}/kernel/lib
595 /lib/modules/%{kernel_release}/kernel/net
596 /lib/modules/%{kernel_release}/kernel/mm
597 %dir /lib/modules/%{kernel_release}/kernel/sound
598 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
599 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
600 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
601 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
602 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
603 %dir /lib/modules/%{kernel_release}/misc
604 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
605 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
606 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
607 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
608 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
609 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
610 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
611 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
612 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
613 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
614 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
615 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
616 /lib/modules/%{kernel_release}/kernel/security
617 /lib/modules/%{kernel_release}/kernel/virt
618
619 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
620
621 # provided by build
622 /lib/modules/%{kernel_release}/modules.order
623 /lib/modules/%{kernel_release}/modules.builtin*
624
625 # rest modules.* are ghost (regenerated by post depmod -a invocation)
626 %ghost /lib/modules/%{kernel_release}/modules.alias
627 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
628 %ghost /lib/modules/%{kernel_release}/modules.dep
629 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
630 %ghost /lib/modules/%{kernel_release}/modules.devname
631 %ghost /lib/modules/%{kernel_release}/modules.softdep
632 %ghost /lib/modules/%{kernel_release}/modules.symbols
633 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
634
635 # symlinks pointing to kernelsrcdir
636 %ghost /lib/modules/%{kernel_release}/build
637 %ghost /lib/modules/%{kernel_release}/source
638
639 %files vmlinux
640 %defattr(644,root,root,755)
641 /boot/vmlinux-%{kernel_release}
642
643 %files drm
644 %defattr(644,root,root,755)
645 /lib/modules/%{kernel_release}/kernel/drivers/gpu
646
647 %files pcmcia
648 %defattr(644,root,root,755)
649 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
650 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
651 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
652 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
653 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
654 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
655 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
656 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
657 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
658 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
659 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
660 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
661
662 %files sound-alsa
663 %defattr(644,root,root,755)
664 /lib/modules/%{kernel_release}/kernel/sound
665 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
666 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
667 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
668 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
669 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
670 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
671 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
672
673 %files sound-oss
674 %defattr(644,root,root,755)
675 /lib/modules/%{kernel_release}/kernel/sound/oss
676
677 %files headers -f files.headers_exclude_kbuild
678 %defattr(644,root,root,755)
679 %dir %{_kernelsrcdir}
680 %{_kernelsrcdir}/include
681 %dir %{_kernelsrcdir}/arch
682 %dir %{_kernelsrcdir}/arch/[!K]*
683 %{_kernelsrcdir}/arch/*/include
684 %dir %{_kernelsrcdir}/security
685 %dir %{_kernelsrcdir}/security/selinux
686 %{_kernelsrcdir}/security/selinux/include
687 %{_kernelsrcdir}/.config
688 %{_kernelsrcdir}/Module.symvers
689
690 %files module-build -f files.mb_include_modulebuild_and_dirs
691 %defattr(644,root,root,755)
692 %exclude %dir %{_kernelsrcdir}/arch/um
693 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
694 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
695 %{_kernelsrcdir}/drivers/lguest/lg.h
696 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
697 %{_kernelsrcdir}/kernel/bounds.c
698 %{_kernelsrcdir}/scripts/basic/*.c
699 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
700 %{_kernelsrcdir}/scripts/kconfig/*.in
701 %{_kernelsrcdir}/scripts/kconfig/*_shipped
702 %{_kernelsrcdir}/scripts/kconfig/*.pl
703 %{_kernelsrcdir}/scripts/kconfig/*.glade
704 %{_kernelsrcdir}/scripts/kconfig/*.gperf
705 %{_kernelsrcdir}/scripts/kconfig/*.cc
706 %{_kernelsrcdir}/scripts/kconfig/*.y
707 %{_kernelsrcdir}/scripts/kconfig/*.l
708 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
709 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
710 %{_kernelsrcdir}/scripts/kconfig/l*.h
711 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
712 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
713 %{_kernelsrcdir}/scripts/kconfig/lxdialog
714 %{_kernelsrcdir}/scripts/mod/*.c
715 %{_kernelsrcdir}/scripts/mod/modpost.h
716 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
717 %{_kernelsrcdir}/scripts/mkmakefile
718 %{_kernelsrcdir}/scripts/module-common.lds
719 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
720 %{_kernelsrcdir}/scripts/*.c
721 %{_kernelsrcdir}/scripts/*.h
722 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
723 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
724 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
725 %exclude %dir %{_kernelsrcdir}/security
726 %exclude %dir %{_kernelsrcdir}/security/selinux
727
728 %if %{with doc}
729 %files doc
730 %defattr(644,root,root,755)
731 %dir %{_docdir}/%{name}-%{version}
732
733 %{_docdir}/%{name}-%{version}/[!jkz]*
734 %{_docdir}/%{name}-%{version}/[jkz]*.txt
735 %{_docdir}/%{name}-%{version}/kbuild
736 %{_docdir}/%{name}-%{version}/kdump
737 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
738 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
739 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
740 %endif
741
742 %if %{with source}
743 %files source -f files.source_exclude_modulebuild_and_dirs
744 %defattr(644,root,root,755)
745 %{_kernelsrcdir}/arch/*/[!Mik]*
746 %{_kernelsrcdir}/arch/*/kernel/[!M]*
747 %{_kernelsrcdir}/arch/ia64/install.sh
748 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
749 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
750 %{_kernelsrcdir}/arch/m68k/install.sh
751 %{_kernelsrcdir}/arch/parisc/install.sh
752 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
753 %{_kernelsrcdir}/arch/arm/kvm
754 %{_kernelsrcdir}/arch/arm64/kvm
755 %{_kernelsrcdir}/arch/mips/kvm
756 %{_kernelsrcdir}/arch/powerpc/kvm
757 %{_kernelsrcdir}/arch/s390/kvm
758 %{_kernelsrcdir}/arch/x86/kvm
759 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
760 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
761 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
762 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
763 %{_kernelsrcdir}/block
764 %{_kernelsrcdir}/certs
765 %{_kernelsrcdir}/crypto
766 %{_kernelsrcdir}/drivers
767 %{_kernelsrcdir}/firmware
768 %{_kernelsrcdir}/fs
769 %{_kernelsrcdir}/init
770 %{_kernelsrcdir}/ipc
771 %{_kernelsrcdir}/kernel
772 %exclude %{_kernelsrcdir}/kernel/bounds.c
773 %{_kernelsrcdir}/lib
774 %{_kernelsrcdir}/mm
775 %{_kernelsrcdir}/net
776 %{_kernelsrcdir}/virt
777 %{_kernelsrcdir}/samples
778 %{_kernelsrcdir}/scripts/*
779 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
780 %exclude %{_kernelsrcdir}/scripts/Makefile*
781 %exclude %{_kernelsrcdir}/scripts/basic
782 %exclude %{_kernelsrcdir}/scripts/kconfig
783 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
784 %exclude %{_kernelsrcdir}/scripts/mkmakefile
785 %exclude %{_kernelsrcdir}/scripts/mod
786 %exclude %{_kernelsrcdir}/scripts/module-common.lds
787 %exclude %{_kernelsrcdir}/scripts/setlocalversion
788 %exclude %{_kernelsrcdir}/scripts/*.c
789 %exclude %{_kernelsrcdir}/scripts/*.h
790 %exclude %{_kernelsrcdir}/scripts/*.sh
791 %exclude %dir %{_kernelsrcdir}/scripts/selinux
792 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
793 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
794 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
795 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
796 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
797 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
798 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
799 %{_kernelsrcdir}/sound
800 %{_kernelsrcdir}/security
801 %exclude %{_kernelsrcdir}/security/selinux/include
802 %{_kernelsrcdir}/tools/*
803 %{_kernelsrcdir}/usr
804 %{_kernelsrcdir}/COPYING
805 %{_kernelsrcdir}/CREDITS
806 %{_kernelsrcdir}/MAINTAINERS
807 %{_kernelsrcdir}/README
808 %{_kernelsrcdir}/REPORTING-BUGS
809 %endif