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