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

  ViewVC Help
Powered by ViewVC 1.1.30