blob: ab96429c43d8dc372ccba79b5ca98a2aabf0b2e9 [file] [log] [blame]
#
# Spec file originally created for Fedora, modified for Moblin Linux
#
Summary: The Linux kernel (the core of the Linux operating system)
# For a stable, released kernel, released_kernel should be 1. For rawhide
# and/or a kernel built from an rc snapshot, released_kernel should
# be 0.
%define released_kernel 1
# Versions of various parts
# base_sublevel is the kernel version we're starting with and patching
# on top of -- for example, 2.6.22-rc7 starts with a 2.6.21 base,
# which yields a base_sublevel of 21.
%define base_sublevel 34
## If this is a released kernel ##
%if 0%{?released_kernel}
# Do we have a 2.6.21.y update to apply?
%define stable_update 0
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev .%{stable_update}
%endif
%define rpmversion 2.6.%{base_sublevel}%{?stablerev}
## The not-released-kernel case ##
%else
# The next upstream release sublevel (base_sublevel+1)
%define upstream_sublevel %(expr %{base_sublevel} + 1)
# The rc snapshot level
%define rcrev 8
%if 0%{?rcrev}
%define rctag ~rc%rcrev
%endif
%if !0%{?rcrev}
%define rctag ~rc0
%endif
# Set rpm version accordingly
%define rpmversion 2.6.%{upstream_sublevel}%{?rctag}
%endif
# The kernel tarball/base version
%define kversion 2.6.%{base_sublevel}
%define make_target bzImage
%define KVERREL %{version}-%{release}
%define hdrarch %_target_cpu
%define all_x86 i386 i586 i686 %{ix86}
%define all_arm arm %{arm}
# Overrides for generic default options
%define all_arch_configs kernel-*.config
# Per-arch tweaks
%ifarch %{all_x86}
%define all_arch_configs kernel-*.config
%define image_install_path boot
%define hdrarch i386
%define kernel_image arch/x86/boot/bzImage
%endif
%ifarch x86_64
%define all_arch_configs kernel-%{version}-x86_64*.config
%define image_install_path boot
%define kernel_image arch/x86/boot/bzImage
%endif
%ifarch %{all_arm}
%define all_arch_configs kernel-*.config
%define image_install_path boot
%define kernel_image arch/arm/boot/zImage
%define make_target uImage
%endif
%define oldconfig_target nonint_oldconfig
#
# Packages that need to be installed before the kernel is, because the %post
# scripts use them.
#
%define kernel_prereq fileutils, module-init-tools, mkinitrd >= 6.0.39-1
#
# Disable debug info
#
%define debug_package %{nil}
#
# This macro does requires, provides, conflicts, obsoletes for a kernel package.
# %%kernel_reqprovconf <subpackage>
# It uses any kernel_<subpackage>_conflicts and kernel_<subpackage>_obsoletes
# macros defined above.
#
%define kernel_reqprovconf \
Provides: kernel = %{rpmversion}-%{release}\
Provides: kernel-drm = 4.3.0\
Provides: kernel-uname-r = %{KVERREL}%{?1:-%{1}}\
Requires(pre): %{kernel_prereq}\
%{?1:%{expand:%%{?kernel_%{1}_conflicts:Conflicts: %%{kernel_%{1}_conflicts}}}}\
%{?1:%{expand:%%{?kernel_%{1}_obsoletes:Obsoletes: %%{kernel_%{1}_obsoletes}}}}\
%{?1:%{expand:%%{?kernel_%{1}_provides:Provides: %%{kernel_%{1}_provides}}}}\
# We can't let RPM do the dependencies automatic because it'll then pick up\
# a correct but undesirable perl dependency from the module headers which\
# isn't required for the kernel proper to function\
AutoReq: no\
AutoProv: yes\
%{nil}
Name: kernel%{?variant}
Group: System/Kernel
License: GPLv2
URL: http://www.kernel.org/
Version: %{rpmversion}
Release: 1
%kernel_reqprovconf
#
# List the packages used during the kernel build
#
BuildRequires: module-init-tools, bash >= 2.03, sh-utils
BuildRequires: findutils, make >= 3.78
#BuildRequires: linux-firmware
BuildRequires: elfutils-libelf-devel binutils-devel
BuildRequires: u-boot-tools
BuildRequires: fdupes
Source0: linux-%{kversion}.tar.gz
Source100: kernel-rpmlintrc
#
# Reminder of the patch filename format:
# linux-<version it is supposed to be upstream>-<description-separated-with-dashes>.patch
#
#
# Stable patch - critical bugfixes
#
#Patch: patch-2.6.33.2.bz2
#
# STE: scripts for automatically listing and applying patches
#
%define ste_patch_archive ste-patches.tar.gz
%define ste_patches \
%( \
if [ -e %{_sourcedir}/%{ste_patch_archive} ] \
then \
tar -C %{_sourcedir} -xzf %{_sourcedir}/%{ste_patch_archive} \
for i in `cd %{_sourcedir} && ls -1 *.patch.gz` \
do \
num=`echo $i | cut -d- -f1 | sed 's|^0*||g'` \
num=$(($num-1)) \
name=`echo $i` \
echo 'Patch'$num':\ '$name \
done \
fi \
)
%define ste_apply_patches \
%( \
if [ -e %{_sourcedir}/%{ste_patch_archive} ] \
then \
for i in `cd %{_sourcedir} && ls -1 *.patch.gz` \
do \
num=`echo $i | cut -d- -f1 | sed 's|^0*||g'` \
num=$(($num-1)) \
echo '%patch'$num' -p1'\
# echo 'patch -i '%{_sourcedir}/$i' -p1 --verbose'\
done \
fi \
)
%ste_patches
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
%description
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device
input and output, etc.
#
# This macro creates a kernel-<subpackage>-devel package.
# %%kernel_devel_package <subpackage> <pretty-name>
#
%define kernel_devel_package() \
%package %{?1:%{1}-}devel\
Summary: Development package for building kernel modules to match the %{?2:%{2} }kernel\
Group: System/Kernel\
Provides: kernel%{?1:-%{1}}-devel = %{version}-%{release}\
Provides: kernel-devel = %{version}-%{release}%{?1:-%{1}}\
Provides: kernel-devel-uname-r = %{KVERREL}%{?1:-%{1}}\
Requires: kernel%{?1:-%{1}} = %{version}-%{release}\
AutoReqProv: no\
Requires(pre): /usr/bin/find\
%description -n kernel%{?variant}%{?1:-%{1}}-devel\
This package provides kernel headers and makefiles sufficient to build modules\
against the %{?2:%{2} }kernel package.\
%{nil}
#
# This macro creates a kernel-<subpackage> and its -devel too.
# %%define variant_summary The Linux kernel compiled for <configuration>
# %%kernel_variant_package [-n <pretty-name>] <subpackage>
#
%define kernel_variant_package(n:) \
%package %1\
Summary: %{variant_summary}\
Group: System/Kernel\
%kernel_reqprovconf\
%{expand:%%kernel_devel_package %1 %{!?-n:%1}%{?-n:%{-n*}}}\
%{nil}
# First the auxiliary packages of the main kernel package.
%kernel_devel_package
%package -n perf
Summary: The 'perf' performance counter tool
Group: System/Performance
Obsoletes: oprofile <= 0.9.5
%description -n perf
This package provides the "perf" tool that can be used to monitor performance counter events
as well as various kernel internal events.
# Now, each variant package.
%define variant_summary Kernel for the ste u8500
%kernel_variant_package u8500
%description u8500
This package contains the kernel optimized for the Nokia N900 device
%prep
# First we unpack the kernel tarball.
# If this isn't the first make prep, we use links to the existing clean tarball
# which speeds things up quite a bit.
# Update to latest upstream.
%if 0%{?released_kernel}
%define vanillaversion 2.6.%{base_sublevel}
# released_kernel with stable_update available case
%if 0%{?stable_update}
%define vanillaversion 2.6.%{base_sublevel}.%{stable_update}
%endif
# non-released_kernel case
%else
%if 0%{?rcrev}
%define vanillaversion 2.6.%{upstream_sublevel}-rc%{rcrev}
%endif
%else
# pre-{base_sublevel+1}-rc1 case
%endif
if [ ! -d kernel-%{kversion}/vanilla-%{vanillaversion} ]; then
# Ok, first time we do a make prep.
rm -f pax_global_header
%setup -q -n kernel-%{kversion} -c
mv linux-%{kversion} vanilla-%{vanillaversion}
cd vanilla-%{vanillaversion}
%if 0%{?rcrev}
# patch-2.6.%{upstream_sublevel}-rc%{rcrev}.bz2
#%patch00 -p1
%endif
#
# Reminder of the patch filename format:
# linux-<version it is supposed to be upstream>-<description-separated-with-dashes>.patch
#
#
# Stable patch - critical bugfixes
#
#
# STE: Applying all patches generated from script
#
%ste_apply_patches
# STE: Workaround chmod 644 on all headers, since patch dont like chmod'ing (?)
find . -name "*.h" -exec chmod 644 {} \;
# STE: Workaround end
cd ..
else
# We already have a vanilla dir.
cd kernel-%{kversion}
if [ -d linux-%{kversion} ]; then
# Just in case we ctrl-c'd a prep already
rm -rf deleteme
# Move away the stale away, and delete in background.
mv linux-%{kversion} deleteme
rm -rf deleteme &
fi
fi
cp -rl vanilla-%{vanillaversion} linux-%{kversion}
cd linux-%{kversion}
# Any further pre-build tree manipulations happen here.
# only deal with configs if we are going to build for the arch
# get rid of unwanted files resulting from patch fuzz
find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null
cd ..
###
### build
###
%build
cp_vmlinux()
{
eu-strip --remove-comment -o "$2" "$1"
}
BuildKernel() {
MakeTarget=$1
KernelImage=$2
Flavour=$3
InstallName=${4:-vmlinuz}
# Pick the right config file for the kernel we're building
Config=kernel${Flavour:+-${Flavour}}.config
DevelDir=/usr/src/kernels/%{KVERREL}${Flavour:+-${Flavour}}
# When the bootable image is just the ELF kernel, strip it.
# We already copy the unstripped file into the debuginfo package.
if [ "$KernelImage" = vmlinux ]; then
CopyKernel=cp_vmlinux
else
CopyKernel=cp
fi
KernelVer=%{version}-%{release}${Flavour:+-${Flavour}}
echo BUILDING A KERNEL FOR ${Flavour} %{_target_cpu}...
# make sure EXTRAVERSION says what we want it to say
perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{?stablerev}%{?rctag}-%{release}/" Makefile
# perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{?stablerev}%{?rctag}-%{release}${Flavour:+-${Flavour}}/" Makefile
# and now to start the build process
make -s mrproper
# Set config
make %{?_smp_mflags} mop500$(DEBUG)_power_defconfig
# STE: Disable multibuffer and multitouch.
scripts/config --file .config --enable DISPLAY_GENERIC_DSI_PRIMARY_AUTO_SYNC --enable DISPLAY_GENERIC_DSI_SECONDARY_AUTO_SYNC
# Does not exist in the 34 kernel yet
#scripts/config --file .config --disable U8500_TSC_MULTITOUCH
# Enable pmem
scripts/config --file .config --enable CONFIG_ANDROID_PMEM
# Enable hwmem
scripts/config --file .config --enable CONFIG_HWMEM
# STE: Enable conf for external sd-cards.
scripts/config --file .config --enable LEVELSHIFTER_HREF_V1_PLUS
# STE: Enable g_multi USB gadget with RNDIS, CDC Serial and Storage configuration.
scripts/config --file .config --module CONFIG_USB_G_MULTI --enable CONFIG_USB_G_MULTI_RNDIS --disable USB_G_MULTI_CDC
# STE: Enable CONFIG_MCDE_FB_AVOID_REALLOC to avoid reallocations.
scripts/config --file .config --enable CONFIG_MCDE_FB_AVOID_REALLOC
scripts/config --file .config --enable CONFIG_DISPLAY_GENERIC_DSI_PRIMARY_AUTO_SYNC
Arch="x86"
%ifarch %{all_arm}
Arch="arm"
%endif
echo USING ARCH=$Arch
# Build
make %{?_smp_mflags} ARCH=$Arch $MakeTarget
make %{?_smp_mflags} ARCH=$Arch modules
# STE: uImage placed for now in boot.
cp -f arch/arm/boot/uImage $RPM_BUILD_ROOT/boot/uImage-$KernelVer
chmod 755 $RPM_BUILD_ROOT/boot/uImage-$KernelVer
# Start installing the results
install -m 644 .config $RPM_BUILD_ROOT/boot/config-$KernelVer
install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer
touch $RPM_BUILD_ROOT/boot/initrd-$KernelVer.img
if [ -f arch/$Arch/boot/zImage.stub ]; then
cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/boot/zImage.stub-$KernelVer || :
fi
$CopyKernel $KernelImage \
$RPM_BUILD_ROOT/boot/$InstallName-$KernelVer
chmod 755 $RPM_BUILD_ROOT/boot/$InstallName-$KernelVer
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
make ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer
%ifnarch %{all_arm}
make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
%endif
# And save the headers/makefiles etc for building modules against
#
# This all looks scary, but the end result is supposed to be:
# * all arch relevant include/ files
# * all Makefile/Kconfig files
# * all script/ files
rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/source
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
(cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source)
# dirs for additional modules per module-init-tools, kbuild/modules.txt
# first copy everything
cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
cp System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
if [ -s Module.markers ]; then
cp Module.markers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
fi
# then drop all but the needed Makefiles/Kconfig files
rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Documentation
rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts
rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
if [ -d arch/%{_arch}/scripts ]; then
cp -a arch/%{_arch}/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || :
fi
if [ -f arch/%{_arch}/*lds ]; then
cp -a arch/%{_arch}/*lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/ || :
fi
rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o
rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o
cp -a --parents arch/%{_arch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
if [ "$Flavour" = u8500 ]; then
# U8500 specific include files
cp -a --parents arch/arm/mach-ux500/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
cp -a --parents arch/arm/plat-nomadik/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
fi
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
cd include
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
#cp -a `readlink asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
# While arch/powerpc/include/asm is still a symlink to the old
# include/asm-ppc{64,} directory, include that in kernel-devel too.
if [ "$Arch" = "powerpc" -a -r ../arch/powerpc/include/asm ]; then
cp -a `readlink ../arch/powerpc/include/asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/$Arch/include
pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/$Arch/include
ln -sf ../../../include/asm-ppc* asm
popd
fi
# Find and remove .gitignore
find $RPM_BUILD_ROOT/lib/modules/$KernelVer/build -name .gitignore | xargs --no-run-if-empty rm -f
# Make sure the Makefile and version.h have a matching timestamp so that
# external modules can be built
touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/version.h
touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/generated/autoconf.h
# Copy .config to include/config/auto.conf so "make prepare" is unnecessary.
cp $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/config/auto.conf
cd ..
#
# save the vmlinux file for kernel debugging into the kernel-debuginfo rpm
#
# cp vmlinux $RPM_BUILD_ROOT/lib/modules/$KernelVer
find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames
# mark modules executable so that strip-to-file can strip them
xargs --no-run-if-empty chmod u+x < modnames
# Generate a list of modules for block and networking.
fgrep /drivers/ modnames | xargs --no-run-if-empty nm -upA |
sed -n 's,^.*/\([^/]*\.ko\): *U \(.*\)$,\1 \2,p' > drivers.undef
collect_modules_list()
{
sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef |
LC_ALL=C sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1
}
collect_modules_list networking \
'register_netdev|ieee80211_register_hw|usbnet_probe'
collect_modules_list block \
'ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans'
# remove files that will be auto generated by depmod at rpm -i time
for i in alias ccwmap dep ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols usbmap
do
rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$i
done
# Move the devel headers out of the root file system
mkdir -p $RPM_BUILD_ROOT/usr/src/kernels
mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir
ln -sf ../../..$DevelDir $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
# Last but not least, remove few kernel dupes..
%fdupes $RPM_BUILD_ROOT/$DevelDir
}
###
# DO it...
###
# prepare directories
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/boot
cd linux-%{kversion}
BuildKernel %make_target %kernel_image u8500
###
### install
###
%define install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package}}}\
%%install
%install
# NOTE - Linux Kernel already installed in build section. Now only installing perf tool.
cd linux-%{kversion}
cd tools/perf
make DESTDIR=$RPM_BUILD_ROOT install
mkdir -p $RPM_BUILD_ROOT/usr/bin/
mkdir -p $RPM_BUILD_ROOT/usr/libexec/
mv $RPM_BUILD_ROOT/bin/* $RPM_BUILD_ROOT/usr/bin/
mv $RPM_BUILD_ROOT/libexec/* $RPM_BUILD_ROOT/usr/libexec/
rm -rf $RPM_BUILD_ROOT/lib/firmware
%fdupes $RPM_BUILD_ROOT/usr/libexec/
###
### clean
###
%clean
rm -rf $RPM_BUILD_ROOT
###
### scripts
###
#
# This macro defines a %%post script for a kernel*-devel package.
# %%kernel_devel_post <subpackage>
#
%define kernel_devel_post() \
%{expand:%%post %{?1:%{1}-}devel}\
if [ -f /etc/sysconfig/kernel ]\
then\
. /etc/sysconfig/kernel || exit $?\
fi\
if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ]\
then\
(cd /usr/src/kernels/%{KVERREL}%{?1:-%{1}} &&\
/usr/bin/find . -type f | while read f; do\
hardlink -c /usr/src/kernels/*.fc*.*/$f $f\
done)\
fi\
%{nil}
# This macro defines a %%posttrans script for a kernel package.
# %%kernel_variant_posttrans [-v <subpackage>] [-s <s> -r <r>] <mkinitrd-args>
# More text can follow to go at the end of this variant's %%post.
#
%define kernel_variant_posttrans(s:r:v:) \
%{expand:%%posttrans %{?-v*}}\
/sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --rpmposttrans %{KVERREL}%{?-v:-%{-v*}} || exit $?\
%{nil}
#
# This macro defines a %%post script for a kernel package and its devel package.
# %%kernel_variant_post [-v <subpackage>] [-s <s> -r <r>] <mkinitrd-args>
# More text can follow to go at the end of this variant's %%post.
#
%define kernel_variant_post(s:r:v:) \
%{expand:%%kernel_devel_post %{?-v*}}\
%{expand:%%kernel_variant_posttrans %{?-v*}}\
%{expand:%%post %{?-v*}}\
%{-s:\
if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\
[ -f /etc/sysconfig/kernel ]; then\
/bin/sed -i -e 's/^DEFAULTKERNEL=%{-s*}$/DEFAULTKERNEL=%{-r*}/' /etc/sysconfig/kernel || exit $?\
fi}\
# Added workaround for kernel modules built in a chroot environment\
# where modprobe fails \
if [ ! -d /lib/modules/`uname -r`/kernel ]; then \
ln -sf /lib/modules/%{KVERREL}%{?-v:-%{-v*}} /lib/modules/`uname -r`\
fi \
/sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --mkinitrd --depmod --install %{*} %{KVERREL}%{?-v:-%{-v*}} || exit $?\
%{nil}
#
# This macro defines a %%preun script for a kernel package.
# %%kernel_variant_preun <subpackage>
#
%define kernel_variant_preun() \
%{expand:%%preun %{?1}} \
/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}%{?1:-%{1}} || exit $? \
%{nil}
%kernel_variant_preun u8500
%kernel_variant_post -v u8500
if [ -x /sbin/ldconfig ]
then
/sbin/ldconfig -X || exit $?
fi
###
### file lists
###
# This is %{image_install_path} on an arch where that includes ELF files,
# or empty otherwise.
%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
#
# This macro defines the %%files sections for a kernel package
# and its devel packages.
# %%kernel_variant_files [-k vmlinux] [-a <extra-files-glob>] [-e <extra-nonbinary>] <condition> <subpackage>
#
%define kernel_variant_files(a:e:k:) \
%if %{1}\
%{expand:%%files %{?2}}\
%defattr(-,root,root)\
/boot/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?2:-%{2}}\
/boot/uImage-%{KVERREL}%{?2:-%{2}}\
/boot/System.map-%{KVERREL}%{?2:-%{2}}\
#/boot/symvers-%{KVERREL}%{?2:-%{2}}.gz\
/boot/config-%{KVERREL}%{?2:-%{2}}\
%{?-a:%{-a*}}\
%dir /lib/modules/%{KVERREL}%{?2:-%{2}}\
/lib/modules/%{KVERREL}%{?2:-%{2}}/kernel\
/lib/modules/%{KVERREL}%{?2:-%{2}}/build\
/lib/modules/%{KVERREL}%{?2:-%{2}}/source\
%ifnarch %{all_arm}\
/lib/modules/%{KVERREL}%{?2:-%{2}}/vdso\
%endif\
/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.block\
/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.dep.bin\
/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.alias.bin\
/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.symbols.bin\
/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.networking\
/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.order\
/lib/modules/%{KVERREL}%{?2:-%{2}}/modules.builtin* \
%ghost /boot/initrd-%{KVERREL}%{?2:-%{2}}.img\
%{?-e:%{-e*}}\
%{expand:%%files %{?2:%{2}-}devel}\
%defattr(-,root,root)\
%verify(not mtime) /usr/src/kernels/%{KVERREL}%{?2:-%{2}}\
%endif\
%{nil}
%files -n perf
%defattr(-,root,root)
/usr/bin/perf
/usr/libexec/perf-core/
%kernel_variant_files 1 u8500
%changelog
* Mon Jul 5 2010 Olle Trรคnk <olle.trank@stericsson.com> - 2.6.34
- Added USB Gadget Multi (g_multi.ko) support.
* Fri Jul 2 2010 Robert Rosengren <robert.rosengren@stericsson.com> - 2.6.34
- Solved rpmlint errors and few warnings.
* Tue Jun 29 2010 Robert Rosengren <robert.rosengren@stericsson.com> - 2.6.34
- Turned STE changes into patches on vanilla kernel instead of one package.
* Tue Jun 8 2010 Robert Rosengren <robert.rosengren@stericsson.com> - 2.6.34
- Upgraded to STE Kernel version 2.6.34.
* Mon May 17 2010 Robert Rosengren <robert.rosengren@stericsson.com> - 2.6.29
- Initial STE version of 2.6.29 kernel, spec file based on MeeGo.