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
openSUSE Build Service is sponsored by