]> git.pld-linux.org Git - packages/kernel.git/blob - kernel.spec
- update vserver patch; kernel builds
[packages/kernel.git] / kernel.spec
1 #
2 # NOTE:
3 # the following bcond combos will not work
4 # - without_vserver and any of the following
5 #   - with_grsecurity
6 #
7 # LATEST VERSION CHECKER:
8 # # curl -s http://www.kernel.org/kdist/finger_banner
9 #
10 # TODO:
11 # - benchmark NO_HZ & HZ=1000 vs HZ=300 on i686
12 # - IPv4 source address selection for multihomed vservers is completely broken
13 #       meaning routing table is ignored except for default
14 #
15 # HOWTO update configuration files:
16 # - run build
17 # - add new options to proper config (kernel-multiarch.config, kernel-x86.config, kernel-powerpc.config etc)
18 # - sort configuration files using:
19 #   ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version}/ -a x86 kernel-x86.config
20 #   ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version} kernel-multiarch.config
21 #
22 # Conditional build:
23 %bcond_without  source          # don't build kernel-source package
24 %bcond_without  doc                     # don't build kernel-doc package
25 %bcond_without  pcmcia          # don't build pcmcia
26
27 %bcond_with     verbose         # verbose build (V=1)
28 %bcond_with     reiser4         # support for reiser4 fs (experimental)
29
30 %bcond_with     grsecurity      # don't build grsecurity nor pax at all
31 %bcond_with     pax             # build pax and grsecurity (ie. grsecurity && pax)
32
33 %bcond_with     fbcondecor      # build fbcondecor (disable FB_TILEBLITTING and affected fb modules)
34 %bcond_without  pae             # build PAE (HIGHMEM64G) support on 32bit i686 athlon pentium3 pentium4
35 %bcond_with     nfsroot         # build with root on NFS support
36
37 %bcond_without  imq             # imq support
38 %bcond_without  esfq            # esfq support
39 %bcond_without  ipv6            # ipv6 support
40
41 %bcond_without  vserver         # support for VServer (enabled by default)
42
43 %bcond_with     vanilla         # don't include any patches
44 %bcond_with     rescuecd        # build kernel for our rescue
45 %bcond_with     myown           # build with your own config (kernel-myown.config)
46
47 %{?debug:%define with_verbose 1}
48
49 %if %{with vanilla}
50 %unglobal      with_grsecurity
51 %endif
52
53 %if %{without grsecurity}
54 %unglobal       with_pax
55 %endif
56
57 %if %{with pax}
58 %define         with_grsecurity         1
59 %define         with_pax                1
60 %endif
61
62 %define         have_drm        1
63 %define         have_oss        1
64 %define         have_sound      1
65 %define         have_pcmcia     1
66
67 %if %{with rescuecd}
68 %unglobal       with_grsecurity
69 %unglobal       with_pax
70 %unglobal       with_vserver
71 %define         have_drm        0
72 %define         have_sound      0
73 %endif
74
75 %if %{with myown}
76 %define         have_drm        0
77 %define         have_oss        0
78 %define         have_sound      0
79 %define         have_pcmcia     0
80 %endif
81
82 %ifarch sparc sparc64
83 %unglobal       with_pcmcia
84 %define         have_drm        0
85 %define         have_oss        0
86 %endif
87
88 %if %{without pcmcia}
89 %define         have_pcmcia     0
90 %endif
91
92 %define         rel             0.1
93 %define         basever         3.3
94 %define         postver         .0
95
96 # __alt_kernel is list of features, empty string if none set
97 # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
98 # alt_kernel should be defined if __alt_kernel has non-empty value (for %{?alt_kernel:foo} constructs)
99 %define         __alt_kernel    %{?with_pax:pax}%{?with_grsecurity:grsecurity}
100
101 %if "%{__alt_kernel}" != ""
102 %define         alt_kernel      %{__alt_kernel}
103 %endif
104
105 # these override whatever name was picked from bconds
106 %if %{with myown} && "%{_alt_kernel}" == ""
107 %define         alt_kernel      myown
108 %endif
109 %if %{with rescuecd}
110 %define         alt_kernel      rescuecd
111 %endif
112 %if %{with vanilla}
113 %define         alt_kernel      vanilla
114 %endif
115
116 # kernel release (used in filesystem and eventually in uname -r)
117 # modules will be looked from /lib/modules/%{kernel_release}
118 # localversion is just that without version for "> localversion"
119 %define         localversion    %{rel}
120 %define         kernel_release  %{version}%{?alt_kernel:.%{alt_kernel}}-%{localversion}
121
122 Summary:        The Linux kernel (the core of the Linux operating system)
123 Summary(de.UTF-8):      Der Linux-Kernel (Kern des Linux-Betriebssystems)
124 Summary(et.UTF-8):      Linuxi kernel (ehk operatsioonisüsteemi tuum)
125 Summary(fr.UTF-8):      Le Kernel-Linux (La partie centrale du systeme)
126 Summary(pl.UTF-8):      JÄ…dro Linuksa
127 Name:           kernel%{_alt_kernel}
128 Version:        %{basever}%{postver}
129 Release:        %{rel}
130 Epoch:          3
131 License:        GPL v2
132 Group:          Base/Kernel
133 Source0:        http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
134 # Source0-md5:  7133f5a2086a7d7ef97abac610c094f5
135 %if "%{postver}" != ".0"
136 Patch0:         http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
137 # Patch0-md5:   a4c2531ee383dfd429e105816b4d2ccc
138 %endif
139
140 Source3:        kernel-autoconf.h
141 Source4:        kernel-config.h
142 Source6:        kernel-config.awk
143 Source7:        kernel-module-build.pl
144 Source8:        kernel-track-config-change.awk
145 # not used by kernel.spec, but it's good to have it in SOURCES
146 Source9:        kernel-config-sort.pl
147 Source10:       kernel.make
148
149 Source20:       kernel-multiarch.config
150 Source21:       kernel-x86.config
151 Source22:       kernel-sparc.config
152 Source23:       kernel-alpha.config
153 Source24:       kernel-powerpc.config
154 Source25:       kernel-ia64.config
155
156 Source41:       kernel-patches.config
157 Source43:       kernel-vserver.config
158 Source45:       kernel-grsec.config
159
160 Source49:       kernel-pax.config
161 Source50:       kernel-no-pax.config
162 Source55:       kernel-imq.config
163 Source56:       kernel-reiser4.config
164
165 Source58:       kernel-inittmpfs.config
166
167 # http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
168 Patch3:         kernel-fbcondecor.patch
169 Patch4:         kernel-fbcon-margins.patch
170 Patch5:         linux-wistron-amilo8210.patch
171
172 # netfilter related stuff mostly based on patch-o-matic-ng
173 # snapshot 20070806 with some fixes. Some modules
174 # were ported to nf_conntrack.
175
176 Patch10:        kernel-pom-ng-IPV4OPTSSTRIP.patch
177
178 Patch16:        kernel-pom-ng-mms-conntrack-nat.patch
179 Patch22:        kernel-pom-ng-rsh.patch
180 Patch23:        kernel-pom-ng-rpc.patch
181
182 # http://ftp.linux-vserver.org/pub/people/dhozac/p/k/delta-owner-xid-feat02.diff
183 Patch37:        kernel-owner-xid.patch
184
185 # based on kernel-2.6.25-layer7-2.20.patch from
186 # http://switch.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.20.tar.gz
187 Patch40:        kernel-layer7.patch
188
189 ### End netfilter
190
191 # http://zph.bratcheda.org/linux-2.6.26.3-zph.patch
192 Patch49:        kernel-zph.patch
193
194 # based on http://www.linuximq.net/patchs/patch-imqmq-3.1.diff.bz2
195 Patch50:        kernel-imq.patch
196
197 # http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/reiser4-for-2.6.35.patch.bz2
198 Patch51:        kernel-reiser4.patch
199
200 # http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
201 Patch53:        kernel-esfq.patch
202
203 # by Baggins request:
204 # derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
205 Patch55:        kernel-atm-vbr.patch
206 Patch56:        kernel-atmdd.patch
207
208 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
209 Patch59:        kernel-rndis_host-wm5.patch
210
211 # adds some ids for hostap suported cards and monitor_enable from/for aircrack-ng
212 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
213 Patch85:        kernel-hostap.patch
214
215 # http://vserver.13thfloor.at/Experimental/patch-3.3-vs2.3.3.1.diff
216 Patch100:       kernel-vserver-2.3.patch
217 Patch101:       kernel-vserver-fixes.patch
218
219 # http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.11_for_3.2.2.diff.gz
220 Patch140:       kernel-unionfs.patch
221
222 # git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git, read README
223 # Patch creation:
224 # git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git
225 # cd aufs3-standalone
226 # git checkout -b aufs3.2 origin/aufs3.2
227 # cat aufs3-kbuild.patch aufs3-base.patch aufs3-standalone.patch > ~/rpm/packages/kernel/kernel-aufs3.patch
228 # mkdir linux
229 # cp -a Documentation fs include linux
230 # diff -urN /usr/share/empty linux >> ~/rpm/packages/kernel/kernel-aufs3.patch
231 #
232 Patch145:       kernel-aufs3.patch
233 Patch146:       kernel-aufs2-unionfs.patch
234 Patch147:       kernel-aufs2-no-const-grsec.patch
235 Patch148:       kernel-aufs2-reiser4.patch
236
237 # Show normal colors in menuconfig with ncurses ABI 6
238 Patch250:       kernel-fix_256colors_menuconfig.patch
239
240 # https://patchwork.kernel.org/patch/236261/
241 Patch400:       kernel-virtio-gl-accel.patch
242
243 Patch2000:      kernel-small_fixes.patch
244 Patch2001:      kernel-pwc-uncompress.patch
245 Patch2003:      kernel-regressions.patch
246
247 # 0001-AppArmor-compatibility-patch-for-v5-network-controll.patch
248 # 0002-AppArmor-compatibility-patch-for-v5-interface.patch
249 # from http://kernel.org/pub/linux/security/apparmor/apparmor-2.6.36-patches.tgz
250 Patch5000:      kernel-apparmor.patch
251
252 # for rescuecd
253 # based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
254 Patch7000:      kernel-inittmpfs.patch
255
256 # based on http://grsecurity.net/~spender/grsecurity-2.2.2-3.1.1-201111181902.patch
257 # NOTE: put raw upstream patches on kernel-grsec_full.patch:GRSECURITY_RAW for reference
258 #       (since upstream deletes older patches)
259 # NOTE: mirror of old grsecurity patches:
260 #       https://github.com/slashbeast/grsecurity-scrape/tree/master/test
261 Patch9999:      kernel-grsec_full.patch
262 Patch10000:     kernel-grsec-caps.patch
263 Patch10001:     kernel-grsec-common.patch
264 Patch10002:     kernel-grsec_fixes.patch
265
266 # Do not remove this line, please. It is easier for me to uncomment two lines, then patch
267 # kernel.spec every time.
268 #Patch50000:    kernel-usb_reset.patch
269
270 URL:            http://www.kernel.org/
271 BuildRequires:  binutils >= 3:2.18
272 %ifarch sparc sparc64
273 BuildRequires:  elftoaout
274 %endif
275 %ifarch ppc
276 BuildRequires:  uboot-mkimage
277 %endif
278 BuildRequires:  /sbin/depmod
279 BuildRequires:  gcc >= 5:3.2
280 BuildRequires:  xz >= 1:4.999.7
281 AutoReqProv:    no
282 BuildRequires:  hostname
283 BuildRequires:  virtual(module-tools)
284 BuildRequires:  perl-base
285 BuildRequires:  rpm-build >= 4.5-24
286 BuildRequires:  rpmbuild(macros) >= 1.217
287 Requires(post): coreutils
288 Requires(post): geninitrd >= 10000-3
289 Requires(post): virtual(module-tools)
290 Requires:       /sbin/depmod
291 Requires:       coreutils
292 Requires:       geninitrd >= 10000-3
293 Requires:       virtual(module-tools)
294 %if %{with pae}
295 %ifarch i686 athlon pentium3 pentium4
296 Requires:       cpuinfo(pae)
297 %endif
298 %endif
299 Suggests:       keyutils
300 Suggests:       linux-firmware
301 Provides:       %{name}(netfilter) = 20070806
302 Provides:       %{name}(vermagic) = %{kernel_release}
303 Obsoletes:      kernel%{_alt_kernel}-char-lirc-ene0100
304 Obsoletes:      kernel%{_alt_kernel}-char-lirc-it87
305 Obsoletes:      kernel%{_alt_kernel}-char-lirc-ite8709
306 Obsoletes:      kernel%{_alt_kernel}-char-lirc-mceusb
307 Obsoletes:      kernel%{_alt_kernel}-char-lirc-streamzap
308 Obsoletes:      kernel%{_alt_kernel}-isdn-mISDN
309 Obsoletes:      kernel-firmware
310 Obsoletes:      kernel-misc-acer_acpi
311 Obsoletes:      kernel-misc-fuse
312 Obsoletes:      kernel-misc-uvc
313 Obsoletes:      kernel-modules
314 Obsoletes:      kernel-net-ar81
315 Obsoletes:      kernel-net-hostap
316 Obsoletes:      kernel-net-ieee80211
317 Obsoletes:      kernel-net-ipp2p
318 Obsoletes:      kernel-net-rt61
319 Obsoletes:      kernel-smp
320 Conflicts:      e2fsprogs < 1.29
321 Conflicts:      isdn4k-utils < 3.1pre1
322 Conflicts:      jfsutils < 1.1.3
323 Conflicts:      lvm2 < 2.02.40
324 Conflicts:      module-init-tools < 3.16
325 Conflicts:      nfs-utils < 1.0.5
326 Conflicts:      oprofile < 0.9
327 Conflicts:      ppp < 1:2.4.0
328 Conflicts:      procps < 3.2.0
329 Conflicts:      quota-tools < 3.09
330 %{?with_reiserfs4:Conflicts:    reiser4progs < 1.0.0}
331 Conflicts:      reiserfsprogs < 3.6.3
332 Conflicts:      rpm < 4.4.2-0.2
333 Conflicts:      udev < 1:081
334 Conflicts:      util-linux < 2.10o
335 Conflicts:      util-vserver < 0.30.216
336 Conflicts:      xfsprogs < 2.6.0
337 ExclusiveArch:  %{ix86} %{x8664} alpha arm ia64 ppc ppc64 sparc sparc64
338 ExclusiveOS:    Linux
339 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
340
341 %ifarch %{ix86} %{x8664}
342 %define         target_arch_dir         x86
343 %endif
344 %ifarch ppc ppc64
345 %define         target_arch_dir         powerpc
346 %endif
347 %ifarch sparc sparc64
348 %define         target_arch_dir         sparc
349 %endif
350 %ifnarch %{ix86} %{x8664} ppc ppc64 sparc sparc64
351 %define         target_arch_dir         %{_target_base_arch}
352 %endif
353
354 %define         defconfig       arch/%{target_arch_dir}/defconfig
355
356 # No ELF objects there to strip (skips processing 27k files)
357 %define         _noautostrip    \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
358 %define         _noautochrpath  .*%{_kernelsrcdir}/.*
359 %define         _enable_debug_packages  0
360
361 %ifarch ia64
362 %define         initrd_dir      /boot/efi
363 %else
364 %define         initrd_dir      /boot
365 %endif
366
367 %define         topdir          %{_builddir}/%{name}-%{version}
368 %define         srcdir          %{topdir}/linux-%{basever}
369 %define         objdir          %{topdir}/%{targetobj}
370 %define         targetobj       %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
371
372 %define         _kernelsrcdir   /usr/src/linux%{_alt_kernel}-%{version}
373
374 %if "%{_target_base_arch}" != "%{_arch}"
375         %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
376         %define DepMod /bin/true
377
378         %if "%{_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
379         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
380         %define DepMod /sbin/depmod
381         %endif
382
383         %if "%{_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
384         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
385         %define DepMod /sbin/depmod
386         %endif
387
388         %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
389         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
390         %define DepMod /sbin/depmod
391         %endif
392
393         %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
394         %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
395         %endif
396 %else
397         %ifarch ppc ppc64
398         %define CrossOpts ARCH=powerpc CC="%{__cc}"
399         %else
400         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
401         %endif
402         %define DepMod /sbin/depmod
403 %endif
404 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
405
406 %define __features \
407 %{?with_grsecurity:Grsecurity support - enabled}\
408 %{?with_pax:PaX support - enabled}\
409 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
410 %{?with_nfsroot:Root on NFS - enabled}\
411
412 %define Features %(echo "%{__features}" | sed '/^$/d')
413
414 %description
415 This package contains the Linux kernel that is used to boot and run
416 your system. It contains few device drivers for specific hardware.
417 Most hardware is instead supported by modules loaded after booting.
418
419 %{Features}
420
421 %description -l de.UTF-8
422 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
423 Linux-Betriebssystems. Der Kernel ist für grundliegende
424 Systemfunktionen verantwortlich: Speicherreservierung,
425 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
426
427 %{Features}
428
429 %description -l fr.UTF-8
430 Le package kernel contient le kernel linux (vmlinuz), la partie
431 centrale d'un système d'exploitation Linux. Le noyau traite les
432 fonctions basiques d'un système d'exploitation: allocation mémoire,
433 allocation de process, entrée/sortie de peripheriques, etc.
434
435 %{Features}
436
437 %description -l pl.UTF-8
438 Pakiet zawiera jÄ…dro Linuksa niezbÄ™dne do prawidÅ‚owego dziaÅ‚ania
439 Twojego komputera. Zawiera w sobie sterowniki do sprzÄ™tu znajdujÄ…cego
440 siÄ™ w komputerze, takiego jak sterowniki dysków itp.
441
442 %{Features}
443
444 %package vmlinux
445 Summary:        vmlinux - uncompressed kernel image
446 Summary(de.UTF-8):      vmlinux - dekompressiertes Kernel Bild
447 Summary(pl.UTF-8):      vmlinux - rozpakowany obraz jÄ…dra
448 Group:          Base/Kernel
449 Obsoletes:      kernel-smp-vmlinux
450
451 %description vmlinux
452 vmlinux - uncompressed kernel image.
453
454 %description vmlinux -l de.UTF-8
455 vmlinux - dekompressiertes Kernel Bild.
456
457 %description vmlinux -l pl.UTF-8
458 vmlinux - rozpakowany obraz jÄ…dra.
459
460 %package drm
461 Summary:        DRM kernel modules
462 Summary(de.UTF-8):      DRM Kernel Treiber
463 Summary(pl.UTF-8):      Sterowniki DRM
464 Group:          Base/Kernel
465 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
466 Requires:       %{name} = %{epoch}:%{version}-%{release}
467 Obsoletes:      kernel-smp-drm
468 AutoReqProv:    no
469
470 %description drm
471 DRM kernel modules.
472
473 %description drm -l de.UTF-8
474 DRM Kernel Treiber.
475
476 %description drm -l pl.UTF-8
477 Sterowniki DRM.
478
479 %package pcmcia
480 Summary:        PCMCIA modules
481 Summary(de.UTF-8):      PCMCIA Module
482 Summary(pl.UTF-8):      ModuÅ‚y PCMCIA
483 Group:          Base/Kernel
484 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
485 Requires:       %{name} = %{epoch}:%{version}-%{release}
486 Obsoletes:      kernel-smp-pcmcia
487 Conflicts:      pcmcia-cs < 3.1.21
488 Conflicts:      pcmciautils < 004
489 AutoReqProv:    no
490
491 %description pcmcia
492 PCMCIA modules.
493
494 %description pcmcia -l de.UTF-8
495 PCMCIA Module.
496
497 %description pcmcia -l pl.UTF-8
498 ModuÅ‚y PCMCIA.
499
500 %package sound-alsa
501 Summary:        ALSA kernel modules
502 Summary(de.UTF-8):      ALSA Kernel Module
503 Summary(pl.UTF-8):      Sterowniki dźwiÄ™ku ALSA
504 Group:          Base/Kernel
505 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
506 Requires:       %{name} = %{epoch}:%{version}-%{release}
507 Obsoletes:      kernel-smp-sound-alsa
508 AutoReqProv:    no
509
510 %description sound-alsa
511 ALSA (Advanced Linux Sound Architecture) sound drivers.
512
513 %description sound-alsa -l de.UTF-8
514 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
515
516 %description sound-alsa -l pl.UTF-8
517 Sterowniki dźwiÄ™ku ALSA (Advanced Linux Sound Architecture).
518
519 %package sound-oss
520 Summary:        OSS kernel modules
521 Summary(de.UTF-8):      OSS Kernel Module
522 Summary(pl.UTF-8):      Sterowniki dźwiÄ™ku OSS
523 Group:          Base/Kernel
524 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
525 Requires:       %{name} = %{epoch}:%{version}-%{release}
526 Obsoletes:      kernel-smp-sound-oss
527 AutoReqProv:    no
528
529 %description sound-oss
530 OSS (Open Sound System) drivers.
531
532 %description sound-oss -l de.UTF-8
533 OSS (Open Sound System) Treiber.
534
535 %description sound-oss -l pl.UTF-8
536 Sterowniki dźwiÄ™ku OSS (Open Sound System).
537
538 %package headers
539 Summary:        Header files for the Linux kernel
540 Summary(de.UTF-8):      Header Dateien für den Linux-Kernel
541 Summary(pl.UTF-8):      Pliki nagłówkowe jÄ…dra Linuksa
542 Group:          Development/Building
543 Provides:       %{name}-headers(netfilter) = 20070806
544 AutoReqProv:    no
545
546 %description headers
547 These are the C header files for the Linux kernel, which define
548 structures and constants that are needed when rebuilding the kernel or
549 building kernel modules.
550
551 %description headers -l de.UTF-8
552 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
553 Strukturen und Konstante beinhalten, die beim rekompilieren des
554 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
555
556 %description headers -l pl.UTF-8
557 Pakiet zawiera pliki nagłówkowe jÄ…dra, niezbÄ™dne do rekompilacji jÄ…dra
558 oraz budowania modułów jÄ…dra.
559
560 %package module-build
561 Summary:        Development files for building kernel modules
562 Summary(de.UTF-8):      Development Dateien die beim Kernel Modul kompilationen gebraucht werden
563 Summary(pl.UTF-8):      Pliki sÅ‚użące do budowania modułów jÄ…dra
564 Group:          Development/Building
565 Requires:       %{name}-headers = %{epoch}:%{version}-%{release}
566 Conflicts:      rpmbuild(macros) < 1.642
567 AutoReqProv:    no
568
569 %description module-build
570 Development files from kernel source tree needed to build Linux kernel
571 modules from external packages.
572
573 %description module-build -l de.UTF-8
574 Development Dateien des Linux-Kernels die beim kompilieren externer
575 Kernel Module gebraucht werden.
576
577 %description module-build -l pl.UTF-8
578 Pliki ze drzewa ÅºródeÅ‚ jÄ…dra potrzebne do budowania modułów jÄ…dra
579 Linuksa z zewnÄ™trznych pakietów.
580
581 %package source
582 Summary:        Kernel source tree
583 Summary(de.UTF-8):      Der Kernel Quelltext
584 Summary(pl.UTF-8):      Kod ÅºródÅ‚owy jÄ…dra Linuksa
585 Group:          Development/Building
586 Requires:       %{name}-module-build = %{epoch}:%{version}-%{release}
587 AutoReqProv:    no
588
589 %description source
590 This is the source code for the Linux kernel. You can build a custom
591 kernel that is better tuned to your particular hardware.
592
593 %description source -l de.UTF-8
594 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
595 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
596 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
597 im Kernel-Source definiert sind. Die Source-Dateien können auch
598 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
599 Hardware ausgerichtet ist.
600
601 %description source -l fr.UTF-8
602 Le package pour le kernel-source contient le code source pour le noyau
603 linux. Ces sources sont nécessaires pour compiler la plupart des
604 programmes C, car il dépend de constantes définies dans le code
605 source. Les sources peuvent Ãªtre aussi utilisée pour compiler un noyau
606 personnalisé pour avoir de meilleures performances sur des matériels
607 particuliers.
608
609 %description source -l pl.UTF-8
610 Pakiet zawiera kod ÅºródÅ‚owy jÄ…dra systemu.
611
612 %package doc
613 Summary:        Kernel documentation
614 Summary(de.UTF-8):      Kernel Dokumentation
615 Summary(pl.UTF-8):      Dokumentacja do jÄ…dra Linuksa
616 Group:          Documentation
617 AutoReqProv:    no
618
619 %description doc
620 This is the documentation for the Linux kernel, as found in
621 /usr/src/linux/Documentation directory.
622
623 %description doc -l de.UTF-8
624 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
625 Verzeichniss vorgefunden werden kann.
626
627 %description doc -l pl.UTF-8
628 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
629 /usr/src/linux/Documentation.
630
631 %prep
632 %setup -qc
633 ln -s %{SOURCE7} kernel-module-build.pl
634 ln -s %{SOURCE10} Makefile
635 cd linux-%{basever}
636
637 # hack against warning in pax/grsec
638 sed -i 's/-Werror//' arch/alpha/kernel/Makefile
639
640
641 %if "%{postver}" != ".0"
642 %patch0 -p1
643 %endif
644
645 %if %{without vanilla}
646
647 %if %{with fbcondecor}
648 %patch3 -p1
649 %endif
650 %patch4 -p1
651 %patch5 -p1
652
653 ## netfilter
654 #
655
656 # kernel-pom-ng-IPV4OPTSSTRIP.patch
657 %patch10 -p1
658
659 # kernel-pom-ng-mms-conntrack-nat.patch
660 %patch16 -p1
661
662 # kernel-pom-ng-rsh.patch
663 %patch22 -p1
664
665 # kernel-pom-ng-rpc.patch
666 %patch23 -p1
667
668 # kernel-owner-xid.patch
669 %if %{with vserver}
670 %patch37 -p1
671 %endif
672
673 # kernel-layer7.patch
674 %patch40 -p1
675
676 ##
677 # end of netfilter
678
679 # zph
680 %patch49 -p1
681
682 %if %{with imq}
683 %patch50 -p1
684 %endif
685
686 # reiser4
687 %if %{with reiser4}
688 %patch51 -p1
689 %endif
690
691 # esfq
692 %if %{with esfq}
693 %patch53 -p1
694 %endif
695
696 %patch55 -p1
697 %patch56 -p1
698
699 # kernel-rndis_host-wm5.patch
700 %patch59 -p1
701
702 # hostap enhancements from/for aircrack-ng
703 %patch85 -p1
704
705 # vserver
706 %if %{with vserver}
707 %patch100 -p1
708 %patch101 -p1
709 %endif
710
711 # aufs2
712 %if %{with reiser4}
713 %patch148 -p1
714 %endif
715 %patch145 -p1
716 %patch146 -p1
717
718 # unionfs
719 %patch140 -p1
720
721 %if %{with rescuecd}
722 %patch7000 -p1
723 %endif
724
725 # grsecurity & pax stuff
726 #
727 %if %{with grsecurity}
728 exit 0
729 %patch9999 -p1
730 # aufs needs this
731 %patch147 -p1
732 %{?with_vserver:%patch10000 -p1}
733 %{?with_vserver:%patch10001 -p1}
734 %{?with_vserver:%patch10002 -p1}
735 %endif
736 #
737 # end of grsecurity & pax stuff
738
739 # apparmor
740 %patch5000 -p1
741
742 %patch250 -p1
743
744 # virtio-gl
745 %patch400 -p1
746
747 %endif # vanilla
748
749 # Small fixes:
750 %patch2000 -p1
751 %patch2001 -p1
752 #%patch2003 -p1
753
754 # Do not remove this, please!
755 #%patch50000 -p1
756
757 # Fix EXTRAVERSION in main Makefile
758 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
759
760 # cleanup backups after patching
761 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
762
763 %build
764 install -d %{objdir}
765 cat > %{targetobj}.mk <<'EOF'
766 # generated by %{name}.spec
767 KERNELSRC               := %{srcdir}
768 KERNELOUTPUT    := %{objdir}
769
770 SRCARCH         := %{target_arch_dir}
771 ARCH            := %{_target_base_arch}
772 Q                       := %{!?with_verbose:@}
773 MAKE_OPTS       := %{MakeOpts}
774 DEFCONFIG   := %{defconfig}
775 EOF
776
777 PaXconfig() {
778         set -x
779         cat <<-EOCONFIG > $1
780         %ifarch %{ix86}
781                 CONFIG_PAX_SEGMEXEC=y
782                 # performance impact on CPUs without NX bit
783                 CONFIG_PAX_PAGEEXEC=n
784                 # Testing KERNEXEC
785
786                 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
787                 CONFIG_PCI_BIOS=n
788                 CONFIG_EFI=n
789         %endif
790
791         %ifarch ppc64
792                 CONFIG_PAX_NOELFRELOCS=n
793         %endif
794         %ifarch ppc
795                 CONFIG_PAX_EMUTRAMP=y
796                 CONFIG_PAX_EMUSIGRT=y
797                 CONFIG_PAX_EMUPLT=y
798         %endif
799
800         %ifarch sparc sparc64 alpha
801                 CONFIG_PAX_EMUPLT=y
802         %endif
803
804         # Now we have to check MAC system integration. Grsecurity uses PAX_HAVE_ACL_FLAGS
805         # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
806         # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
807         # PAX_HOOK_ACL_FLAGS.
808
809         %if %{with grsecurity}
810                 # Hardening grsec options if with pax
811                 CONFIG_GRKERNSEC_PROC_MEMMAP=y
812                 # almost rational (see HIDESYM help)
813                 CONFIG_GRKERNSEC_HIDESYM=y
814
815                 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
816         %else
817                 CONFIG_PAX_HAVE_ACL_FLAGS=n
818                 CONFIG_PAX_HOOK_ACL_FLAGS=y
819         %endif
820 EOCONFIG
821
822         return 0
823 }
824
825 RescueConfig() {
826         set -x
827         cat <<-EOCONFIG > $1
828                 # CONFIG_SOUND is not set
829                 # CONFIG_AUDIT is not set
830                 # CONFIG_TR is not set
831                 # CONFIG_BT is not set
832                 # CONFIG_VIDEO_DEV is not set
833                 # CONFIG_DVB_CORE is not set
834                 # CONFIG_HAMRADIO is not set
835                 # CONFIG_ARCNET is not set
836                 # CONFIG_FB is not set
837                 # CONFIG_DRM is not set
838                 # CONFIG_WATCHDOG is not set
839                 # CONFIG_INPUT_JOYSTICK is not set
840                 # CONFIG_DEBUG_KERNEL is not set
841                 # CONFIG_ISDN is not set
842                 # CONFIG_AGP is not set
843                 # CONFIG_SECURITY is not set
844                 # CONFIG_PARIDE is not set
845                 # CONFIG_CPU_FREQ is not set
846                 # CONFIG_GAMEPORT is not set
847                 # CONFIG_KVM is not set
848                 # CONFIG_PHONE is not set
849                 # CONFIG_STRICT_DEVMEM is not set
850                 # CONFIG_IMA is not set
851                 CONFIG_AUFS=y
852                 CONFIG_AUFS_FS=y
853                 CONFIG_AUFS_BR_RAMFS=y
854                 CONFIG_AUFS_RDU=y
855                 CONFIG_BLK_DEV_LOOP=y
856                 CONFIG_ISO9660_FS=y
857                 CONFIG_NLS_UTF8=y
858                 CONFIG_SQUASHFS=y
859 EOCONFIG
860
861         return 0
862 }
863
864 BuildConfig() {
865         %{?debug:set -x}
866         set -e
867
868         Config="kernel-%{target_arch_dir}.config"
869         echo >&2 "Building config file for %{_target_cpu} using $Config et al."
870
871         # prepare local and important options
872         cat <<-EOCONFIG > important.config
873                 LOCALVERSION="-%{localversion}"
874
875 %if 0%{?debug:1}
876                 CONFIG_DEBUG_SLAB=y
877                 CONFIG_DEBUG_SLAB_LEAK=y
878                 CONFIG_DEBUG_PREEMPT=y
879                 CONFIG_RT_DEADLOCK_DETECT=y
880 %endif
881
882 %if %{without ipv6}
883                 CONFIG_IPV6=n
884 %endif
885
886 %ifarch i686 athlon pentium3 pentium4
887   %if %{with pae}
888                 CONFIG_HIGHMEM4G=n
889                 CONFIG_HIGHMEM64G=y
890                 CONFIG_X86_PAE=y
891                 CONFIG_NUMA=n
892   %endif
893 %endif
894
895 %if %{without pcmcia}
896                 CONFIG_PCMCIA=n
897 %endif
898
899 %if %{with fbcondecor}
900                 CONFIG_FB_S3=n
901                 CONFIG_FB_VT8623=n
902                 CONFIG_FB_ARK=n
903                 CONFIG_FB_TILEBLITTING=n
904                 CONFIG_FB_CON_DECOR=y
905 %endif
906
907 %if %{with nfsroot}
908                 CONFIG_NFS_FS=y
909                 CONFIG_ROOT_NFS=y
910 %endif
911
912 # Temporary disabled RELOCATABLE. Needed only on x86??
913 %if %{with pax} || %{with grsecurity}
914                 CONFIG_RELOCATABLE=n
915 %endif
916 EOCONFIG
917
918 %if %{with rescuecd}
919         RescueConfig rescue.config
920 %endif
921 %if %{with pax}
922         PaXconfig pax.config
923 %endif
924
925         # prepare kernel-style config file from multiple config files
926         %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
927 %if %{with myown}
928                 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
929 %endif
930                 important.config \
931 %if %{without vanilla}
932 %if %{with rescuecd}
933                 %{SOURCE58} \
934                 rescue.config \
935 %endif
936                 \
937 %if %{with pax}
938                 %{SOURCE45} \
939                 %{SOURCE49} \
940                 pax.config \
941 %else
942   %if %{with grsecurity}
943                 %{SOURCE45} \
944                 %{SOURCE50} \
945   %endif
946 %endif
947                 \
948 %if %{with reiser4}
949                 %{SOURCE56} \
950 %endif
951 %if %{with imq}
952                 %{SOURCE55} \
953 %endif
954 %if %{with vserver}
955                 %{SOURCE43} \
956 %endif
957                 %{SOURCE41} %{?0:patches} \
958 %endif
959                 %{SOURCE20} \
960                 $RPM_SOURCE_DIR/$Config
961 }
962
963 cd %{objdir}
964 install -d arch/%{target_arch_dir}
965 BuildConfig > %{defconfig}
966 ln -sf %{defconfig} .config
967 cd -
968
969 %{__make} \
970         TARGETOBJ=%{targetobj} \
971         %{?with_verbose:V=1} \
972         oldconfig
973
974 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
975
976 # build kernel
977 %{__make} \
978         TARGETOBJ=%{targetobj} \
979         %{?with_verbose:V=1} \
980         all
981
982 %install
983 rm -rf $RPM_BUILD_ROOT
984 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
985         -C %{objdir} \
986         %{?with_verbose:V=1} \
987         DEPMOD=%{DepMod} \
988         INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
989         INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
990         KERNELRELEASE=%{kernel_release}
991
992 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
993
994 # create directories which may be missing, to simplyfy %files
995 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
996
997 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
998 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
999 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1000
1001 # no point embed content for %ghost files. empty them
1002 for a in \
1003         dep{,.bin} \
1004         alias{,.bin} \
1005         devname \
1006         softdep \
1007         symbols{,.bin} \
1008         {pci,usb,ccw,isapnp,input,ieee1394,serio,of}map \
1009 ; do
1010         test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1011         > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1012 done
1013
1014 # /boot
1015 install -d $RPM_BUILD_ROOT/boot
1016 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1017 %ifarch %{ix86} %{x8664}
1018         cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1019         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1020 %endif
1021 %ifarch ppc ppc64
1022         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1023         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1024 %endif
1025 %ifarch ia64
1026         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1027         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1028         ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1029 %endif
1030 %ifarch alpha sparc sparc64
1031         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1032         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1033         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1034         %ifarch sparc
1035                 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1036                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1037         %endif
1038         %ifarch sparc64
1039                 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1040                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1041         %endif
1042 %endif
1043 %ifarch arm
1044         install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1045 %endif
1046
1047 # ghosted initrd
1048 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1049
1050 %if "%{_target_base_arch}" != "%{_arch}"
1051 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1052 %endif
1053
1054 # /etc/modrobe.d
1055 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1056
1057 # /usr/src/linux
1058 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1059
1060 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1061 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1062         l=l
1063         rm -f $RPM_BUILD_ROOT/COPYING
1064 fi
1065
1066 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1067 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
1068 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
1069 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
1070
1071 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1072 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1073
1074 # collect module-build files and directories
1075 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1076 fileoutdir=$(pwd)
1077 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1078 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1079 cd -
1080
1081 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1082         ff=${f##%{objdir}/}
1083         if [ -x "$f" ]; then
1084                 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1085         else
1086                 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1087         fi
1088         echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1089         cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1090 done
1091
1092 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1093 install -d $RPM_BUILD_ROOT%{_docdir}
1094 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1095
1096 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1097 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1098 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1099 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1100
1101 %clean
1102 rm -rf $RPM_BUILD_ROOT
1103
1104 %preun
1105 if [ -x /sbin/new-kernel-pkg ]; then
1106         /sbin/new-kernel-pkg --remove %{kernel_release}
1107 fi
1108
1109 %post
1110 %ifarch ia64
1111 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1112 %{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1113 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1114 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1115 %endif
1116 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1117 %{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1118 mv -f /boot/System.map{,.old} 2> /dev/null
1119 %{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1120 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1121 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1122 ln -sf System.map-%{kernel_release} /boot/System.map
1123 %{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1124
1125 %depmod %{kernel_release}
1126
1127 %posttrans
1128 # generate initrd after all dependant modules are installed
1129 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1130 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1131 %{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1132 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1133 %{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1134
1135 # update boot loaders when old package files are gone from filesystem
1136 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1137         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1138                 /sbin/update-grub >/dev/null
1139         fi
1140 fi
1141 if [ -x /sbin/new-kernel-pkg ]; then
1142         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1143 fi
1144 if [ -x /sbin/rc-boot ]; then
1145         /sbin/rc-boot 1>&2 || :
1146 fi
1147
1148 %post vmlinux
1149 mv -f /boot/vmlinux{,.old} 2> /dev/null
1150 %{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1151 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1152 %{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1153
1154 %post drm
1155 %depmod %{kernel_release}
1156
1157 %postun drm
1158 %depmod %{kernel_release}
1159
1160 %post pcmcia
1161 %depmod %{kernel_release}
1162
1163 %postun pcmcia
1164 %depmod %{kernel_release}
1165
1166 %post sound-alsa
1167 %depmod %{kernel_release}
1168
1169 %postun sound-alsa
1170 %depmod %{kernel_release}
1171
1172 %post sound-oss
1173 %depmod %{kernel_release}
1174
1175 %postun sound-oss
1176 %depmod %{kernel_release}
1177
1178 %post headers
1179 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1180
1181 %postun headers
1182 if [ "$1" = "0" ]; then
1183         if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1184                 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1185                         rm -f %{_prefix}/src/linux%{_alt_kernel}
1186                 fi
1187         fi
1188 fi
1189
1190 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1191 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1192 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1193
1194 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1195 if [ "$1" = 0 ]; then
1196         rm -f /lib/modules/%{kernel_release}/{build,source}
1197 fi
1198
1199 %files
1200 %defattr(644,root,root,755)
1201 %ifarch sparc sparc64
1202 /boot/vmlinux.aout-%{kernel_release}
1203 %endif
1204 %ifarch ia64
1205 /boot/efi/vmlinuz-%{kernel_release}
1206 %endif
1207 /boot/vmlinuz-%{kernel_release}
1208 /boot/System.map-%{kernel_release}
1209 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1210 /lib/firmware/%{kernel_release}
1211
1212 %dir /lib/modules/%{kernel_release}
1213 %dir /lib/modules/%{kernel_release}/kernel
1214 /lib/modules/%{kernel_release}/kernel/arch
1215 /lib/modules/%{kernel_release}/kernel/crypto
1216 /lib/modules/%{kernel_release}/kernel/drivers
1217 %if %{have_drm}
1218 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1219 %endif
1220 /lib/modules/%{kernel_release}/kernel/fs
1221 /lib/modules/%{kernel_release}/kernel/kernel
1222 /lib/modules/%{kernel_release}/kernel/lib
1223 /lib/modules/%{kernel_release}/kernel/net
1224 /lib/modules/%{kernel_release}/kernel/mm
1225 %if %{have_sound}
1226 %dir /lib/modules/%{kernel_release}/kernel/sound
1227 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1228 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1229 %ifnarch sparc
1230 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1231 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1232 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1233 %endif
1234 %endif
1235 %dir /lib/modules/%{kernel_release}/misc
1236 %if %{have_pcmcia}
1237 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1238 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1239 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1240 %if %{without rescuecd}
1241 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1242 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1243 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1244 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1245 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1246 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1247 %endif
1248 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1249 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1250 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1251 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1252 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1253 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1254 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1255 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1256 %endif
1257 %if %{with myown}
1258 /lib/modules/%{kernel_release}/kernel/sound
1259 %endif
1260 /lib/modules/%{kernel_release}/kernel/security
1261
1262 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1263
1264 # provided by build
1265 /lib/modules/%{kernel_release}/modules.order
1266 /lib/modules/%{kernel_release}/modules.builtin*
1267
1268 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1269 %ghost /lib/modules/%{kernel_release}/modules.alias
1270 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1271 %ghost /lib/modules/%{kernel_release}/modules.ccwmap
1272 %ghost /lib/modules/%{kernel_release}/modules.dep
1273 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1274 %ghost /lib/modules/%{kernel_release}/modules.devname
1275 %ghost /lib/modules/%{kernel_release}/modules.ieee1394map
1276 %ghost /lib/modules/%{kernel_release}/modules.inputmap
1277 %ghost /lib/modules/%{kernel_release}/modules.isapnpmap
1278 %ghost /lib/modules/%{kernel_release}/modules.ofmap
1279 %ghost /lib/modules/%{kernel_release}/modules.pcimap
1280 %ghost /lib/modules/%{kernel_release}/modules.seriomap
1281 %ghost /lib/modules/%{kernel_release}/modules.softdep
1282 %ghost /lib/modules/%{kernel_release}/modules.symbols
1283 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1284 %ghost /lib/modules/%{kernel_release}/modules.usbmap
1285
1286 # symlinks pointing to kernelsrcdir
1287 %ghost /lib/modules/%{kernel_release}/build
1288 %ghost /lib/modules/%{kernel_release}/source
1289
1290 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1291 %files vmlinux
1292 %defattr(644,root,root,755)
1293 /boot/vmlinux-%{kernel_release}
1294 %endif
1295
1296 %if %{have_drm}
1297 %files drm
1298 %defattr(644,root,root,755)
1299 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1300 %endif
1301
1302 %if %{have_pcmcia}
1303 %files pcmcia
1304 %defattr(644,root,root,755)
1305 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1306 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1307 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1308 %if %{without rescuecd}
1309 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1310 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1311 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1312 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1313 %endif
1314 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1315 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1316 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1317 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1318 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1319 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1320 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1321 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1322 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1323 %endif
1324
1325 %if %{have_sound}
1326 %files sound-alsa
1327 %defattr(644,root,root,755)
1328 /lib/modules/%{kernel_release}/kernel/sound
1329 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1330 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1331 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1332 %if %{have_oss}
1333 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1334 %endif
1335 %ifnarch sparc
1336 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1337 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1338 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1339 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1340 %endif
1341
1342 %if %{have_oss}
1343 %files sound-oss
1344 %defattr(644,root,root,755)
1345 /lib/modules/%{kernel_release}/kernel/sound/oss
1346 %endif
1347 %endif
1348
1349 %files headers -f files.headers_exclude_kbuild
1350 %defattr(644,root,root,755)
1351 %dir %{_kernelsrcdir}
1352 %{_kernelsrcdir}/include
1353 %dir %{_kernelsrcdir}/arch
1354 %dir %{_kernelsrcdir}/arch/[!K]*
1355 %{_kernelsrcdir}/arch/*/include
1356 %dir %{_kernelsrcdir}/security
1357 %dir %{_kernelsrcdir}/security/selinux
1358 %{_kernelsrcdir}/security/selinux/include
1359 %{_kernelsrcdir}/.config
1360 %{_kernelsrcdir}/Module.symvers
1361
1362 %files module-build -f files.mb_include_modulebuild_and_dirs
1363 %defattr(644,root,root,755)
1364 %ifarch ppc ppc64
1365 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1366 %endif
1367 %exclude %dir %{_kernelsrcdir}/arch/um
1368 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1369 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1370 %{_kernelsrcdir}/drivers/lguest/lg.h
1371 %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1372 %{_kernelsrcdir}/kernel/bounds.c
1373 %{_kernelsrcdir}/scripts/basic/*.c
1374 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1375 %{_kernelsrcdir}/scripts/kconfig/*.in
1376 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1377 %{_kernelsrcdir}/scripts/kconfig/*.pl
1378 %{_kernelsrcdir}/scripts/kconfig/*.glade
1379 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1380 %{_kernelsrcdir}/scripts/kconfig/*.cc
1381 %{_kernelsrcdir}/scripts/kconfig/*.y
1382 %{_kernelsrcdir}/scripts/kconfig/*.l
1383 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1384 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1385 %{_kernelsrcdir}/scripts/kconfig/l*.h
1386 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1387 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1388 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1389 %{_kernelsrcdir}/scripts/mod/*.c
1390 %{_kernelsrcdir}/scripts/mod/[^e]*.h
1391 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1392 %{_kernelsrcdir}/scripts/mkmakefile
1393 %{_kernelsrcdir}/scripts/module-common.lds
1394 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1395 %{_kernelsrcdir}/scripts/*.c
1396 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1397 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1398 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1399 %exclude %dir %{_kernelsrcdir}/security
1400 %exclude %dir %{_kernelsrcdir}/security/selinux
1401 %if %{with grsecurity}
1402 %{_kernelsrcdir}/tools/gcc/*.c
1403 %endif
1404
1405 %if %{with doc}
1406 %files doc
1407 %defattr(644,root,root,755)
1408 %dir %{_docdir}/%{name}-%{version}
1409
1410 %{_docdir}/%{name}-%{version}/[!jkz]*
1411 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1412 %{_docdir}/%{name}-%{version}/kbuild
1413 %{_docdir}/%{name}-%{version}/kdump
1414 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1415 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1416 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1417 %endif
1418
1419 %if %{with source}
1420 %files source -f files.source_exclude_modulebuild_and_dirs
1421 %defattr(644,root,root,755)
1422 %{_kernelsrcdir}/arch/*/[!Mik]*
1423 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1424 %{_kernelsrcdir}/arch/ia64/install.sh
1425 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1426 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1427 %{_kernelsrcdir}/arch/m68k/install.sh
1428 %{_kernelsrcdir}/arch/parisc/install.sh
1429 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1430 %{_kernelsrcdir}/arch/ia64/kvm
1431 %{_kernelsrcdir}/arch/powerpc/kvm
1432 %ifarch ppc ppc64
1433 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1434 %endif
1435 %{_kernelsrcdir}/arch/s390/kvm
1436 %{_kernelsrcdir}/arch/x86/kvm
1437 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1438 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1439 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1440 %exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1441 %{_kernelsrcdir}/block
1442 %{_kernelsrcdir}/crypto
1443 %{_kernelsrcdir}/drivers
1444 %{_kernelsrcdir}/firmware
1445 %{_kernelsrcdir}/fs
1446 %if %{with grsecurity} && %{without rescuecd}
1447 %{_kernelsrcdir}/grsecurity
1448 %endif
1449 %{_kernelsrcdir}/init
1450 %{_kernelsrcdir}/ipc
1451 %{_kernelsrcdir}/kernel
1452 %exclude %{_kernelsrcdir}/kernel/bounds.c
1453 %{_kernelsrcdir}/lib
1454 %{_kernelsrcdir}/mm
1455 %{_kernelsrcdir}/net
1456 %{_kernelsrcdir}/virt
1457 %{_kernelsrcdir}/samples
1458 %{_kernelsrcdir}/scripts/*
1459 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1460 %exclude %{_kernelsrcdir}/scripts/Makefile*
1461 %exclude %{_kernelsrcdir}/scripts/basic
1462 %exclude %{_kernelsrcdir}/scripts/kconfig
1463 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1464 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1465 %exclude %{_kernelsrcdir}/scripts/mod
1466 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1467 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1468 %exclude %{_kernelsrcdir}/scripts/*.c
1469 %exclude %{_kernelsrcdir}/scripts/*.sh
1470 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1471 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1472 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1473 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1474 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1475 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1476 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1477 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1478 %{_kernelsrcdir}/sound
1479 %{_kernelsrcdir}/security
1480 %exclude %{_kernelsrcdir}/security/selinux/include
1481 %{_kernelsrcdir}/tools/*
1482 %if %{with grsecurity}
1483 %exclude %{_kernelsrcdir}/tools/gcc/*.c
1484 %endif
1485 %{_kernelsrcdir}/usr
1486 %{_kernelsrcdir}/COPYING
1487 %{_kernelsrcdir}/CREDITS
1488 %{_kernelsrcdir}/MAINTAINERS
1489 %{_kernelsrcdir}/README
1490 %{_kernelsrcdir}/REPORTING-BUGS
1491 %endif
This page took 0.181492 seconds and 4 git commands to generate.