/[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 930109 - (show annotations) (download)
Mon Feb 1 16:11:47 2016 UTC (8 years, 2 months ago) by tmb
Original Path: cauldron/kernel-linus/current/SPECS/kernel-linus.spec
File size: 26046 byte(s)
update to 4.4.1
1 # upstream versioning
2 %define kernelversion 4
3 %define patchlevel 4
4 # sublevel is now used for -stable patches
5 %define sublevel 1
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 CC="$CC"
102 %else
103 %define kmake %make
104 %endif
105 # there are places where parallel make don'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 %ifarch %{arm}
180 BuildRequires: uboot-mkimage
181 %endif
182
183 %description
184 Source package to build the Linux kernel.
185
186 %{klinus_notice}
187
188
189 #
190 # kernel: Symmetric MultiProcessing kernel
191 #
192 %if %build_kernel
193 %package -n %{kname}-%{buildrel}
194 Version: %{fakever}
195 Release: %{fakerel}
196 %ifarch %{ix86}
197 Summary: Linux Kernel for desktop use with i586 & 4GB RAM
198 %else
199 %ifarch %{arm}
200 Linux Kernel for Arm machines based on Kirkwood
201 %else
202 Summary: Linux Kernel for desktop use with %{_arch}
203 %endif
204 %endif
205 Group: System/Kernel and hardware
206 Provides: should-restart = system
207 Provides: kernel = %{tar_ver}
208 Provides: alsa
209 Requires: bootloader-utils >= 1.16-1
210 Requires: dracut >= 038-21
211 Requires: kmod >= 12-2
212 Requires: sysfsutils >= 2.1.0-16
213 Requires: kernel-firmware >= 20150722-1
214
215 # conflict dkms packages that dont support kernel-4.2
216 Conflicts: dkms-broadcom-wl < 6.30.223.248-8
217 Conflicts: dkms-fglrx < 15.201.1151-2
218 Conflicts: dkms-nvidia-current < 346.72-1
219 Conflicts: dkms-nvidia340 < 340.76-2
220 Conflicts: dkms-nvidia304 < 304.125-5
221 Conflicts: dkms-virtualbox < 5.0.4-1
222 Conflicts: dkms-xtables-addons < 2.8-1
223 # not supported by x11-server-1.16
224 Conflicts: dkms-nvidia173 <= 173.14.39
225 # (tmb) nvidia96xx does not support this kernel or x11-server-1.13
226 Conflicts: dkms-nvidia96xx <= 96.43.23
227 # (tmb) conflict too old lvm2 rules to make upgrades work (tv, mga #9536)
228 Conflicts: lvm2 < 2.02.98-3
229 # (tmb) conflict too old drakxtools-backend to avoid bogus root=/dev/ (#9536)
230 Conflicts: drakxtools-backend < 15.37-1
231 # (tmb) conflict older btrfs-progs to get the new in same transaction and in initrd
232 Conflicts: btrfs-progs < 4.1-1
233 # (tmb) conflict too old plymouth (mga#15486)
234 Conflicts: plymouth < 0.8.6.1-13
235 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
236 Conflicts: radeon-firmware < 20150722-1
237 # (tmb) conflict old firmware to get the firmwares in initrd
238 Conflicts: kernel-firmware-nonfree < 20150722-1
239 # (tmb) conflict old theme to get mga5 theme in initrd
240 Conflicts: mageia-gfxboot-theme < 4.5.6.6-1
241 # (tmb) conflict too old grub2(-efi)
242 Conflicts: grub2 < 2.02-0.git9752.18
243 Conflicts: grub2-efi < 2.02-0.git9752.18
244 # (tmb) conflict too old efibootmgr
245 Conflicts: efibootmgr < 0.11.0-7
246 # (tmb) conflict for vmmouse breakage (mga#16954)
247 Conflicts: x11-driver-input-vmmouse < 13.1.0-1
248
249 %ifarch %{ix86}
250 Conflicts: arch(x86_64)
251 %endif
252
253 %description -n %{kname}-%{buildrel}
254 %ifarch %{ix86}
255 This kernel is compiled for desktop use, single or multiple i586
256 processor(s)/core(s) and less than 4GB RAM, using HZ_1000, voluntary
257 preempt, CFS cpu scheduler and cfq i/o scheduler.
258 This kernel relies on in-kernel smp alternatives to switch between
259 up & smp mode depending on detected hardware. To force the kernel
260 to boot in single processor mode, use the "nosmp" boot parameter.
261 %else
262 %ifarch %{arm}
263 This kernel is compiled for Arm Kirkwood boxes. It will run on openrd
264 boards. It's configured using HZ_100, preempt, CFS cpu scheduler and
265 cfq i/o scheduler.
266 This kernel relies on in-kernel smp alternatives to switch between
267 up & smp mode depending on detected hardware. To force the kernel
268 to boot in single processor mode, use the "nosmp" boot parameter.
269 %else
270 This kernel is compiled for desktop use, single or multiple %{_arch}
271 processor(s)/core(s), using HZ_1000, voluntary preempt, CFS cpu
272 scheduler and cfq i/o scheduler.
273 This kernel relies on in-kernel smp alternatives to switch between
274 up & smp mode depending on detected hardware. To force the kernel
275 to boot in single processor mode, use the "nosmp" boot parameter.
276 %endif
277 %endif
278
279 %{klinus_notice}
280 %endif # build_kernel
281
282
283 #
284 # kernel-source: kernel sources
285 #
286 %if %build_source
287 %package -n %{kname}-source-%{buildrel}
288 Version: %{fakever}
289 Release: %{fakerel}
290 Provides: %{kname}-source, kernel-source = %{kverrel}
291 Provides: %{kname}-source-%{kernelversion}.%{patchlevel}
292 Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
293 Summary: The source code for the Linux kernel
294 Group: Development/Kernel
295 Autoreqprov: no
296 Buildarch: noarch
297
298 %description -n %{kname}-source-%{buildrel}
299 The %{kname}-source package contains the source code files for the
300 Linux kernel. Theese source files are only needed if you want to build
301 your own custom kernel that is better tuned to your particular hardware.
302
303 If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
304 drivers against, install the *-devel-* rpm that is matching your kernel.
305
306 %{klinus_notice}
307 %endif #build_source
308
309
310 #
311 # kernel-devel: stripped kernel sources
312 #
313 %if %build_devel
314 %package -n %{kname}-devel-%{buildrel}
315 Version: %{fakever}
316 Release: %{fakerel}
317 Provides: kernel-devel = %{kverrel}
318 Summary: The %{kname} devel files for 3rdparty modules build
319 Group: Development/Kernel
320 Autoreqprov: no
321 Requires: glibc-devel, ncurses-devel, make, gcc, perl
322 %ifarch %{ix86}
323 Conflicts: arch(x86_64)
324 %endif
325
326 %description -n %{kname}-devel-%{buildrel}
327 This package contains the kernel-devel files that should be enough to build
328 3rdparty drivers against for use with the %{kname}-%{buildrel}.
329
330 If you want to build your own kernel, you need to install the full
331 %{kname}-source-%{buildrel} rpm.
332
333 %{klinus_notice}
334 %endif #build_devel
335
336
337 #
338 # kernel-doc: documentation for the Linux kernel
339 #
340 %if %build_doc
341 %package -n %{kname}-doc
342 Version: %{kversion}
343 Release: %{rpmrel}
344 Summary: Various documentation bits found in the kernel source
345 Group: Documentation
346 Buildarch: noarch
347
348 %description -n %{kname}-doc
349 This package contains documentation files form the kernel source. Various
350 bits of information about the Linux kernel and the device drivers shipped
351 with it are documented in these files. You also might want install this
352 package if you need a reference to the options that can be passed to Linux
353 kernel modules at load time.
354
355 %{klinus_notice}
356 %endif #build_doc
357
358
359 #
360 # kernel-latest: virtual rpm
361 #
362 %if %build_kernel
363 %package -n %{kname}-latest
364 Version: %{kversion}
365 Release: %{rpmrel}
366 Summary: Virtual rpm for latest %{kname}
367 Group: System/Kernel and hardware
368 Requires: %{kname}-%{buildrel}
369 %ifarch %{ix86}
370 Conflicts: arch(x86_64)
371 %endif
372
373 %description -n %{kname}-latest
374 This package is a virtual rpm that aims to make sure you always have the
375 latest %{kname} installed...
376
377 %{klinus_notice}
378 %endif #build_kernel
379
380
381 #
382 # kernel-source-latest: virtual rpm
383 #
384 %if %build_source
385 %package -n %{kname}-source-latest
386 Version: %{kversion}
387 Release: %{rpmrel}
388 Summary: Virtual rpm for latest %{kname}-source
389 Group: System/Kernel and hardware
390 Requires: %{kname}-source-%{buildrel}
391 Buildarch: noarch
392
393 %description -n %{kname}-source-latest
394 This package is a virtual rpm that aims to make sure you always have the
395 latest %{kname}-source installed...
396
397 %{klinus_notice}
398 %endif #build_source
399
400
401 #
402 # kernel-devel-latest: virtual rpm
403 #
404 %if %build_devel
405 %package -n %{kname}-devel-latest
406 Version: %{kversion}
407 Release: %{rpmrel}
408 Summary: Virtual rpm for latest %{kname}-devel
409 Group: System/Kernel and hardware
410 Requires: %{kname}-devel-%{buildrel}
411 %ifarch %{ix86}
412 Conflicts: arch(x86_64)
413 %endif
414
415 %description -n %{kname}-devel-latest
416 This package is a virtual rpm that aims to make sure you always have the
417 latest %{kname}-devel installed...
418
419 %{klinus_notice}
420 %endif #build_devel
421
422
423 #
424 # End packages - here begins build stage
425 #
426 %prep
427 %setup -q -n %top_dir_name -c
428
429 pushd %src_dir
430
431 %if %sublevel
432 %patch1 -p1
433 %endif
434 %if %kpatch
435 %patch2 -p1
436 %endif
437 %if %extstable
438 %patch3 -p1
439 %endif
440
441 # critical fixes
442
443 popd
444
445 # PATCH END
446
447
448 #
449 # Setup Begin
450 #
451
452
453 # Install defconfigs...
454 install %{SOURCE20} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
455 install %{SOURCE21} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
456 install %{SOURCE22} %{build_dir}/linux-%{tar_ver}/arch/arm/configs/
457
458 # make sure the kernel has the sublevel we know it has...
459 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" linux-%{tar_ver}/Makefile
460
461
462 %build
463 # Common target directories
464 %define _bootdir /boot
465 %define _modulesdir /lib/modules
466 %define _kerneldir /usr/src/%{kname}-%{buildrel}
467 %define _develdir /usr/src/%{kname}-devel-%{buildrel}
468
469
470 # Directories definition needed for building
471 %define temp_root %{build_dir}/temp-root
472 %define temp_boot %{temp_root}%{_bootdir}
473 %define temp_modules %{temp_root}%{_modulesdir}
474 %define temp_source %{temp_root}%{_kerneldir}
475 %define temp_devel %{temp_root}%{_develdir}
476
477
478 # Create a simulacro of buildroot
479 rm -rf %{temp_root}
480 install -d %{temp_root}
481
482
483 # make sure we are in the directory
484 cd %{src_dir}
485
486 # make sure EXTRAVERSION says what we want it to say
487 %if %extstable
488 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{extstable}-%{buildrpmrel}/" Makefile
489 %else
490 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{buildrpmrel}/" Makefile
491 %endif
492
493 # Prepare the kernel
494 %smake -s mrproper
495 %ifarch %{ix86} x86_64
496 cp arch/x86/configs/%{target_arch}_defconfig .config
497 %else
498 cp arch/%{target_arch}/%{target_arch}_defconfig .config
499 %endif
500 %smake oldconfig
501
502 # Build the kernel
503 %kmake -s all
504 %ifarch %{arm}
505 %kmake uImage
506 %endif
507 # Install kernel
508 install -d %{temp_boot}
509 install -m 644 System.map %{temp_boot}/System.map-%{buildrel}
510 install -m 644 .config %{temp_boot}/config-%{buildrel}
511 %ifarch %{arm}
512 cp -f arch/%{target_arch}/boot/uImage %{temp_boot}/uImage-$KernelVer
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 Documentation/DocBook/media/*.b64 %{temp_devel}/Documentation/DocBook/media/
530 cp -fR include %{temp_devel}
531 cp -fR scripts %{temp_devel}
532 cp -fR tools/include %{temp_devel}/tools/
533 %ifarch %{arm}
534 cp -fR arch/%{target_arch}/tools %{temp_devel}/arch/%{target_arch}/
535 %endif
536 %ifarch %{ix86} x86_64
537 cp -fR arch/x86/boot/{ctype.h,string.{c,h}} %{temp_devel}/arch/x86/boot/
538 cp -fR arch/x86/kernel/asm-offsets.{c,s} %{temp_devel}/arch/x86/kernel/
539 cp -fR arch/x86/kernel/asm-offsets_{32,64}.c %{temp_devel}/arch/x86/kernel/
540 cp -fR arch/x86/purgatory/* %{temp_devel}/arch/x86/purgatory/
541 cp -fR arch/x86/entry/syscalls/syscall* %{temp_devel}/arch/x86/entry/syscalls/
542 cp -fR arch/x86/include %{temp_devel}/arch/x86/
543 cp -fR arch/x86/tools %{temp_devel}/arch/x86/
544 %else
545 cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} %{temp_devel}/arch/%{target_arch}/kernel/
546 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f %{temp_devel}; done
547 %endif
548
549 # Needed for generation of kernel/bounds.s
550 cp -fR kernel/bounds.c %{temp_devel}/kernel/
551
552 # needed by include/generated/timeconst.h
553 cp -fR kernel/time/timeconst.bc %{temp_devel}/kernel/time/
554
555 # Needed for lguest
556 cp -fR drivers/lguest/lg.h %{temp_devel}/drivers/lguest/
557
558 cp -fR .config Module.symvers %{temp_devel}
559
560 # Needed for truecrypt build (Danny)
561 cp -fR drivers/md/dm.h %{temp_devel}/drivers/md/
562
563 # Needed for external dvb tree (#41418)
564 cp -fR drivers/media/dvb-core/*.h %{temp_devel}/drivers/media/dvb-core/
565 cp -fR drivers/media/dvb-frontends/lgdt330x.h %{temp_devel}/drivers/media/dvb-frontends/
566
567 # add acpica header files, needed for fglrx build
568 cp -fR drivers/acpi/acpica/*.h %{temp_devel}/drivers/acpi/acpica/
569
570 # Check and clean the -devel tree
571 pushd %{temp_devel} >/dev/null
572 %smake -s prepare scripts clean
573 rm -f .config.old
574 popd >/dev/null
575
576 # Disable mrproper and other targets
577 patch -p1 -d %{temp_devel} -i %{SOURCE2}
578
579 # Fix permissions
580 chmod -R a+rX %{temp_devel}
581 %endif # build_devel
582
583 #make sure we are in the directory
584 cd %src_dir
585
586 # kernel-source is shipped as an unprepared tree
587 %smake -s mrproper
588
589
590 ###
591 ### Install
592 ###
593 %install
594 install -m 644 %{SOURCE4} .
595
596 cd %src_dir
597 # Directories definition needed for installing
598 %define target_source %{buildroot}/%{_kerneldir}
599 %define target_boot %{buildroot}%{_bootdir}
600 %define target_modules %{buildroot}%{_modulesdir}
601 %define target_devel %{buildroot}%{_develdir}
602
603 # We want to be able to test several times the install part
604 rm -rf %{buildroot}
605 cp -a %{temp_root} %{buildroot}
606
607 # Create directories infastructure
608 %if %build_source
609 install -d %{target_source}
610
611 tar cf - . | tar xf - -C %{target_source}
612 chmod -R a+rX %{target_source}
613
614 # we remove all the source files that we don't ship
615
616 # first architecture files
617 for i in alpha arc avr32 blackfin c6x cris frv hexagon h8300 ia64 m32r mips \
618 microblaze m68k m68knommu metag mn10300 nios2 openrisc parisc powerpc ppc \
619 s390 score sh sh64 sparc tile unicore32 v850 xtensa; do
620 rm -rf %{target_source}/arch/$i
621
622 %if %build_devel
623 rm -rf %{target_devel}/arch/$i
624 %endif
625 done
626 %ifnarch %{arm}
627 rm -rf %{target_source}/include/kvm/arm*
628 %endif
629
630 # remove arch files based on target arch in -devel rpms
631 %if %build_devel
632 %ifnarch %{ix86} x86_64
633 rm -rf %{target_devel}/arch/x86
634 %endif
635 %ifnarch %{arm}
636 rm -rf %{target_devel}/arch/arm
637 rm -rf %{target_devel}/arch/arm64
638 rm -rf %{target_devel}/include/kvm/arm*
639 rm -rf %{target_devel}/include/soc/tegra
640 %endif
641 %endif
642
643
644 # other misc files
645 rm -f %{target_source}/{.config.old,.config.cmd,.tmp_gas_check,.mailmap,.missing-syscalls.d,arch/.gitignore,.get_maintainer.ignore}
646 rm -rf %{target_source}/.tmp_depmod/
647
648 #endif %build_source
649 %endif
650
651
652 # compressing modules
653 find %{target_modules} -name "*.ko" | %kxargs xz -6e
654
655
656 # We used to have a copy of PrepareKernel here
657 # Now, we make sure that the thing in the linux dir is what we want it to be
658
659 for i in %{target_modules}/*; do
660 rm -f $i/build $i/source
661 done
662
663
664 # sniff, if we gzipped all the modules, we change the stamp :(
665 # we really need the depmod -ae here
666 pushd %{target_modules}
667 for i in *; do
668 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
669 echo $?
670 done
671
672 for i in *; do
673 pushd $i
674 echo "Creating module.description for $i"
675 modules=`find . -name "*.ko.xz"`
676 echo $modules | %kxargs /sbin/modinfo \
677 | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
678 popd
679 done
680 popd
681
682
683 ###
684 ### Clean
685 ###
686
687 %clean
688 rm -rf %{buildroot}
689 # We don't want to remove this, the whole reason of its existence is to be
690 # able to do several rpm --short-circuit -bi for testing install
691 # phase without repeating compilation phase
692 #rm -rf %{temp_root}
693
694
695 ###
696 ### Scripts
697 ###
698
699 ### kernel
700 %if %build_kernel
701 %preun -n %{kname}-%{buildrel}
702 /sbin/installkernel -R %{buildrel}
703 if [ -L /lib/modules/%{buildrel}/build ]; then
704 rm -f /lib/modules/%{buildrel}/build
705 fi
706 if [ -L /lib/modules/%{buildrel}/source ]; then
707 rm -f /lib/modules/%{buildrel}/source
708 fi
709 pushd /boot > /dev/null
710 if [ -L vmlinuz-linus ]; then
711 if [ "$(readlink vmlinuz-linus)" = "vmlinuz-%{buildrel}" ]; then
712 rm -f vmlinuz-linus
713 fi
714 fi
715 if [ -L initrd-linus.img ]; then
716 if [ "$(readlink initrd-linus.img)" = "initrd-%{buildrel}.img" ]; then
717 rm -f initrd-linus.img
718 fi
719 fi
720 popd > /dev/null
721 exit 0
722
723 %post -n %{kname}-%{buildrel}
724 /sbin/installkernel -L %{buildrel}
725 if [ -d /usr/src/%{kname}-devel-%{buildrel} ]; then
726 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/build
727 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/source
728 fi
729 pushd /boot > /dev/null
730 if [ -L vmlinuz-linus ]; then
731 rm -f vmlinuz-linus
732 fi
733 ln -sf vmlinuz-%{buildrel} vmlinuz-linus
734 if [ -L initrd-linus.img ]; then
735 rm -f initrd-linus.img
736 fi
737 ln -sf initrd-%{buildrel}.img initrd-linus.img
738 popd > /dev/null
739
740 %posttrans -n %{kname}-%{buildrel}
741 if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/%{kname}-devel-%{buildrel} ]; then
742 /usr/sbin/dkms_autoinstaller start %{buildrel}
743 fi
744
745 %postun -n %{kname}-%{buildrel}
746 /sbin/kernel_remove_initrd %{buildrel}
747 rm -rf /lib/modules/%{buildrel} > /dev/null
748 %endif # build_kernel
749
750
751 ### kernel-devel
752 %if %build_devel
753 %post -n %{kname}-devel-%{buildrel}
754 # place /build and /source symlinks in place.
755 if [ -d /lib/modules/%{buildrel} ]; then
756 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/build
757 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/source
758 fi
759
760 %preun -n %{kname}-devel-%{buildrel}
761 # we need to delete <modules>/{build,source} at uninstall
762 if [ -L /lib/modules/%{buildrel}/build ]; then
763 rm -f /lib/modules/%{buildrel}/build
764 fi
765 if [ -L /lib/modules/%{buildrel}/source ]; then
766 rm -f /lib/modules/%{buildrel}/source
767 fi
768 exit 0
769 %endif #build_devel
770
771
772 ###
773 ### file lists
774 ###
775
776 # kernel
777 %if %build_kernel
778 %files -n %{kname}-%{buildrel}
779 %{_bootdir}/config-%{buildrel}
780 %ifarch %{arm}
781 %{_bootdir}/uImage-%{buildrel}
782 %else
783 %{_bootdir}/vmlinuz-%{buildrel}
784 %endif
785 %{_bootdir}/System.map-%{buildrel}
786 %dir %{_modulesdir}/%{buildrel}/
787 %{_modulesdir}/%{buildrel}/kernel
788 %{_modulesdir}/%{buildrel}/modules.*
789 %doc README.kernel-sources
790 %endif # build_kernel
791
792 # kernel-source
793 %if %build_source
794 %files -n %{kname}-source-%{buildrel}
795 %dir %{_kerneldir}
796 %dir %{_kerneldir}/arch
797 %dir %{_kerneldir}/include
798 %{_kerneldir}/.gitignore
799 %{_kerneldir}/COPYING
800 %{_kerneldir}/CREDITS
801 %{_kerneldir}/Documentation
802 %{_kerneldir}/Kbuild
803 %{_kerneldir}/Kconfig
804 %{_kerneldir}/MAINTAINERS
805 %{_kerneldir}/Makefile
806 %{_kerneldir}/README
807 %{_kerneldir}/REPORTING-BUGS
808 %{_kerneldir}/arch/Kconfig
809 %{_kerneldir}/arch/arm
810 %{_kerneldir}/arch/arm64
811 %{_kerneldir}/arch/x86
812 %{_kerneldir}/arch/um
813 %{_kerneldir}/block
814 %{_kerneldir}/certs
815 %{_kerneldir}/crypto
816 %{_kerneldir}/drivers
817 %{_kerneldir}/firmware
818 %{_kerneldir}/fs
819 %{_kerneldir}/include/Kbuild
820 %{_kerneldir}/include/acpi
821 %{_kerneldir}/include/asm-generic
822 %{_kerneldir}/include/clocksource
823 %{_kerneldir}/include/crypto
824 %{_kerneldir}/include/drm
825 %{_kerneldir}/include/dt-bindings
826 %{_kerneldir}/include/kvm
827 %{_kerneldir}/include/linux
828 %{_kerneldir}/include/math-emu
829 %{_kerneldir}/include/memory
830 %{_kerneldir}/include/net
831 %{_kerneldir}/include/pcmcia
832 %{_kerneldir}/include/ras
833 %{_kerneldir}/include/scsi
834 %{_kerneldir}/include/soc
835 %{_kerneldir}/include/sound
836 %{_kerneldir}/include/target
837 %{_kerneldir}/include/trace
838 %{_kerneldir}/include/uapi
839 %{_kerneldir}/include/video
840 %{_kerneldir}/include/media
841 %{_kerneldir}/include/misc
842 %{_kerneldir}/include/rxrpc
843 %{_kerneldir}/include/keys
844 %{_kerneldir}/include/rdma
845 %{_kerneldir}/include/xen
846 %{_kerneldir}/init
847 %{_kerneldir}/ipc
848 %{_kerneldir}/kernel
849 %{_kerneldir}/lib
850 %{_kerneldir}/mm
851 %{_kerneldir}/net
852 %{_kerneldir}/samples
853 %{_kerneldir}/scripts
854 %{_kerneldir}/security
855 %{_kerneldir}/sound
856 %{_kerneldir}/tools
857 %{_kerneldir}/usr
858 %{_kerneldir}/virt
859 %doc README.kernel-sources
860 %endif # build_source
861
862 # kernel-devel
863 %if %build_devel
864 %files -n %{kname}-devel-%{buildrel}
865 %dir %{_develdir}
866 %dir %{_develdir}/arch
867 %dir %{_develdir}/include
868 %{_develdir}/.config
869 %{_develdir}/Documentation
870 %{_develdir}/Kbuild
871 %{_develdir}/Kconfig
872 %{_develdir}/Makefile
873 %{_develdir}/Module.symvers
874 %{_develdir}/arch/Kconfig
875 %ifarch %{arm}
876 %{_develdir}/arch/arm
877 %{_develdir}/arch/arm64
878 %endif
879 %ifarch %{ix86} x86_64
880 %{_develdir}/arch/x86
881 %endif
882 %{_develdir}/arch/um
883 %{_develdir}/block
884 %{_develdir}/certs
885 %{_develdir}/crypto
886 %{_develdir}/drivers
887 %{_develdir}/firmware
888 %{_develdir}/fs
889 %{_develdir}/include/Kbuild
890 %{_develdir}/include/acpi
891 %{_develdir}/include/asm-generic
892 %{_develdir}/include/clocksource
893 %{_develdir}/include/config
894 %{_develdir}/include/crypto
895 %{_develdir}/include/drm
896 %{_develdir}/include/dt-bindings
897 %{_develdir}/include/generated
898 %{_develdir}/include/keys
899 %{_develdir}/include/kvm
900 %{_develdir}/include/linux
901 %{_develdir}/include/math-emu
902 %{_develdir}/include/memory
903 %{_develdir}/include/misc
904 %{_develdir}/include/net
905 %{_develdir}/include/pcmcia
906 %{_develdir}/include/ras
907 %{_develdir}/include/rdma
908 %{_develdir}/include/scsi
909 %{_develdir}/include/soc
910 %{_develdir}/include/sound
911 %{_develdir}/include/target
912 %{_develdir}/include/trace
913 %{_develdir}/include/uapi
914 %{_develdir}/include/video
915 %{_develdir}/include/media
916 %{_develdir}/include/rxrpc
917 %{_develdir}/include/xen
918 %{_develdir}/init
919 %{_develdir}/ipc
920 %{_develdir}/kernel
921 %{_develdir}/lib
922 %{_develdir}/mm
923 %{_develdir}/net
924 %{_develdir}/samples
925 %{_develdir}/scripts
926 %{_develdir}/security
927 %{_develdir}/sound
928 %{_develdir}/tools
929 %{_develdir}/usr
930 %{_develdir}/virt
931 %doc README.kernel-sources
932 %endif # build_devel
933
934
935 %if %build_doc
936 %files -n %{kname}-doc
937 %doc linux-%{tar_ver}/Documentation/*
938 %endif # build_doc
939
940 %if %build_kernel
941 %files -n %{kname}-latest
942 %endif # build_kernel
943
944 %if %build_source
945 %files -n %{kname}-source-latest
946 %endif # build_source
947
948 %if %build_devel
949 %files -n %{kname}-devel-latest
950 %endif # build_devel

  ViewVC Help
Powered by ViewVC 1.1.30