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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1104588 - (hide annotations) (download)
Thu May 25 17:58:57 2017 UTC (6 years, 10 months ago) by tmb
Original Path: cauldron/kernel-linus/current/SPECS/kernel-linus.spec
File size: 26404 byte(s)
update to 4.9.30
1 tmb 496720 # upstream versioning
2 tmb 839150 %define kernelversion 4
3 tmb 1074295 %define patchlevel 9
4 tmb 127716 # sublevel is now used for -stable patches
5 tmb 1104588 %define sublevel 30
6 tmb 451934 # extstable is for extended stable patches
7     %define extstable 0
8 tmb 172
9     # kernel Makefile extraversion is substituted by
10 tmb 127716 # kpatch/kgit wich are either 0 (empty), rc (kpatch), git (kgit)
11 tmb 1016022 %define kpatch 0
12 tmb 172
13     # kernel.org -gitX patch (only the number after "git")
14 tmb 127716 %define kgit 0
15 tmb 172
16     # this is the releaseversion
17 tmb 1080339 %define mgarelease 1
18 tmb 172
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 tmb 119944 %define rpmtag %{distsuffix}%{mgaver}
24 tmb 172 %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 tmb 131683 %if %sublevel
41     %define tar_ver %{kernelversion}.%{patchlevel}
42     %else
43 tmb 127716 %define tar_ver %{kernelversion}.%(expr %{patchlevel} - 1)
44 tmb 131683 %endif
45 tmb 172 %else
46 tmb 127716 %define tar_ver %{kernelversion}.%{patchlevel}
47 tmb 172 %endif
48 tmb 451934 %if %extstable
49     %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}.%{extstable}
50     %else
51     %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
52     %endif
53 tmb 172 %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 shlomif 1050783 %define kmake %make_build CC="$CC"
102 tmb 172 %else
103 shlomif 1050783 %define kmake %make_build
104 tmb 172 %endif
105 shlomif 1050783 # there are places where parallel make doesn't work
106 tmb 172 %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 tmb 127723 %define target_arch %(echo %{_arch} | sed -e "s/amd64/x86_64/" -e 's/arm.*/arm/')
116 tmb 172
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 tmb 127723 ExclusiveArch: %{ix86} x86_64 %{arm}
125 tmb 172 ExclusiveOS: Linux
126     URL: http://www.kernel.org/
127    
128     ####################################################################
129     #
130     # Sources
131     #
132     ### This is for full SRC RPM
133 tmb 157680 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 tmb 172
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 tmb 127723 Source22: arm_defconfig
145 tmb 172
146     ####################################################################
147     #
148     # Patches
149    
150     #
151     # Patch0 to Patch100 are for core kernel upgrades.
152     #
153    
154 tmb 912902 # Pre linus patch: ftp://ftp.kernel.org/pub/linux/kernel/v(kernelversion).(patchlevel)/testing
155 tmb 172
156 tmb 131683 %if %sublevel
157 tmb 865416 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 tmb 143066 %endif
160 tmb 172 %if %kpatch
161 tmb 921505 Patch2: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.xz
162 tmb 865416 Source12: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.sign
163 tmb 172 %endif
164 tmb 451934 %if %extstable
165     Patch3: patch-%{kernelversion}.%{patchlevel}.%{sublevel}.%{extstable}.patch
166     %endif
167 tmb 172
168 tmb 822497 # critical fixes
169    
170 tmb 172 #END
171     ####################################################################
172    
173 tmb 496720 # global defines
174 tmb 172 Autoreqprov: no
175 tmb 904165 BuildRequires: gcc
176 ovitters 645329 BuildRequires: kmod >= 12-2
177     BuildRequires: bc
178 tmb 860182 BuildRequires: binutils >= 1:2.25.1
179 tmb 172
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 tmb 127723 %ifarch %{arm}
197 pterjan 996791 Summary: Linux Kernel for Arm machines based on Kirkwood
198 tmb 127723 %else
199 tmb 172 Summary: Linux Kernel for desktop use with %{_arch}
200     %endif
201 tmb 127723 %endif
202 tmb 172 Group: System/Kernel and hardware
203     Provides: should-restart = system
204 tmb 496720 Provides: kernel = %{tar_ver}
205     Provides: alsa
206     Requires: bootloader-utils >= 1.16-1
207 tmb 871354 Requires: dracut >= 038-21
208 tmb 496720 Requires: kmod >= 12-2
209     Requires: sysfsutils >= 2.1.0-16
210 tmb 1080146 Requires: kernel-firmware >= 20170101-1
211 tmb 862444
212 tmb 1074305 # conflict dkms packages that dont support kernel-4.9
213     Conflicts: dkms-broadcom-wl < 6.30.223.271-45
214 tmb 1043574 Conflicts: dkms-fglrx < 15.302
215 tmb 1087600 Conflicts: dkms-nvidia-current < 375.39-1
216     Conflicts: dkms-nvidia340 < 340.102-1
217     Conflicts: dkms-nvidia304 < 304.135-1
218 tmb 1074305 Conflicts: dkms-virtualbox < 5.1.10-3
219 tmb 1080146 Conflicts: dkms-xtables-addons < 2.11-3
220 tmb 862444 # not supported by x11-server-1.16
221     Conflicts: dkms-nvidia173 <= 173.14.39
222 tmb 496720 # (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 tmb 1080146 Conflicts: btrfs-progs < 4.9-2
230 tmb 862444 # (tmb) conflict too old plymouth (mga#15486)
231     Conflicts: plymouth < 0.8.6.1-13
232 tmb 496720 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
233 tmb 1080146 Conflicts: radeon-firmware < 20170101-1
234 tmb 862444 # (tmb) conflict old firmware to get the firmwares in initrd
235 tmb 1080146 Conflicts: kernel-firmware-nonfree < 20170101-1
236 tmb 999912 # (tmb) conflict old microcode to get updated ones in initrd for early loading
237     Conflicts: microcode < 0.20160409-1
238 tmb 862444 # (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 894527 # (tmb) conflict for vmmouse breakage (mga#16954)
246     Conflicts: x11-driver-input-vmmouse < 13.1.0-1
247    
248 tmb 172 %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 tmb 127723 %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 tmb 172 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 tmb 127723 %endif
277 tmb 172
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 tmb 128104 Provides: %{kname}-source, kernel-source = %{kverrel}
290 tmb 172 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 tmb 128101 Buildarch: noarch
296 tmb 172
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 tmb 305635 Group: Documentation
345 tmb 172 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 tmb 128101 Buildarch: noarch
391 tmb 172
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 tmb 143066
430 tmb 131683 %if %sublevel
431 tmb 172 %patch1 -p1
432     %endif
433 tmb 143066 %if %kpatch
434 tmb 921505 %patch2 -p1
435 tmb 131683 %endif
436 tmb 451934 %if %extstable
437     %patch3 -p1
438     %endif
439 tmb 143066
440 tmb 822497 # critical fixes
441    
442 tmb 172 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 tmb 127723 install %{SOURCE22} %{build_dir}/linux-%{tar_ver}/arch/arm/configs/
456 tmb 172
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 tmb 451934 %if %extstable
487     LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{extstable}-%{buildrpmrel}/" Makefile
488     %else
489 tmb 143066 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{buildrpmrel}/" Makefile
490 tmb 451934 %endif
491 tmb 172
492     # Prepare the kernel
493     %smake -s mrproper
494 tmb 131687 %ifarch %{ix86} x86_64
495 tmb 172 cp arch/x86/configs/%{target_arch}_defconfig .config
496     %else
497 pterjan 1068711 cp arch/%{target_arch}/configs/%{target_arch}_defconfig .config
498 tmb 172 %endif
499     %smake oldconfig
500    
501     # Build the kernel
502 tmb 131665 %kmake -s all
503 tmb 172 # 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 tmb 127723 %ifarch %{arm}
508 pterjan 1068767 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 tmb 127723 %else
514     cp -f arch/%{target_arch}/boot/bzImage %{temp_boot}/vmlinuz-%{buildrel}
515     %endif
516 tmb 172
517     # Install modules
518     install -d %{temp_modules}/%{buildrel}
519 tmb 127723 %smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=%{buildrel} modules_install
520 tmb 172
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 tmb 247558 cp -fR tools/include %{temp_devel}/tools/
532 tmb 127723 %ifarch %{arm}
533 tmb 668530 cp -fR arch/%{target_arch}/tools %{temp_devel}/arch/%{target_arch}/
534 tmb 127723 %endif
535 tmb 172 %ifarch %{ix86} x86_64
536 tmb 668530 cp -fR arch/x86/boot/{ctype.h,string.{c,h}} %{temp_devel}/arch/x86/boot/
537 tmb 172 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 tmb 668530 cp -fR arch/x86/purgatory/* %{temp_devel}/arch/x86/purgatory/
540 tmb 871575 cp -fR arch/x86/entry/syscalls/syscall* %{temp_devel}/arch/x86/entry/syscalls/
541 tmb 172 cp -fR arch/x86/include %{temp_devel}/arch/x86/
542 tmb 452134 cp -fR arch/x86/tools %{temp_devel}/arch/x86/
543 tmb 172 %else
544     cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} %{temp_devel}/arch/%{target_arch}/kernel/
545 tmb 668530 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f %{temp_devel}; done
546 tmb 172 %endif
547    
548     # Needed for generation of kernel/bounds.s
549     cp -fR kernel/bounds.c %{temp_devel}/kernel/
550    
551 tmb 871575 # needed by include/generated/timeconst.h
552     cp -fR kernel/time/timeconst.bc %{temp_devel}/kernel/time/
553    
554 tmb 172 # 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 tmb 319160 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 tmb 172
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 tmb 426914 for i in alpha arc avr32 blackfin c6x cris frv hexagon h8300 ia64 m32r mips \
617 tmb 813196 microblaze m68k m68knommu metag mn10300 nios2 openrisc parisc powerpc ppc \
618 tmb 218106 s390 score sh sh64 sparc tile unicore32 v850 xtensa; do
619 tmb 172 rm -rf %{target_source}/arch/$i
620    
621     %if %build_devel
622     rm -rf %{target_devel}/arch/$i
623     %endif
624     done
625 tv 456382 %ifnarch %{arm}
626 pterjan 1068767 rm -rf %{target_source}/arch/arm*
627 tv 456382 rm -rf %{target_source}/include/kvm/arm*
628 pterjan 1068767 rm -rf %{target_source}/include/soc
629     rm -rf %{target_source}/tools/arch/arm*
630 tv 456382 %endif
631 tmb 172
632 tmb 128101 # remove arch files based on target arch in -devel rpms
633     %if %build_devel
634 tmb 172 %ifnarch %{ix86} x86_64
635     rm -rf %{target_devel}/arch/x86
636     %endif
637 tmb 127844 %ifnarch %{arm}
638     rm -rf %{target_devel}/arch/arm
639 tmb 319160 rm -rf %{target_devel}/arch/arm64
640 tv 456382 rm -rf %{target_devel}/include/kvm/arm*
641 pterjan 1068767 rm -rf %{target_devel}/include/soc
642 tmb 172 %endif
643 tmb 127723 %endif
644 tmb 172
645    
646     # other misc files
647 tmb 1074305 rm -f %{target_source}/{.config.old,.config.cmd,.tmp_gas_check,.mailmap,.missing-syscalls.d,arch/.gitignore,.gitattributes,.get_maintainer.ignore,.cocciconfig}
648 tmb 119943 rm -rf %{target_source}/.tmp_depmod/
649 tmb 172
650     #endif %build_source
651     %endif
652    
653    
654 tmb 209761 # compressing modules
655     find %{target_modules} -name "*.ko" | %kxargs xz -6e
656 tmb 172
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 tmb 247558 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
671 tmb 172 echo $?
672     done
673    
674     for i in *; do
675     pushd $i
676     echo "Creating module.description for $i"
677 tmb 209761 modules=`find . -name "*.ko.xz"`
678 tmb 86232 echo $modules | %kxargs /sbin/modinfo \
679 tmb 172 | 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 tmb 127723 # We don't want to remove this, the whole reason of its existence is to be
692 shlomif 1050783 # able to do several rpm --short-circuit -bi for testing install
693 tmb 172 # phase without repeating compilation phase
694 tmb 127723 #rm -rf %{temp_root}
695 tmb 172
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 tmb 187186 %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 tmb 172 %postun -n %{kname}-%{buildrel}
748     /sbin/kernel_remove_initrd %{buildrel}
749 tmb 96557 rm -rf /lib/modules/%{buildrel} > /dev/null
750 tmb 172 %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 pterjan 1068767 %ifarch %arm
789     %dir /usr/lib/linux-%{buildrel}
790     /usr/lib/linux-%{buildrel}/*.dtb
791     %endif
792 tmb 172 %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 tmb 1070292 %ifarch %arm
812 tmb 127723 %{_kerneldir}/arch/arm
813 tmb 319160 %{_kerneldir}/arch/arm64
814 tmb 1070292 %endif
815 tmb 172 %{_kerneldir}/arch/x86
816     %{_kerneldir}/arch/um
817     %{_kerneldir}/block
818 tmb 904165 %{_kerneldir}/certs
819 tmb 172 %{_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 tmb 319160 %{_kerneldir}/include/clocksource
827 tmb 172 %{_kerneldir}/include/crypto
828     %{_kerneldir}/include/drm
829 tmb 452134 %{_kerneldir}/include/dt-bindings
830 tmb 839259 %{_kerneldir}/include/kvm
831 tmb 172 %{_kerneldir}/include/linux
832     %{_kerneldir}/include/math-emu
833 tmb 274708 %{_kerneldir}/include/memory
834 tmb 172 %{_kerneldir}/include/net
835     %{_kerneldir}/include/pcmcia
836 tmb 305634 %{_kerneldir}/include/ras
837 tmb 172 %{_kerneldir}/include/scsi
838 tmb 1070292 %ifarch %arm
839 tmb 668530 %{_kerneldir}/include/soc
840 tmb 1070292 %endif
841 tmb 172 %{_kerneldir}/include/sound
842 tmb 63311 %{_kerneldir}/include/target
843 tmb 172 %{_kerneldir}/include/trace
844 tmb 319160 %{_kerneldir}/include/uapi
845 tmb 172 %{_kerneldir}/include/video
846     %{_kerneldir}/include/media
847 tmb 187184 %{_kerneldir}/include/misc
848 tmb 172 %{_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 tmb 127723 %ifarch %{arm}
882     %{_develdir}/arch/arm
883 tmb 319160 %{_develdir}/arch/arm64
884 tmb 127723 %endif
885 tmb 172 %ifarch %{ix86} x86_64
886     %{_develdir}/arch/x86
887     %endif
888     %{_develdir}/arch/um
889     %{_develdir}/block
890 tmb 904165 %{_develdir}/certs
891 tmb 172 %{_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 tmb 319160 %{_develdir}/include/clocksource
899 tmb 172 %{_develdir}/include/config
900     %{_develdir}/include/crypto
901     %{_develdir}/include/drm
902 tmb 452134 %{_develdir}/include/dt-bindings
903 tmb 172 %{_develdir}/include/generated
904     %{_develdir}/include/keys
905 tmb 839259 %{_develdir}/include/kvm
906 tmb 172 %{_develdir}/include/linux
907     %{_develdir}/include/math-emu
908 tmb 274708 %{_develdir}/include/memory
909 tmb 187184 %{_develdir}/include/misc
910 tmb 172 %{_develdir}/include/net
911     %{_develdir}/include/pcmcia
912 tmb 305634 %{_develdir}/include/ras
913 tmb 172 %{_develdir}/include/rdma
914     %{_develdir}/include/scsi
915 tmb 1070298 %ifarch %arm
916 tmb 813203 %{_develdir}/include/soc
917 tmb 1070298 %endif
918 tmb 172 %{_develdir}/include/sound
919 tmb 63311 %{_develdir}/include/target
920 tmb 172 %{_develdir}/include/trace
921 tmb 319160 %{_develdir}/include/uapi
922 tmb 172 %{_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