/[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 921505 - (hide annotations) (download)
Sun Jan 10 23:51:33 2016 UTC (8 years, 3 months ago) by tmb
Original Path: cauldron/kernel-linus/current/SPECS/kernel-linus.spec
File size: 26046 byte(s)
update to 4.4 final
1 tmb 496720 # upstream versioning
2 tmb 839150 %define kernelversion 4
3 tmb 912902 %define patchlevel 4
4 tmb 127716 # sublevel is now used for -stable patches
5 tmb 912902 %define sublevel 0
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 921505 %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 871575 %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     %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 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 127723 %ifarch %{arm}
180 tmb 201850 BuildRequires: uboot-mkimage
181 tmb 127723 %endif
182 tmb 172
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 tmb 127723 %ifarch %{arm}
200     Linux Kernel for Arm machines based on Kirkwood
201     %else
202 tmb 172 Summary: Linux Kernel for desktop use with %{_arch}
203     %endif
204 tmb 127723 %endif
205 tmb 172 Group: System/Kernel and hardware
206     Provides: should-restart = system
207 tmb 496720 Provides: kernel = %{tar_ver}
208     Provides: alsa
209     Requires: bootloader-utils >= 1.16-1
210 tmb 871354 Requires: dracut >= 038-21
211 tmb 496720 Requires: kmod >= 12-2
212     Requires: sysfsutils >= 2.1.0-16
213 tmb 861110 Requires: kernel-firmware >= 20150722-1
214 tmb 862444
215 tmb 885968 # 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 tmb 862444 Conflicts: dkms-nvidia-current < 346.72-1
219     Conflicts: dkms-nvidia340 < 340.76-2
220     Conflicts: dkms-nvidia304 < 304.125-5
221 tmb 885968 Conflicts: dkms-virtualbox < 5.0.4-1
222     Conflicts: dkms-xtables-addons < 2.8-1
223 tmb 862444 # not supported by x11-server-1.16
224     Conflicts: dkms-nvidia173 <= 173.14.39
225 tmb 496720 # (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 tmb 862444 Conflicts: btrfs-progs < 4.1-1
233     # (tmb) conflict too old plymouth (mga#15486)
234     Conflicts: plymouth < 0.8.6.1-13
235 tmb 496720 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
236 tmb 861110 Conflicts: radeon-firmware < 20150722-1
237 tmb 862444 # (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 894527 # (tmb) conflict for vmmouse breakage (mga#16954)
247     Conflicts: x11-driver-input-vmmouse < 13.1.0-1
248    
249 tmb 172 %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 tmb 127723 %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 tmb 172 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 tmb 127723 %endif
278 tmb 172
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 tmb 128104 Provides: %{kname}-source, kernel-source = %{kverrel}
291 tmb 172 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 tmb 128101 Buildarch: noarch
297 tmb 172
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 tmb 305635 Group: Documentation
346 tmb 172 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 tmb 128101 Buildarch: noarch
392 tmb 172
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 tmb 143066
431 tmb 131683 %if %sublevel
432 tmb 172 %patch1 -p1
433     %endif
434 tmb 143066 %if %kpatch
435 tmb 921505 %patch2 -p1
436 tmb 131683 %endif
437 tmb 451934 %if %extstable
438     %patch3 -p1
439     %endif
440 tmb 143066
441 tmb 822497 # critical fixes
442    
443 tmb 172 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 tmb 127723 install %{SOURCE22} %{build_dir}/linux-%{tar_ver}/arch/arm/configs/
457 tmb 172
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 tmb 451934 %if %extstable
488     LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{extstable}-%{buildrpmrel}/" Makefile
489     %else
490 tmb 143066 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{buildrpmrel}/" Makefile
491 tmb 451934 %endif
492 tmb 172
493     # Prepare the kernel
494     %smake -s mrproper
495 tmb 131687 %ifarch %{ix86} x86_64
496 tmb 172 cp arch/x86/configs/%{target_arch}_defconfig .config
497     %else
498 tmb 131687 cp arch/%{target_arch}/%{target_arch}_defconfig .config
499 tmb 172 %endif
500     %smake oldconfig
501    
502     # Build the kernel
503 tmb 131665 %kmake -s all
504 tmb 127723 %ifarch %{arm}
505     %kmake uImage
506     %endif
507 tmb 172 # 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 tmb 127723 %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 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 tmb 668530 cp -fR Documentation/DocBook/media/*.b64 %{temp_devel}/Documentation/DocBook/media/
530 tmb 172 cp -fR include %{temp_devel}
531     cp -fR scripts %{temp_devel}
532 tmb 247558 cp -fR tools/include %{temp_devel}/tools/
533 tmb 127723 %ifarch %{arm}
534 tmb 668530 cp -fR arch/%{target_arch}/tools %{temp_devel}/arch/%{target_arch}/
535 tmb 127723 %endif
536 tmb 172 %ifarch %{ix86} x86_64
537 tmb 668530 cp -fR arch/x86/boot/{ctype.h,string.{c,h}} %{temp_devel}/arch/x86/boot/
538 tmb 172 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 tmb 668530 cp -fR arch/x86/purgatory/* %{temp_devel}/arch/x86/purgatory/
541 tmb 871575 cp -fR arch/x86/entry/syscalls/syscall* %{temp_devel}/arch/x86/entry/syscalls/
542 tmb 172 cp -fR arch/x86/include %{temp_devel}/arch/x86/
543 tmb 452134 cp -fR arch/x86/tools %{temp_devel}/arch/x86/
544 tmb 172 %else
545     cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} %{temp_devel}/arch/%{target_arch}/kernel/
546 tmb 668530 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f %{temp_devel}; done
547 tmb 172 %endif
548    
549     # Needed for generation of kernel/bounds.s
550     cp -fR kernel/bounds.c %{temp_devel}/kernel/
551    
552 tmb 871575 # needed by include/generated/timeconst.h
553     cp -fR kernel/time/timeconst.bc %{temp_devel}/kernel/time/
554    
555 tmb 172 # 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 tmb 319160 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 tmb 172
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 tmb 426914 for i in alpha arc avr32 blackfin c6x cris frv hexagon h8300 ia64 m32r mips \
618 tmb 813196 microblaze m68k m68knommu metag mn10300 nios2 openrisc parisc powerpc ppc \
619 tmb 218106 s390 score sh sh64 sparc tile unicore32 v850 xtensa; do
620 tmb 172 rm -rf %{target_source}/arch/$i
621    
622     %if %build_devel
623     rm -rf %{target_devel}/arch/$i
624     %endif
625     done
626 tv 456382 %ifnarch %{arm}
627     rm -rf %{target_source}/include/kvm/arm*
628     %endif
629 tmb 172
630 tmb 128101 # remove arch files based on target arch in -devel rpms
631     %if %build_devel
632 tmb 172 %ifnarch %{ix86} x86_64
633     rm -rf %{target_devel}/arch/x86
634     %endif
635 tmb 127844 %ifnarch %{arm}
636     rm -rf %{target_devel}/arch/arm
637 tmb 319160 rm -rf %{target_devel}/arch/arm64
638 tv 456382 rm -rf %{target_devel}/include/kvm/arm*
639 tv 664965 rm -rf %{target_devel}/include/soc/tegra
640 tmb 172 %endif
641 tmb 127723 %endif
642 tmb 172
643    
644     # other misc files
645 tmb 871575 rm -f %{target_source}/{.config.old,.config.cmd,.tmp_gas_check,.mailmap,.missing-syscalls.d,arch/.gitignore,.get_maintainer.ignore}
646 tmb 119943 rm -rf %{target_source}/.tmp_depmod/
647 tmb 172
648     #endif %build_source
649     %endif
650    
651    
652 tmb 209761 # compressing modules
653     find %{target_modules} -name "*.ko" | %kxargs xz -6e
654 tmb 172
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 tmb 247558 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
669 tmb 172 echo $?
670     done
671    
672     for i in *; do
673     pushd $i
674     echo "Creating module.description for $i"
675 tmb 209761 modules=`find . -name "*.ko.xz"`
676 tmb 86232 echo $modules | %kxargs /sbin/modinfo \
677 tmb 172 | 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 tmb 127723 # We don't want to remove this, the whole reason of its existence is to be
690 tmb 172 # able to do several rpm --short-circuit -bi for testing install
691     # phase without repeating compilation phase
692 tmb 127723 #rm -rf %{temp_root}
693 tmb 172
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 tmb 187186 %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 tmb 172 %postun -n %{kname}-%{buildrel}
746     /sbin/kernel_remove_initrd %{buildrel}
747 tmb 96557 rm -rf /lib/modules/%{buildrel} > /dev/null
748 tmb 172 %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 tmb 127723 %ifarch %{arm}
781     %{_bootdir}/uImage-%{buildrel}
782     %else
783 tmb 172 %{_bootdir}/vmlinuz-%{buildrel}
784 tmb 127723 %endif
785 tmb 172 %{_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 tmb 127723 %{_kerneldir}/arch/arm
810 tmb 319160 %{_kerneldir}/arch/arm64
811 tmb 172 %{_kerneldir}/arch/x86
812     %{_kerneldir}/arch/um
813     %{_kerneldir}/block
814 tmb 904165 %{_kerneldir}/certs
815 tmb 172 %{_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 tmb 319160 %{_kerneldir}/include/clocksource
823 tmb 172 %{_kerneldir}/include/crypto
824     %{_kerneldir}/include/drm
825 tmb 452134 %{_kerneldir}/include/dt-bindings
826 tmb 839259 %{_kerneldir}/include/kvm
827 tmb 172 %{_kerneldir}/include/linux
828     %{_kerneldir}/include/math-emu
829 tmb 274708 %{_kerneldir}/include/memory
830 tmb 172 %{_kerneldir}/include/net
831     %{_kerneldir}/include/pcmcia
832 tmb 305634 %{_kerneldir}/include/ras
833 tmb 172 %{_kerneldir}/include/scsi
834 tmb 668530 %{_kerneldir}/include/soc
835 tmb 172 %{_kerneldir}/include/sound
836 tmb 63311 %{_kerneldir}/include/target
837 tmb 172 %{_kerneldir}/include/trace
838 tmb 319160 %{_kerneldir}/include/uapi
839 tmb 172 %{_kerneldir}/include/video
840     %{_kerneldir}/include/media
841 tmb 187184 %{_kerneldir}/include/misc
842 tmb 172 %{_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 tmb 127723 %ifarch %{arm}
876     %{_develdir}/arch/arm
877 tmb 319160 %{_develdir}/arch/arm64
878 tmb 127723 %endif
879 tmb 172 %ifarch %{ix86} x86_64
880     %{_develdir}/arch/x86
881     %endif
882     %{_develdir}/arch/um
883     %{_develdir}/block
884 tmb 904165 %{_develdir}/certs
885 tmb 172 %{_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 tmb 319160 %{_develdir}/include/clocksource
893 tmb 172 %{_develdir}/include/config
894     %{_develdir}/include/crypto
895     %{_develdir}/include/drm
896 tmb 452134 %{_develdir}/include/dt-bindings
897 tmb 172 %{_develdir}/include/generated
898     %{_develdir}/include/keys
899 tmb 839259 %{_develdir}/include/kvm
900 tmb 172 %{_develdir}/include/linux
901     %{_develdir}/include/math-emu
902 tmb 274708 %{_develdir}/include/memory
903 tmb 187184 %{_develdir}/include/misc
904 tmb 172 %{_develdir}/include/net
905     %{_develdir}/include/pcmcia
906 tmb 305634 %{_develdir}/include/ras
907 tmb 172 %{_develdir}/include/rdma
908     %{_develdir}/include/scsi
909 tmb 813203 %{_develdir}/include/soc
910 tmb 172 %{_develdir}/include/sound
911 tmb 63311 %{_develdir}/include/target
912 tmb 172 %{_develdir}/include/trace
913 tmb 319160 %{_develdir}/include/uapi
914 tmb 172 %{_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