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

  ViewVC Help
Powered by ViewVC 1.1.30