blob: 6f23df05e1c0551193794ecb4c7bc0f4a0d7025c [file] [log] [blame]
Robert Rosengren05640d02010-08-04 15:20:54 +02001#
2# Spec file originally created for Fedora, modified for Moblin Linux
3#
4
5Summary: The Linux kernel (the core of the Linux operating system)
6
7
8# For a stable, released kernel, released_kernel should be 1. For rawhide
9# and/or a kernel built from an rc snapshot, released_kernel should
10# be 0.
11%define released_kernel 1
12
13# Versions of various parts
14
15# base_sublevel is the kernel version we're starting with and patching
16# on top of -- for example, 2.6.22-rc7 starts with a 2.6.21 base,
17# which yields a base_sublevel of 21.
18
19%define base_sublevel 34
20
21
22## If this is a released kernel ##
23%if 0%{?released_kernel}
24# Do we have a 2.6.21.y update to apply?
25%define stable_update 0
26# Set rpm version accordingly
27%if 0%{?stable_update}
28%define stablerev .%{stable_update}
29%endif
30%define rpmversion 2.6.%{base_sublevel}%{?stablerev}
31
32## The not-released-kernel case ##
33%else
34# The next upstream release sublevel (base_sublevel+1)
35%define upstream_sublevel %(expr %{base_sublevel} + 1)
36# The rc snapshot level
37
38%define rcrev 8
39
40
41%if 0%{?rcrev}
42%define rctag ~rc%rcrev
43%endif
44
45%if !0%{?rcrev}
46%define rctag ~rc0
47%endif
48
49# Set rpm version accordingly
50%define rpmversion 2.6.%{upstream_sublevel}%{?rctag}
51%endif
52
53# The kernel tarball/base version
54%define kversion 2.6.%{base_sublevel}
55
56%define make_target bzImage
57
58%define KVERREL %{version}-%{release}
59%define hdrarch %_target_cpu
60
61%define all_x86 i386 i586 i686 %{ix86}
62
63%define all_arm arm %{arm}
64
65# Overrides for generic default options
66%define all_arch_configs kernel-*.config
67
68# Per-arch tweaks
69
70%ifarch %{all_x86}
71%define all_arch_configs kernel-*.config
72%define image_install_path boot
73%define hdrarch i386
74%define kernel_image arch/x86/boot/bzImage
75%endif
76
77%ifarch x86_64
78%define all_arch_configs kernel-%{version}-x86_64*.config
79%define image_install_path boot
80%define kernel_image arch/x86/boot/bzImage
81%endif
82
83%ifarch %{all_arm}
84%define all_arch_configs kernel-*.config
85%define image_install_path boot
86%define kernel_image arch/arm/boot/zImage
87%define make_target uImage
88%endif
89
90%define oldconfig_target nonint_oldconfig
91
92#
93# Packages that need to be installed before the kernel is, because the %post
94# scripts use them.
95#
96%define kernel_prereq fileutils, module-init-tools, mkinitrd >= 6.0.39-1
97
98#
99# Disable debug info
100#
101%define debug_package %{nil}
102
103#
104# This macro does requires, provides, conflicts, obsoletes for a kernel package.
105# %%kernel_reqprovconf <subpackage>
106# It uses any kernel_<subpackage>_conflicts and kernel_<subpackage>_obsoletes
107# macros defined above.
108#
109%define kernel_reqprovconf \
110Provides: kernel = %{rpmversion}-%{release}\
111Provides: kernel-drm = 4.3.0\
112Provides: kernel-uname-r = %{KVERREL}%{?1:-%{1}}\
113Requires(pre): %{kernel_prereq}\
114%{?1:%{expand:%%{?kernel_%{1}_conflicts:Conflicts: %%{kernel_%{1}_conflicts}}}}\
115%{?1:%{expand:%%{?kernel_%{1}_obsoletes:Obsoletes: %%{kernel_%{1}_obsoletes}}}}\
116%{?1:%{expand:%%{?kernel_%{1}_provides:Provides: %%{kernel_%{1}_provides}}}}\
117# We can't let RPM do the dependencies automatic because it'll then pick up\
118# a correct but undesirable perl dependency from the module headers which\
119# isn't required for the kernel proper to function\
120AutoReq: no\
121AutoProv: yes\
122%{nil}
123
124Name: kernel%{?variant}
125Group: System/Kernel
126License: GPLv2
127URL: http://www.kernel.org/
128Version: %{rpmversion}
129Release: 1
130
131%kernel_reqprovconf
132
133#
134# List the packages used during the kernel build
135#
136BuildRequires: module-init-tools, bash >= 2.03, sh-utils
137BuildRequires: findutils, make >= 3.78
138#BuildRequires: linux-firmware
139BuildRequires: elfutils-libelf-devel binutils-devel
140BuildRequires: u-boot-tools
141BuildRequires: fdupes
142
143Source0: linux-%{kversion}.tar.gz
144Source100: kernel-rpmlintrc
145
146
147#
148# Reminder of the patch filename format:
149# linux-<version it is supposed to be upstream>-<description-separated-with-dashes>.patch
150#
151
152
153#
154# Stable patch - critical bugfixes
155#
156#Patch: patch-2.6.33.2.bz2
157
158#
159# STE: scripts for automatically listing and applying patches
160#
161%define ste_patch_archive ste-patches.tar.gz
162%define ste_patches \
163%( \
164if [ -e %{_sourcedir}/%{ste_patch_archive} ] \
165then \
166tar -C %{_sourcedir} -xzf %{_sourcedir}/%{ste_patch_archive} \
167for i in `cd %{_sourcedir} && ls -1 *.patch.gz` \
168do \
169 num=`echo $i | cut -d- -f1 | sed 's|^0*||g'` \
170 num=$(($num-1)) \
171 name=`echo $i` \
172 echo 'Patch'$num':\ '$name \
173done \
174fi \
175)
176
177%define ste_apply_patches \
178%( \
179if [ -e %{_sourcedir}/%{ste_patch_archive} ] \
180then \
181for i in `cd %{_sourcedir} && ls -1 *.patch.gz` \
182do \
183 num=`echo $i | cut -d- -f1 | sed 's|^0*||g'` \
184 num=$(($num-1)) \
185 echo '%patch'$num' -p1'\
186# echo 'patch -i '%{_sourcedir}/$i' -p1 --verbose'\
187done \
188fi \
189)
190
191%ste_patches
192
193
194BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
195
196%description
197The kernel package contains the Linux kernel (vmlinuz), the core of any
198Linux operating system. The kernel handles the basic functions
199of the operating system: memory allocation, process allocation, device
200input and output, etc.
201
202
203#
204# This macro creates a kernel-<subpackage>-devel package.
205# %%kernel_devel_package <subpackage> <pretty-name>
206#
207%define kernel_devel_package() \
208%package %{?1:%{1}-}devel\
209Summary: Development package for building kernel modules to match the %{?2:%{2} }kernel\
210Group: System/Kernel\
211Provides: kernel%{?1:-%{1}}-devel = %{version}-%{release}\
212Provides: kernel-devel = %{version}-%{release}%{?1:-%{1}}\
213Provides: kernel-devel-uname-r = %{KVERREL}%{?1:-%{1}}\
214Requires: kernel%{?1:-%{1}} = %{version}-%{release}\
215AutoReqProv: no\
216Requires(pre): /usr/bin/find\
217%description -n kernel%{?variant}%{?1:-%{1}}-devel\
218This package provides kernel headers and makefiles sufficient to build modules\
219against the %{?2:%{2} }kernel package.\
220%{nil}
221
222#
223# This macro creates a kernel-<subpackage> and its -devel too.
224# %%define variant_summary The Linux kernel compiled for <configuration>
225# %%kernel_variant_package [-n <pretty-name>] <subpackage>
226#
227%define kernel_variant_package(n:) \
228%package %1\
229Summary: %{variant_summary}\
230Group: System/Kernel\
231%kernel_reqprovconf\
232%{expand:%%kernel_devel_package %1 %{!?-n:%1}%{?-n:%{-n*}}}\
233%{nil}
234
235
236# First the auxiliary packages of the main kernel package.
237%kernel_devel_package
238
239%package -n perf
240Summary: The 'perf' performance counter tool
241Group: System/Performance
242Obsoletes: oprofile <= 0.9.5
243%description -n perf
244This package provides the "perf" tool that can be used to monitor performance counter events
245as well as various kernel internal events.
246
247
248
249
250# Now, each variant package.
251
252%define variant_summary Kernel for the ste u8500
253%kernel_variant_package u8500
254%description u8500
255This package contains the kernel optimized for the Nokia N900 device
256
257
258%prep
259# First we unpack the kernel tarball.
260# If this isn't the first make prep, we use links to the existing clean tarball
261# which speeds things up quite a bit.
262
263# Update to latest upstream.
264%if 0%{?released_kernel}
265%define vanillaversion 2.6.%{base_sublevel}
266# released_kernel with stable_update available case
267%if 0%{?stable_update}
268%define vanillaversion 2.6.%{base_sublevel}.%{stable_update}
269%endif
270# non-released_kernel case
271%else
272%if 0%{?rcrev}
273%define vanillaversion 2.6.%{upstream_sublevel}-rc%{rcrev}
274%endif
275%else
276# pre-{base_sublevel+1}-rc1 case
277%endif
278
279if [ ! -d kernel-%{kversion}/vanilla-%{vanillaversion} ]; then
280 # Ok, first time we do a make prep.
281 rm -f pax_global_header
282%setup -q -n kernel-%{kversion} -c
283 mv linux-%{kversion} vanilla-%{vanillaversion}
284 cd vanilla-%{vanillaversion}
285
286
287%if 0%{?rcrev}
288# patch-2.6.%{upstream_sublevel}-rc%{rcrev}.bz2
289#%patch00 -p1
290%endif
291
292#
293# Reminder of the patch filename format:
294# linux-<version it is supposed to be upstream>-<description-separated-with-dashes>.patch
295#
296
297
298#
299# Stable patch - critical bugfixes
300#
301
302#
303# STE: Applying all patches generated from script
304#
305%ste_apply_patches
306# STE: Workaround chmod 644 on all headers, since patch dont like chmod'ing (?)
307find . -name "*.h" -exec chmod 644 {} \;
308# STE: Workaround end
309
310cd ..
311
312else
313 # We already have a vanilla dir.
314 cd kernel-%{kversion}
315 if [ -d linux-%{kversion} ]; then
316 # Just in case we ctrl-c'd a prep already
317 rm -rf deleteme
318 # Move away the stale away, and delete in background.
319 mv linux-%{kversion} deleteme
320 rm -rf deleteme &
321 fi
322fi
323
324cp -rl vanilla-%{vanillaversion} linux-%{kversion}
325
326cd linux-%{kversion}
327
328# Any further pre-build tree manipulations happen here.
329
330# only deal with configs if we are going to build for the arch
331
332# get rid of unwanted files resulting from patch fuzz
333find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null
334
335cd ..
336
337###
338### build
339###
340%build
341
342
343cp_vmlinux()
344{
345 eu-strip --remove-comment -o "$2" "$1"
346}
347
348BuildKernel() {
349 MakeTarget=$1
350 KernelImage=$2
351 Flavour=$3
352 InstallName=${4:-vmlinuz}
353
354 # Pick the right config file for the kernel we're building
355 Config=kernel${Flavour:+-${Flavour}}.config
356 DevelDir=/usr/src/kernels/%{KVERREL}${Flavour:+-${Flavour}}
357
358 # When the bootable image is just the ELF kernel, strip it.
359 # We already copy the unstripped file into the debuginfo package.
360 if [ "$KernelImage" = vmlinux ]; then
361 CopyKernel=cp_vmlinux
362 else
363 CopyKernel=cp
364 fi
365
366 KernelVer=%{version}-%{release}${Flavour:+-${Flavour}}
367 echo BUILDING A KERNEL FOR ${Flavour} %{_target_cpu}...
368
369 # make sure EXTRAVERSION says what we want it to say
370 perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{?stablerev}%{?rctag}-%{release}/" Makefile
371# perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{?stablerev}%{?rctag}-%{release}${Flavour:+-${Flavour}}/" Makefile
372
373 # and now to start the build process
374
375 make -s mrproper
376
377 # Set config
378 make %{?_smp_mflags} mop500$(DEBUG)_power_defconfig
379 # STE: Disable multibuffer and multitouch.
380 scripts/config --file .config --disable FB_MCDE_MULTIBUFFER --disable U8500_TSC_MULTITOUCH
381 # STE: Enable conf for external sd-cards.
382 scripts/config --file .config --enable LEVELSHIFTER_HREF_V1_PLUS
383 # STE: Enable g_multi USB gadget with RNDIS, CDC Serial and Storage configuration.
384 scripts/config --file .config --module CONFIG_USB_G_MULTI --enable CONFIG_USB_G_MULTI_RNDIS --disable USB_G_MULTI_CDC
385
386 Arch="x86"
387%ifarch %{all_arm}
388 Arch="arm"
389%endif
390 echo USING ARCH=$Arch
391
392 # Build
393 make %{?_smp_mflags} ARCH=$Arch $MakeTarget
394 make %{?_smp_mflags} ARCH=$Arch modules
395
396 # STE: uImage placed for now in boot.
397 cp -f arch/arm/boot/uImage $RPM_BUILD_ROOT/boot/uImage-$KernelVer
398 chmod 755 $RPM_BUILD_ROOT/boot/uImage-$KernelVer
399
400
401 # Start installing the results
402 install -m 644 .config $RPM_BUILD_ROOT/boot/config-$KernelVer
403 install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer
404 touch $RPM_BUILD_ROOT/boot/initrd-$KernelVer.img
405 if [ -f arch/$Arch/boot/zImage.stub ]; then
406 cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/boot/zImage.stub-$KernelVer || :
407 fi
408 $CopyKernel $KernelImage \
409 $RPM_BUILD_ROOT/boot/$InstallName-$KernelVer
410 chmod 755 $RPM_BUILD_ROOT/boot/$InstallName-$KernelVer
411
412 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
413 make ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer
414%ifnarch %{all_arm}
415 make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
416%endif
417
418 # And save the headers/makefiles etc for building modules against
419 #
420 # This all looks scary, but the end result is supposed to be:
421 # * all arch relevant include/ files
422 # * all Makefile/Kconfig files
423 # * all script/ files
424
425 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
426 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/source
427 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
428 (cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source)
429 # dirs for additional modules per module-init-tools, kbuild/modules.txt
430 # first copy everything
431 cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
432 cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
433 cp System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
434 if [ -s Module.markers ]; then
435 cp Module.markers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
436 fi
437 # then drop all but the needed Makefiles/Kconfig files
438 rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Documentation
439 rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts
440 rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
441 cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
442 cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
443 if [ -d arch/%{_arch}/scripts ]; then
444 cp -a arch/%{_arch}/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || :
445 fi
446 if [ -f arch/%{_arch}/*lds ]; then
447 cp -a arch/%{_arch}/*lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/ || :
448 fi
449 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o
450 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o
451 cp -a --parents arch/%{_arch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
452 if [ "$Flavour" = u8500 ]; then
453 # U8500 specific include files
454 cp -a --parents arch/arm/mach-ux500/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
455 cp -a --parents arch/arm/plat-nomadik/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
456 fi
457 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
458 cd include
459 cp -a acpi asm-generic config crypto drm generated keys linux math-emu media mtd net pcmcia rdma rxrpc scsi sound video trace $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
460 #cp -a `readlink asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
461 # While arch/powerpc/include/asm is still a symlink to the old
462 # include/asm-ppc{64,} directory, include that in kernel-devel too.
463 if [ "$Arch" = "powerpc" -a -r ../arch/powerpc/include/asm ]; then
464 cp -a `readlink ../arch/powerpc/include/asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
465 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/$Arch/include
466 pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/$Arch/include
467 ln -sf ../../../include/asm-ppc* asm
468 popd
469 fi
470
471 # Find and remove .gitignore
472 find $RPM_BUILD_ROOT/lib/modules/$KernelVer/build -name .gitignore | xargs --no-run-if-empty rm -f
473
474 # Make sure the Makefile and version.h have a matching timestamp so that
475 # external modules can be built
476 touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/version.h
477 touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/generated/autoconf.h
478 # Copy .config to include/config/auto.conf so "make prepare" is unnecessary.
479 cp $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/config/auto.conf
480 cd ..
481
482 #
483 # save the vmlinux file for kernel debugging into the kernel-debuginfo rpm
484 #
485 # cp vmlinux $RPM_BUILD_ROOT/lib/modules/$KernelVer
486
487 find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames
488
489 # mark modules executable so that strip-to-file can strip them
490 xargs --no-run-if-empty chmod u+x < modnames
491
492 # Generate a list of modules for block and networking.
493
494 fgrep /drivers/ modnames | xargs --no-run-if-empty nm -upA |
495 sed -n 's,^.*/\([^/]*\.ko\): *U \(.*\)$,\1 \2,p' > drivers.undef
496
497 collect_modules_list()
498 {
499 sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef |
500 LC_ALL=C sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1
501 }
502
503 collect_modules_list networking \
504 'register_netdev|ieee80211_register_hw|usbnet_probe'
505 collect_modules_list block \
506 'ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans'
507
508 # remove files that will be auto generated by depmod at rpm -i time
509 for i in alias ccwmap dep ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols usbmap
510 do
511 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$i
512 done
513
514 # Move the devel headers out of the root file system
515 mkdir -p $RPM_BUILD_ROOT/usr/src/kernels
516 mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir
517 ln -sf ../../..$DevelDir $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
518
519 # Last but not least, remove few kernel dupes..
520 %fdupes $RPM_BUILD_ROOT/$DevelDir
521}
522
523
524###
525# DO it...
526###
527
528# prepare directories
529rm -rf $RPM_BUILD_ROOT
530mkdir -p $RPM_BUILD_ROOT/boot
531
532cd linux-%{kversion}
533BuildKernel %make_target %kernel_image u8500
534
535###
536### install
537###
538
539%define install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package}}}\
540%%install
541
542%install
543
544# NOTE - Linux Kernel already installed in build section. Now only installing perf tool.
545cd linux-%{kversion}
546
547
548cd tools/perf
549make DESTDIR=$RPM_BUILD_ROOT install
550mkdir -p $RPM_BUILD_ROOT/usr/bin/
551mkdir -p $RPM_BUILD_ROOT/usr/libexec/
552mv $RPM_BUILD_ROOT/bin/* $RPM_BUILD_ROOT/usr/bin/
553mv $RPM_BUILD_ROOT/libexec/* $RPM_BUILD_ROOT/usr/libexec/
554
555rm -rf $RPM_BUILD_ROOT/lib/firmware
556
557%fdupes $RPM_BUILD_ROOT/usr/libexec/
558
559
560
561###
562### clean
563###
564
565%clean
566rm -rf $RPM_BUILD_ROOT
567
568###
569### scripts
570###
571
572#
573# This macro defines a %%post script for a kernel*-devel package.
574# %%kernel_devel_post <subpackage>
575#
576%define kernel_devel_post() \
577%{expand:%%post %{?1:%{1}-}devel}\
578if [ -f /etc/sysconfig/kernel ]\
579then\
580 . /etc/sysconfig/kernel || exit $?\
581fi\
582if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ]\
583then\
584 (cd /usr/src/kernels/%{KVERREL}%{?1:-%{1}} &&\
585 /usr/bin/find . -type f | while read f; do\
586 hardlink -c /usr/src/kernels/*.fc*.*/$f $f\
587 done)\
588fi\
589%{nil}
590
591# This macro defines a %%posttrans script for a kernel package.
592# %%kernel_variant_posttrans [-v <subpackage>] [-s <s> -r <r>] <mkinitrd-args>
593# More text can follow to go at the end of this variant's %%post.
594#
595%define kernel_variant_posttrans(s:r:v:) \
596%{expand:%%posttrans %{?-v*}}\
597/sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --rpmposttrans %{KVERREL}%{?-v:-%{-v*}} || exit $?\
598%{nil}
599
600#
601# This macro defines a %%post script for a kernel package and its devel package.
602# %%kernel_variant_post [-v <subpackage>] [-s <s> -r <r>] <mkinitrd-args>
603# More text can follow to go at the end of this variant's %%post.
604#
605%define kernel_variant_post(s:r:v:) \
606%{expand:%%kernel_devel_post %{?-v*}}\
607%{expand:%%kernel_variant_posttrans %{?-v*}}\
608%{expand:%%post %{?-v*}}\
609%{-s:\
610if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\
611 [ -f /etc/sysconfig/kernel ]; then\
612 /bin/sed -i -e 's/^DEFAULTKERNEL=%{-s*}$/DEFAULTKERNEL=%{-r*}/' /etc/sysconfig/kernel || exit $?\
613fi}\
614# Added workaround for kernel modules built in a chroot environment\
615# where modprobe fails \
616if [ ! -d /lib/modules/`uname -r`/kernel ]; then \
617 ln -sf /lib/modules/%{KVERREL}%{?-v:-%{-v*}} /lib/modules/`uname -r`\
618fi \
619/sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --mkinitrd --depmod --install %{*} %{KVERREL}%{?-v:-%{-v*}} || exit $?\
620%{nil}
621
622#
623# This macro defines a %%preun script for a kernel package.
624# %%kernel_variant_preun <subpackage>
625#
626%define kernel_variant_preun() \
627%{expand:%%preun %{?1}} \
628/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}%{?1:-%{1}} || exit $? \
629%{nil}
630
631
632%kernel_variant_preun u8500
633%kernel_variant_post -v u8500
634
635if [ -x /sbin/ldconfig ]
636then
637 /sbin/ldconfig -X || exit $?
638fi
639
640###
641### file lists
642###
643
644
645
646# This is %{image_install_path} on an arch where that includes ELF files,
647# or empty otherwise.
648%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
649
650#
651# This macro defines the %%files sections for a kernel package
652# and its devel packages.
653# %%kernel_variant_files [-k vmlinux] [-a <extra-files-glob>] [-e <extra-nonbinary>] <condition> <subpackage>
654#
655%define kernel_variant_files(a:e:k:) \
656%if %{1}\
657%{expand:%%files %{?2}}\
658%defattr(-,root,root)\
659/boot/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?2:-%{2}}\
660/boot/uImage-%{KVERREL}%{?2:-%{2}}\
661/boot/System.map-%{KVERREL}%{?2:-%{2}}\
662#/boot/symvers-%{KVERREL}%{?2:-%{2}}.gz\
663/boot/config-%{KVERREL}%{?2:-%{2}}\
664%{?-a:%{-a*}}\
665%dir /lib/modules/%{KVERREL}%{?2:-%{2}}\
666/lib/modules/%{KVERREL}%{?2:-%{2}}/kernel\
667/lib/modules/%{KVERREL}%{?2:-%{2}}/build\
668/lib/modules/%{KVERREL}%{?2:-%{2}}/source\
669%ifnarch %{all_arm}\
670/lib/modules/%{KVERREL}%{?2:-%{2}}/vdso\
671%endif\
672/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.block\
673/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.dep.bin\
674/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.alias.bin\
675/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.symbols.bin\
676/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.networking\
677/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.order\
678/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.builtin* \
679%ghost /boot/initrd-%{KVERREL}%{?2:-%{2}}.img\
680%{?-e:%{-e*}}\
681%{expand:%%files %{?2:%{2}-}devel}\
682%defattr(-,root,root)\
683%verify(not mtime) /usr/src/kernels/%{KVERREL}%{?2:-%{2}}\
684%endif\
685%{nil}
686
687
688%files -n perf
689%defattr(-,root,root)
690/usr/bin/perf
691/usr/libexec/perf-core/
692
693
694%kernel_variant_files 1 u8500
695
696
697%changelog
698* Mon Jul 5 2010 Olle Trรคnk <olle.trank@stericsson.com> - 2.6.34
699- Added USB Gadget Multi (g_multi.ko) support.
700* Fri Jul 2 2010 Robert Rosengren <robert.rosengren@stericsson.com> - 2.6.34
701- Solved rpmlint errors and few warnings.
702* Tue Jun 29 2010 Robert Rosengren <robert.rosengren@stericsson.com> - 2.6.34
703- Turned STE changes into patches on vanilla kernel instead of one package.
704* Tue Jun 8 2010 Robert Rosengren <robert.rosengren@stericsson.com> - 2.6.34
705- Upgraded to STE Kernel version 2.6.34.
706* Mon May 17 2010 Robert Rosengren <robert.rosengren@stericsson.com> - 2.6.29
707- Initial STE version of 2.6.29 kernel, spec file based on MeeGo.