File kernel-syms.spec of Package kernel-source
#
# spec file for package kernel-syms (Version 2.6.27.57)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
# ( kernel-binary-packages is expanded into the list of all binary kernel
# packages for each architecture by Autobuild. )
%if 0%{?opensuse_bs}
# Strip off the build number ("y") from the "x.y" release number
%define source_rel %(release=%release; echo ${release%.*})
%else
# We don't have build numbers internally
%define source_rel %release
%endif
Name: kernel-syms
Summary: Kernel symbols
Version: 2.6.27.57
Release: <RELEASE>
License: GPL
Group: Development/Sources
AutoReqProv: off
BuildRequires: coreutils
%if ! 0%{?opensuse_bs}
BuildRequires: kernel-dummy
%endif
ExclusiveArch: %ix86 ppc ppc64 s390 s390x ia64 x86_64
%ifarch %ix86
BuildRequires: kernel-default kernel-pae kernel-debug kernel-xen kernel-ec2 kernel-vmi kernel-trace
%else
%ifarch ppc
BuildRequires: kernel-default kernel-kdump kernel-ppc64 kernel-ps3
%else
%ifarch ppc64
BuildRequires: kernel-default kernel-debug kernel-kdump kernel-ppc64
%else
%ifarch s390
BuildRequires: kernel-s390
%else
%ifarch s390x
BuildRequires: kernel-default
%else
%ifarch ia64
BuildRequires: kernel-default kernel-debug kernel-trace
%else
%ifarch x86_64
BuildRequires: kernel-default kernel-xen kernel-ec2 kernel-debug kernel-trace
%endif
%endif
%endif
%endif
%endif
%endif
%endif
# the packages above do require other things, but none of those are needed during package build
#!BuildIgnore: irqbalance xen
#!BuildIgnore: perl-Bootloader mkinitrd
#!BuildIgnore: module-init-tools_fix_bnc480524
Requires: linux
Requires: kernel-source = 2.6.27.57-%source_rel
Source11: arch-symbols
Source12: guards
Source21: config.conf
BuildRoot: %_tmppath/%name-%version-build
Prefix: /usr/src
%(chmod +x %_sourcedir/{arch-symbols,guards})
%define symbols %(set -- $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
%description
Kernel symbols.
%prep
echo "Architecture symbol(s):" %symbols
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
set -- %symbols
case kernel-syms in
(*-rt)
set -- RT "$@"
;;
esac
%_sourcedir/guards "$@" < %_sourcedir/series.conf > %_builddir/kernel-syms.patches
for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do
arch="${config%%/*}"
flavor="${config#*/}"
rpm -q --quiet kernel-$flavor || continue
# Don't add the build infrastructure for kernels that are based
# on a different set of patches.
set -- kernel-$flavor $flavor $(case $flavor in (rt|rt_*) echo RT ;; esac)
%_sourcedir/guards $* %symbols < %_sourcedir/series.conf \
> %_builddir/kernel-$flavor.patches
diff -q %_builddir/{kernel-syms,kernel-$flavor}.patches || continue
# Make sure that all the kernel-$flavor version-release match the
# kernel-syms version-release.
set -- %version-%release $(rpm -q --qf '%%{VERSION}-%%{RELEASE}' kernel-$flavor)
%if 0%{?opensuse_bs}
set -- ${1%.*} ${2%.*}
%endif
if [ "$1" != "$2" ]; then
echo "version-release of %name-$1 and kernel-$flavor-$2 do not match" >&2
exit 1
fi
shopt -s nullglob
for symvers in /usr/src/linux-*-obj/$arch/$flavor/Module.symvers; do
cp -p --parents $symvers $RPM_BUILD_ROOT/
for file in /lib/modules/*-$flavor/modules.alias; do
cp -p $file $(dirname $RPM_BUILD_ROOT$symvers)
done
done
for symsets in /boot/symsets-*-$flavor.tar.gz; do
cp -p --parents $symsets $RPM_BUILD_ROOT/
done
for file in /lib/modules/*-$flavor/build; do
cp -pd --parents $file $RPM_BUILD_ROOT/
done
done
%files
%defattr(-, root, root)
/usr/src/linux-*-obj
/boot/symsets-*-*.tar.gz
/lib/modules/*/build