/[packages]/updates/6/kernel-linus/current/SPECS/kernel-linus.spec
ViewVC logotype

Contents of /updates/6/kernel-linus/current/SPECS/kernel-linus.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1092798 - (show annotations) (download)
Wed Mar 15 18:02:01 2017 UTC (7 years, 1 month ago) by tmb
Original Path: cauldron/kernel-linus/current/SPECS/kernel-linus.spec
File size: 26404 byte(s)
update to 4.9.15
1 # upstream versioning
2 %define kernelversion 4
3 %define patchlevel 9
4 # sublevel is now used for -stable patches
5 %define sublevel 15
6 # extstable is for extended stable patches
7 %define extstable 0
8
9 # kernel Makefile extraversion is substituted by
10 # kpatch/kgit wich are either 0 (empty), rc (kpatch), git (kgit)
11 %define kpatch 0
12
13 # kernel.org -gitX patch (only the number after "git")
14 %define kgit 0
15
16 # this is the releaseversion
17 %define mgarelease 1
18
19 # This is only to make life easier for people that creates derivated kernels
20 # a.k.a name it kernel-tmb :)
21 %define kname kernel-linus
22
23 %define rpmtag %{distsuffix}%{mgaver}
24 %if %kpatch
25 %if %kgit
26 %define rpmrel %mkrel 0.%{kpatch}.%{kgit}.%{mgarelease}
27 %else
28 %define rpmrel %mkrel 0.%{kpatch}.%{mgarelease}
29 %endif
30 %else
31 %define rpmrel %mkrel %{mgarelease}
32 %endif
33
34 # theese two never change, they are used to fool rpm/urpmi/smart
35 %define fakever 1
36 %define fakerel %mkrel 1
37
38 # When we are using a pre/rc patch, the tarball is a sublevel -1
39 %if %kpatch
40 %if %sublevel
41 %define tar_ver %{kernelversion}.%{patchlevel}
42 %else
43 %define tar_ver %{kernelversion}.%(expr %{patchlevel} - 1)
44 %endif
45 %else
46 %define tar_ver %{kernelversion}.%{patchlevel}
47 %endif
48 %if %extstable
49 %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}.%{extstable}
50 %else
51 %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
52 %endif
53 %define kverrel %{kversion}-%{rpmrel}
54
55 # used for not making too long names for rpms or search paths
56 %if %kpatch
57 %if %kgit
58 %define buildrpmrel 0.%{kpatch}.%{kgit}.%{mgarelease}%{rpmtag}
59 %else
60 %define buildrpmrel 0.%{kpatch}.%{mgarelease}%{rpmtag}
61 %endif
62 %else
63 %define buildrpmrel %{mgarelease}%{rpmtag}
64 %endif
65
66 %define buildrel %{kversion}-%{buildrpmrel}
67
68 %define klinus_notice NOTE: This kernel has no Mageia patches and no third-party drivers.
69
70 # having different top level names for packges means that you have to remove them by hard :(
71 %define top_dir_name %{kname}-%{_arch}
72
73 %define build_dir ${RPM_BUILD_DIR}/%{top_dir_name}
74 %define src_dir %{build_dir}/linux-%{tar_ver}
75
76 # disable useless debug rpms...
77 %define _enable_debug_packages %{nil}
78 %define debug_package %{nil}
79
80 # build defines
81 %define build_doc 1
82 %define build_source 1
83 %define build_devel 1
84
85 %define build_kernel 1
86
87 %define distro_branch %(perl -pe '/(\\d+)\\.(\\d)\\.?(\\d)?/; $_="$1.$2"' /etc/mageia-release)
88
89 # End of user definitions
90 %{?_without_kernel: %global build_kernel 0}
91 %{?_without_doc: %global build_doc 0}
92 %{?_without_source: %global build_source 0}
93 %{?_without_devel: %global build_devel 0}
94
95 %{?_with_kernel: %global build_kernel 1}
96 %{?_with_doc: %global build_doc 1}
97 %{?_with_source: %global build_source 1}
98 %{?_with_devel: %global build_devel 1}
99
100 %if %(if [ -z "$CC" ] ; then echo 0; else echo 1; fi)
101 %define kmake %make_build CC="$CC"
102 %else
103 %define kmake %make_build
104 %endif
105 # there are places where parallel make doesn't work
106 %define smake make
107
108 # Parallelize xargs invocations on smp machines
109 %define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
110 && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
111 [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS")
112
113 # Aliases for amd64 builds (better make source links?)
114 %define target_cpu %(echo %{_target_cpu} | sed -e "s/amd64/x86_64/")
115 %define target_arch %(echo %{_arch} | sed -e "s/amd64/x86_64/" -e 's/arm.*/arm/')
116
117 # src.rpm description
118 Summary: The Linux kernel (the core of the Linux operating system)
119 Name: %{kname}
120 Version: %{kversion}
121 Release: %{rpmrel}
122 License: GPLv2
123 Group: System/Kernel and hardware
124 ExclusiveArch: %{ix86} x86_64 %{arm}
125 ExclusiveOS: Linux
126 URL: http://www.kernel.org/
127
128 ####################################################################
129 #
130 # Sources
131 #
132 ### This is for full SRC RPM
133 Source0: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.xz
134 Source1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.sign
135
136 # This is for disabling mrproper and other targets on -devel rpms
137 Source2: disable-mrproper-in-devel-rpms.patch
138
139 Source4: README.kernel-sources
140
141 # Kernel defconfigs
142 Source20: i386_defconfig
143 Source21: x86_64_defconfig
144 Source22: arm_defconfig
145
146 ####################################################################
147 #
148 # Patches
149
150 #
151 # Patch0 to Patch100 are for core kernel upgrades.
152 #
153
154 # Pre linus patch: ftp://ftp.kernel.org/pub/linux/kernel/v(kernelversion).(patchlevel)/testing
155
156 %if %sublevel
157 Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.xz
158 Source11: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.sign
159 %endif
160 %if %kpatch
161 Patch2: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.xz
162 Source12: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.sign
163 %endif
164 %if %extstable
165 Patch3: patch-%{kernelversion}.%{patchlevel}.%{sublevel}.%{extstable}.patch
166 %endif
167
168 # critical fixes
169
170 #END
171 ####################################################################
172
173 # global defines
174 Autoreqprov: no
175 BuildRequires: gcc
176 BuildRequires: kmod >= 12-2
177 BuildRequires: bc
178 BuildRequires: binutils >= 1:2.25.1
179
180 %description
181 Source package to build the Linux kernel.
182
183 %{klinus_notice}
184
185
186 #
187 # kernel: Symmetric MultiProcessing kernel
188 #
189 %if %build_kernel
190 %package -n %{kname}-%{buildrel}
191 Version: %{fakever}
192 Release: %{fakerel}
193 %ifarch %{ix86}
194 Summary: Linux Kernel for desktop use with i586 & 4GB RAM
195 %else
196 %ifarch %{arm}
197 Summary: Linux Kernel for Arm machines based on Kirkwood
198 %else
199 Summary: Linux Kernel for desktop use with %{_arch}
200 %endif
201 %endif
202 Group: System/Kernel and hardware
203 Provides: should-restart = system
204 Provides: kernel = %{tar_ver}
205 Provides: alsa
206 Requires: bootloader-utils >= 1.16-1
207 Requires: dracut >= 038-21
208 Requires: kmod >= 12-2
209 Requires: sysfsutils >= 2.1.0-16
210 Requires: kernel-firmware >= 20170101-1
211
212 # conflict dkms packages that dont support kernel-4.9
213 Conflicts: dkms-broadcom-wl < 6.30.223.271-45
214 Conflicts: dkms-fglrx < 15.302
215 Conflicts: dkms-nvidia-current < 375.39-1
216 Conflicts: dkms-nvidia340 < 340.102-1
217 Conflicts: dkms-nvidia304 < 304.135-1
218 Conflicts: dkms-virtualbox < 5.1.10-3
219 Conflicts: dkms-xtables-addons < 2.11-3
220 # not supported by x11-server-1.16
221 Conflicts: dkms-nvidia173 <= 173.14.39
222 # (tmb) nvidia96xx does not support this kernel or x11-server-1.13
223 Conflicts: dkms-nvidia96xx <= 96.43.23
224 # (tmb) conflict too old lvm2 rules to make upgrades work (tv, mga #9536)
225 Conflicts: lvm2 < 2.02.98-3
226 # (tmb) conflict too old drakxtools-backend to avoid bogus root=/dev/ (#9536)
227 Conflicts: drakxtools-backend < 15.37-1
228 # (tmb) conflict older btrfs-progs to get the new in same transaction and in initrd
229 Conflicts: btrfs-progs < 4.9-2
230 # (tmb) conflict too old plymouth (mga#15486)
231 Conflicts: plymouth < 0.8.6.1-13
232 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
233 Conflicts: radeon-firmware < 20170101-1
234 # (tmb) conflict old firmware to get the firmwares in initrd
235 Conflicts: kernel-firmware-nonfree < 20170101-1
236 # (tmb) conflict old microcode to get updated ones in initrd for early loading
237 Conflicts: microcode < 0.20160409-1
238 # (tmb) conflict old theme to get mga5 theme in initrd
239 Conflicts: mageia-gfxboot-theme < 4.5.6.6-1
240 # (tmb) conflict too old grub2(-efi)
241 Conflicts: grub2 < 2.02-0.git9752.18
242 Conflicts: grub2-efi < 2.02-0.git9752.18
243 # (tmb) conflict too old efibootmgr
244 Conflicts: efibootmgr < 0.11.0-7
245 # (tmb) conflict for vmmouse breakage (mga#16954)
246 Conflicts: x11-driver-input-vmmouse < 13.1.0-1
247
248 %ifarch %{ix86}
249 Conflicts: arch(x86_64)
250 %endif
251
252 %description -n %{kname}-%{buildrel}
253 %ifarch %{ix86}
254 This kernel is compiled for desktop use, single or multiple i586
255 processor(s)/core(s) and less than 4GB RAM, using HZ_1000, voluntary
256 preempt, CFS cpu scheduler and cfq i/o scheduler.
257 This kernel relies on in-kernel smp alternatives to switch between
258 up & smp mode depending on detected hardware. To force the kernel
259 to boot in single processor mode, use the "nosmp" boot parameter.
260 %else
261 %ifarch %{arm}
262 This kernel is compiled for Arm Kirkwood boxes. It will run on openrd
263 boards. It's configured using HZ_100, preempt, CFS cpu scheduler and
264 cfq i/o scheduler.
265 This kernel relies on in-kernel smp alternatives to switch between
266 up & smp mode depending on detected hardware. To force the kernel
267 to boot in single processor mode, use the "nosmp" boot parameter.
268 %else
269 This kernel is compiled for desktop use, single or multiple %{_arch}
270 processor(s)/core(s), using HZ_1000, voluntary preempt, CFS cpu
271 scheduler and cfq i/o scheduler.
272 This kernel relies on in-kernel smp alternatives to switch between
273 up & smp mode depending on detected hardware. To force the kernel
274 to boot in single processor mode, use the "nosmp" boot parameter.
275 %endif
276 %endif
277
278 %{klinus_notice}
279 %endif # build_kernel
280
281
282 #
283 # kernel-source: kernel sources
284 #
285 %if %build_source
286 %package -n %{kname}-source-%{buildrel}
287 Version: %{fakever}
288 Release: %{fakerel}
289 Provides: %{kname}-source, kernel-source = %{kverrel}
290 Provides: %{kname}-source-%{kernelversion}.%{patchlevel}
291 Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
292 Summary: The source code for the Linux kernel
293 Group: Development/Kernel
294 Autoreqprov: no
295 Buildarch: noarch
296
297 %description -n %{kname}-source-%{buildrel}
298 The %{kname}-source package contains the source code files for the
299 Linux kernel. Theese source files are only needed if you want to build
300 your own custom kernel that is better tuned to your particular hardware.
301
302 If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
303 drivers against, install the *-devel-* rpm that is matching your kernel.
304
305 %{klinus_notice}
306 %endif #build_source
307
308
309 #
310 # kernel-devel: stripped kernel sources
311 #
312 %if %build_devel
313 %package -n %{kname}-devel-%{buildrel}
314 Version: %{fakever}
315 Release: %{fakerel}
316 Provides: kernel-devel = %{kverrel}
317 Summary: The %{kname} devel files for 3rdparty modules build
318 Group: Development/Kernel
319 Autoreqprov: no
320 Requires: glibc-devel, ncurses-devel, make, gcc, perl
321 %ifarch %{ix86}
322 Conflicts: arch(x86_64)
323 %endif
324
325 %description -n %{kname}-devel-%{buildrel}
326 This package contains the kernel-devel files that should be enough to build
327 3rdparty drivers against for use with the %{kname}-%{buildrel}.
328
329 If you want to build your own kernel, you need to install the full
330 %{kname}-source-%{buildrel} rpm.
331
332 %{klinus_notice}
333 %endif #build_devel
334
335
336 #
337 # kernel-doc: documentation for the Linux kernel
338 #
339 %if %build_doc
340 %package -n %{kname}-doc
341 Version: %{kversion}
342 Release: %{rpmrel}
343 Summary: Various documentation bits found in the kernel source
344 Group: Documentation
345 Buildarch: noarch
346
347 %description -n %{kname}-doc
348 This package contains documentation files form the kernel source. Various
349 bits of information about the Linux kernel and the device drivers shipped
350 with it are documented in these files. You also might want install this
351 package if you need a reference to the options that can be passed to Linux
352 kernel modules at load time.
353
354 %{klinus_notice}
355 %endif #build_doc
356
357
358 #
359 # kernel-latest: virtual rpm
360 #
361 %if %build_kernel
362 %package -n %{kname}-latest
363 Version: %{kversion}
364 Release: %{rpmrel}
365 Summary: Virtual rpm for latest %{kname}
366 Group: System/Kernel and hardware
367 Requires: %{kname}-%{buildrel}
368 %ifarch %{ix86}
369 Conflicts: arch(x86_64)
370 %endif
371
372 %description -n %{kname}-latest
373 This package is a virtual rpm that aims to make sure you always have the
374 latest %{kname} installed...
375
376 %{klinus_notice}
377 %endif #build_kernel
378
379
380 #
381 # kernel-source-latest: virtual rpm
382 #
383 %if %build_source
384 %package -n %{kname}-source-latest
385 Version: %{kversion}
386 Release: %{rpmrel}
387 Summary: Virtual rpm for latest %{kname}-source
388 Group: System/Kernel and hardware
389 Requires: %{kname}-source-%{buildrel}
390 Buildarch: noarch
391
392 %description -n %{kname}-source-latest
393 This package is a virtual rpm that aims to make sure you always have the
394 latest %{kname}-source installed...
395
396 %{klinus_notice}
397 %endif #build_source
398
399
400 #
401 # kernel-devel-latest: virtual rpm
402 #
403 %if %build_devel
404 %package -n %{kname}-devel-latest
405 Version: %{kversion}
406 Release: %{rpmrel}
407 Summary: Virtual rpm for latest %{kname}-devel
408 Group: System/Kernel and hardware
409 Requires: %{kname}-devel-%{buildrel}
410 %ifarch %{ix86}
411 Conflicts: arch(x86_64)
412 %endif
413
414 %description -n %{kname}-devel-latest
415 This package is a virtual rpm that aims to make sure you always have the
416 latest %{kname}-devel installed...
417
418 %{klinus_notice}
419 %endif #build_devel
420
421
422 #
423 # End packages - here begins build stage
424 #
425 %prep
426 %setup -q -n %top_dir_name -c
427
428 pushd %src_dir
429
430 %if %sublevel
431 %patch1 -p1
432 %endif
433 %if %kpatch
434 %patch2 -p1
435 %endif
436 %if %extstable
437 %patch3 -p1
438 %endif
439
440 # critical fixes
441
442 popd
443
444 # PATCH END
445
446
447 #
448 # Setup Begin
449 #
450
451
452 # Install defconfigs...
453 install %{SOURCE20} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
454 install %{SOURCE21} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
455 install %{SOURCE22} %{build_dir}/linux-%{tar_ver}/arch/arm/configs/
456
457 # make sure the kernel has the sublevel we know it has...
458 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" linux-%{tar_ver}/Makefile
459
460
461 %build
462 # Common target directories
463 %define _bootdir /boot
464 %define _modulesdir /lib/modules
465 %define _kerneldir /usr/src/%{kname}-%{buildrel}
466 %define _develdir /usr/src/%{kname}-devel-%{buildrel}
467
468
469 # Directories definition needed for building
470 %define temp_root %{build_dir}/temp-root
471 %define temp_boot %{temp_root}%{_bootdir}
472 %define temp_modules %{temp_root}%{_modulesdir}
473 %define temp_source %{temp_root}%{_kerneldir}
474 %define temp_devel %{temp_root}%{_develdir}
475
476
477 # Create a simulacro of buildroot
478 rm -rf %{temp_root}
479 install -d %{temp_root}
480
481
482 # make sure we are in the directory
483 cd %{src_dir}
484
485 # make sure EXTRAVERSION says what we want it to say
486 %if %extstable
487 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{extstable}-%{buildrpmrel}/" Makefile
488 %else
489 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{buildrpmrel}/" Makefile
490 %endif
491
492 # Prepare the kernel
493 %smake -s mrproper
494 %ifarch %{ix86} x86_64
495 cp arch/x86/configs/%{target_arch}_defconfig .config
496 %else
497 cp arch/%{target_arch}/configs/%{target_arch}_defconfig .config
498 %endif
499 %smake oldconfig
500
501 # Build the kernel
502 %kmake -s all
503 # Install kernel
504 install -d %{temp_boot}
505 install -m 644 System.map %{temp_boot}/System.map-%{buildrel}
506 install -m 644 .config %{temp_boot}/config-%{buildrel}
507 %ifarch %{arm}
508 cp -f arch/arm/boot/zImage %{temp_boot}/vmlinuz-%{buildrel}
509 install -d %{temp_root}/usr/lib/linux-%{buildrel}/
510 for d in arch/arm/boot/dts/*.dtb; do \
511 install -D -m644 $d %{temp_root}/usr/lib/linux-%{buildrel}/$(basename $d); \
512 done
513 %else
514 cp -f arch/%{target_arch}/boot/bzImage %{temp_boot}/vmlinuz-%{buildrel}
515 %endif
516
517 # Install modules
518 install -d %{temp_modules}/%{buildrel}
519 %smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=%{buildrel} modules_install
520
521 # remove /lib/firmware, we use a separate kernel-firmware
522 rm -rf %{temp_root}/lib/firmware
523
524 # Save devel tree
525 %if %build_devel
526 mkdir -p %{temp_devel}
527 for i in $(find . -name 'Makefile*'); do cp -R --parents $i %{temp_devel};done
528 for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*' -o -name config.mk); do cp -R --parents $i %{temp_devel};done
529 cp -fR include %{temp_devel}
530 cp -fR scripts %{temp_devel}
531 cp -fR tools/include %{temp_devel}/tools/
532 %ifarch %{arm}
533 cp -fR arch/%{target_arch}/tools %{temp_devel}/arch/%{target_arch}/
534 %endif
535 %ifarch %{ix86} x86_64
536 cp -fR arch/x86/boot/{ctype.h,string.{c,h}} %{temp_devel}/arch/x86/boot/
537 cp -fR arch/x86/kernel/asm-offsets.{c,s} %{temp_devel}/arch/x86/kernel/
538 cp -fR arch/x86/kernel/asm-offsets_{32,64}.c %{temp_devel}/arch/x86/kernel/
539 cp -fR arch/x86/purgatory/* %{temp_devel}/arch/x86/purgatory/
540 cp -fR arch/x86/entry/syscalls/syscall* %{temp_devel}/arch/x86/entry/syscalls/
541 cp -fR arch/x86/include %{temp_devel}/arch/x86/
542 cp -fR arch/x86/tools %{temp_devel}/arch/x86/
543 %else
544 cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} %{temp_devel}/arch/%{target_arch}/kernel/
545 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f %{temp_devel}; done
546 %endif
547
548 # Needed for generation of kernel/bounds.s
549 cp -fR kernel/bounds.c %{temp_devel}/kernel/
550
551 # needed by include/generated/timeconst.h
552 cp -fR kernel/time/timeconst.bc %{temp_devel}/kernel/time/
553
554 # Needed for lguest
555 cp -fR drivers/lguest/lg.h %{temp_devel}/drivers/lguest/
556
557 cp -fR .config Module.symvers %{temp_devel}
558
559 # Needed for truecrypt build (Danny)
560 cp -fR drivers/md/dm.h %{temp_devel}/drivers/md/
561
562 # Needed for external dvb tree (#41418)
563 cp -fR drivers/media/dvb-core/*.h %{temp_devel}/drivers/media/dvb-core/
564 cp -fR drivers/media/dvb-frontends/lgdt330x.h %{temp_devel}/drivers/media/dvb-frontends/
565
566 # add acpica header files, needed for fglrx build
567 cp -fR drivers/acpi/acpica/*.h %{temp_devel}/drivers/acpi/acpica/
568
569 # Check and clean the -devel tree
570 pushd %{temp_devel} >/dev/null
571 %smake -s prepare scripts clean
572 rm -f .config.old
573 popd >/dev/null
574
575 # Disable mrproper and other targets
576 patch -p1 -d %{temp_devel} -i %{SOURCE2}
577
578 # Fix permissions
579 chmod -R a+rX %{temp_devel}
580 %endif # build_devel
581
582 #make sure we are in the directory
583 cd %src_dir
584
585 # kernel-source is shipped as an unprepared tree
586 %smake -s mrproper
587
588
589 ###
590 ### Install
591 ###
592 %install
593 install -m 644 %{SOURCE4} .
594
595 cd %src_dir
596 # Directories definition needed for installing
597 %define target_source %{buildroot}/%{_kerneldir}
598 %define target_boot %{buildroot}%{_bootdir}
599 %define target_modules %{buildroot}%{_modulesdir}
600 %define target_devel %{buildroot}%{_develdir}
601
602 # We want to be able to test several times the install part
603 rm -rf %{buildroot}
604 cp -a %{temp_root} %{buildroot}
605
606 # Create directories infastructure
607 %if %build_source
608 install -d %{target_source}
609
610 tar cf - . | tar xf - -C %{target_source}
611 chmod -R a+rX %{target_source}
612
613 # we remove all the source files that we don't ship
614
615 # first architecture files
616 for i in alpha arc avr32 blackfin c6x cris frv hexagon h8300 ia64 m32r mips \
617 microblaze m68k m68knommu metag mn10300 nios2 openrisc parisc powerpc ppc \
618 s390 score sh sh64 sparc tile unicore32 v850 xtensa; do
619 rm -rf %{target_source}/arch/$i
620
621 %if %build_devel
622 rm -rf %{target_devel}/arch/$i
623 %endif
624 done
625 %ifnarch %{arm}
626 rm -rf %{target_source}/arch/arm*
627 rm -rf %{target_source}/include/kvm/arm*
628 rm -rf %{target_source}/include/soc
629 rm -rf %{target_source}/tools/arch/arm*
630 %endif
631
632 # remove arch files based on target arch in -devel rpms
633 %if %build_devel
634 %ifnarch %{ix86} x86_64
635 rm -rf %{target_devel}/arch/x86
636 %endif
637 %ifnarch %{arm}
638 rm -rf %{target_devel}/arch/arm
639 rm -rf %{target_devel}/arch/arm64
640 rm -rf %{target_devel}/include/kvm/arm*
641 rm -rf %{target_devel}/include/soc
642 %endif
643 %endif
644
645
646 # other misc files
647 rm -f %{target_source}/{.config.old,.config.cmd,.tmp_gas_check,.mailmap,.missing-syscalls.d,arch/.gitignore,.gitattributes,.get_maintainer.ignore,.cocciconfig}
648 rm -rf %{target_source}/.tmp_depmod/
649
650 #endif %build_source
651 %endif
652
653
654 # compressing modules
655 find %{target_modules} -name "*.ko" | %kxargs xz -6e
656
657
658 # We used to have a copy of PrepareKernel here
659 # Now, we make sure that the thing in the linux dir is what we want it to be
660
661 for i in %{target_modules}/*; do
662 rm -f $i/build $i/source
663 done
664
665
666 # sniff, if we gzipped all the modules, we change the stamp :(
667 # we really need the depmod -ae here
668 pushd %{target_modules}
669 for i in *; do
670 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
671 echo $?
672 done
673
674 for i in *; do
675 pushd $i
676 echo "Creating module.description for $i"
677 modules=`find . -name "*.ko.xz"`
678 echo $modules | %kxargs /sbin/modinfo \
679 | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
680 popd
681 done
682 popd
683
684
685 ###
686 ### Clean
687 ###
688
689 %clean
690 rm -rf %{buildroot}
691 # We don't want to remove this, the whole reason of its existence is to be
692 # able to do several rpm --short-circuit -bi for testing install
693 # phase without repeating compilation phase
694 #rm -rf %{temp_root}
695
696
697 ###
698 ### Scripts
699 ###
700
701 ### kernel
702 %if %build_kernel
703 %preun -n %{kname}-%{buildrel}
704 /sbin/installkernel -R %{buildrel}
705 if [ -L /lib/modules/%{buildrel}/build ]; then
706 rm -f /lib/modules/%{buildrel}/build
707 fi
708 if [ -L /lib/modules/%{buildrel}/source ]; then
709 rm -f /lib/modules/%{buildrel}/source
710 fi
711 pushd /boot > /dev/null
712 if [ -L vmlinuz-linus ]; then
713 if [ "$(readlink vmlinuz-linus)" = "vmlinuz-%{buildrel}" ]; then
714 rm -f vmlinuz-linus
715 fi
716 fi
717 if [ -L initrd-linus.img ]; then
718 if [ "$(readlink initrd-linus.img)" = "initrd-%{buildrel}.img" ]; then
719 rm -f initrd-linus.img
720 fi
721 fi
722 popd > /dev/null
723 exit 0
724
725 %post -n %{kname}-%{buildrel}
726 /sbin/installkernel -L %{buildrel}
727 if [ -d /usr/src/%{kname}-devel-%{buildrel} ]; then
728 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/build
729 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/source
730 fi
731 pushd /boot > /dev/null
732 if [ -L vmlinuz-linus ]; then
733 rm -f vmlinuz-linus
734 fi
735 ln -sf vmlinuz-%{buildrel} vmlinuz-linus
736 if [ -L initrd-linus.img ]; then
737 rm -f initrd-linus.img
738 fi
739 ln -sf initrd-%{buildrel}.img initrd-linus.img
740 popd > /dev/null
741
742 %posttrans -n %{kname}-%{buildrel}
743 if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/%{kname}-devel-%{buildrel} ]; then
744 /usr/sbin/dkms_autoinstaller start %{buildrel}
745 fi
746
747 %postun -n %{kname}-%{buildrel}
748 /sbin/kernel_remove_initrd %{buildrel}
749 rm -rf /lib/modules/%{buildrel} > /dev/null
750 %endif # build_kernel
751
752
753 ### kernel-devel
754 %if %build_devel
755 %post -n %{kname}-devel-%{buildrel}
756 # place /build and /source symlinks in place.
757 if [ -d /lib/modules/%{buildrel} ]; then
758 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/build
759 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/source
760 fi
761
762 %preun -n %{kname}-devel-%{buildrel}
763 # we need to delete <modules>/{build,source} at uninstall
764 if [ -L /lib/modules/%{buildrel}/build ]; then
765 rm -f /lib/modules/%{buildrel}/build
766 fi
767 if [ -L /lib/modules/%{buildrel}/source ]; then
768 rm -f /lib/modules/%{buildrel}/source
769 fi
770 exit 0
771 %endif #build_devel
772
773
774 ###
775 ### file lists
776 ###
777
778 # kernel
779 %if %build_kernel
780 %files -n %{kname}-%{buildrel}
781 %{_bootdir}/config-%{buildrel}
782 %{_bootdir}/vmlinuz-%{buildrel}
783 %{_bootdir}/System.map-%{buildrel}
784 %dir %{_modulesdir}/%{buildrel}/
785 %{_modulesdir}/%{buildrel}/kernel
786 %{_modulesdir}/%{buildrel}/modules.*
787 %doc README.kernel-sources
788 %ifarch %arm
789 %dir /usr/lib/linux-%{buildrel}
790 /usr/lib/linux-%{buildrel}/*.dtb
791 %endif
792 %endif # build_kernel
793
794 # kernel-source
795 %if %build_source
796 %files -n %{kname}-source-%{buildrel}
797 %dir %{_kerneldir}
798 %dir %{_kerneldir}/arch
799 %dir %{_kerneldir}/include
800 %{_kerneldir}/.gitignore
801 %{_kerneldir}/COPYING
802 %{_kerneldir}/CREDITS
803 %{_kerneldir}/Documentation
804 %{_kerneldir}/Kbuild
805 %{_kerneldir}/Kconfig
806 %{_kerneldir}/MAINTAINERS
807 %{_kerneldir}/Makefile
808 %{_kerneldir}/README
809 %{_kerneldir}/REPORTING-BUGS
810 %{_kerneldir}/arch/Kconfig
811 %ifarch %arm
812 %{_kerneldir}/arch/arm
813 %{_kerneldir}/arch/arm64
814 %endif
815 %{_kerneldir}/arch/x86
816 %{_kerneldir}/arch/um
817 %{_kerneldir}/block
818 %{_kerneldir}/certs
819 %{_kerneldir}/crypto
820 %{_kerneldir}/drivers
821 %{_kerneldir}/firmware
822 %{_kerneldir}/fs
823 %{_kerneldir}/include/Kbuild
824 %{_kerneldir}/include/acpi
825 %{_kerneldir}/include/asm-generic
826 %{_kerneldir}/include/clocksource
827 %{_kerneldir}/include/crypto
828 %{_kerneldir}/include/drm
829 %{_kerneldir}/include/dt-bindings
830 %{_kerneldir}/include/kvm
831 %{_kerneldir}/include/linux
832 %{_kerneldir}/include/math-emu
833 %{_kerneldir}/include/memory
834 %{_kerneldir}/include/net
835 %{_kerneldir}/include/pcmcia
836 %{_kerneldir}/include/ras
837 %{_kerneldir}/include/scsi
838 %ifarch %arm
839 %{_kerneldir}/include/soc
840 %endif
841 %{_kerneldir}/include/sound
842 %{_kerneldir}/include/target
843 %{_kerneldir}/include/trace
844 %{_kerneldir}/include/uapi
845 %{_kerneldir}/include/video
846 %{_kerneldir}/include/media
847 %{_kerneldir}/include/misc
848 %{_kerneldir}/include/rxrpc
849 %{_kerneldir}/include/keys
850 %{_kerneldir}/include/rdma
851 %{_kerneldir}/include/xen
852 %{_kerneldir}/init
853 %{_kerneldir}/ipc
854 %{_kerneldir}/kernel
855 %{_kerneldir}/lib
856 %{_kerneldir}/mm
857 %{_kerneldir}/net
858 %{_kerneldir}/samples
859 %{_kerneldir}/scripts
860 %{_kerneldir}/security
861 %{_kerneldir}/sound
862 %{_kerneldir}/tools
863 %{_kerneldir}/usr
864 %{_kerneldir}/virt
865 %doc README.kernel-sources
866 %endif # build_source
867
868 # kernel-devel
869 %if %build_devel
870 %files -n %{kname}-devel-%{buildrel}
871 %dir %{_develdir}
872 %dir %{_develdir}/arch
873 %dir %{_develdir}/include
874 %{_develdir}/.config
875 %{_develdir}/Documentation
876 %{_develdir}/Kbuild
877 %{_develdir}/Kconfig
878 %{_develdir}/Makefile
879 %{_develdir}/Module.symvers
880 %{_develdir}/arch/Kconfig
881 %ifarch %{arm}
882 %{_develdir}/arch/arm
883 %{_develdir}/arch/arm64
884 %endif
885 %ifarch %{ix86} x86_64
886 %{_develdir}/arch/x86
887 %endif
888 %{_develdir}/arch/um
889 %{_develdir}/block
890 %{_develdir}/certs
891 %{_develdir}/crypto
892 %{_develdir}/drivers
893 %{_develdir}/firmware
894 %{_develdir}/fs
895 %{_develdir}/include/Kbuild
896 %{_develdir}/include/acpi
897 %{_develdir}/include/asm-generic
898 %{_develdir}/include/clocksource
899 %{_develdir}/include/config
900 %{_develdir}/include/crypto
901 %{_develdir}/include/drm
902 %{_develdir}/include/dt-bindings
903 %{_develdir}/include/generated
904 %{_develdir}/include/keys
905 %{_develdir}/include/kvm
906 %{_develdir}/include/linux
907 %{_develdir}/include/math-emu
908 %{_develdir}/include/memory
909 %{_develdir}/include/misc
910 %{_develdir}/include/net
911 %{_develdir}/include/pcmcia
912 %{_develdir}/include/ras
913 %{_develdir}/include/rdma
914 %{_develdir}/include/scsi
915 %ifarch %arm
916 %{_develdir}/include/soc
917 %endif
918 %{_develdir}/include/sound
919 %{_develdir}/include/target
920 %{_develdir}/include/trace
921 %{_develdir}/include/uapi
922 %{_develdir}/include/video
923 %{_develdir}/include/media
924 %{_develdir}/include/rxrpc
925 %{_develdir}/include/xen
926 %{_develdir}/init
927 %{_develdir}/ipc
928 %{_develdir}/kernel
929 %{_develdir}/lib
930 %{_develdir}/mm
931 %{_develdir}/net
932 %{_develdir}/samples
933 %{_develdir}/scripts
934 %{_develdir}/security
935 %{_develdir}/sound
936 %{_develdir}/tools
937 %{_develdir}/usr
938 %{_develdir}/virt
939 %doc README.kernel-sources
940 %endif # build_devel
941
942
943 %if %build_doc
944 %files -n %{kname}-doc
945 %doc linux-%{tar_ver}/Documentation/*
946 %endif # build_doc
947
948 %if %build_kernel
949 %files -n %{kname}-latest
950 %endif # build_kernel
951
952 %if %build_source
953 %files -n %{kname}-source-latest
954 %endif # build_source
955
956 %if %build_devel
957 %files -n %{kname}-devel-latest
958 %endif # build_devel

  ViewVC Help
Powered by ViewVC 1.1.30