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