kernel-source/kernel-source.spec

200 lines
6.6 KiB
RPMSpec
Raw Normal View History

#
# spec file for package kernel-source (Version 2.6.31)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
# icecream 0
%define srcversion 2.6.30
%define patchversion 2.6.31-rc5-git3
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
%define src_install_dir usr/src/linux-%kernelrelease%variant
%define obj_install_dir /%src_install_dir-obj
%define rpm_install_dir %buildroot%real_install_dir
%define tolerate_unknown_new_config_options @TOLERATE_UNKNOWN_NEW_CONFIG_OPTIONS@
Name: kernel-source
Summary: The Linux Kernel Sources
Version: 2.6.31
Release: 2
%if %using_buildservice
%else
%endif
License: GPL v2 only
Group: Development/Sources
Url: http://www.kernel.org/
AutoReqProv: off
BuildRequires: coreutils sed
BuildRequires: fdupes
Requires(post): coreutils sed
Provides: linux
Provides: %name = %version-%source_rel
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source2: source-post.sh
Source3: %name.rpmlintrc
Source8: devel-pre.sh
Source9: devel-post.sh
Source10: preun.sh
Source11: postun.sh
Source12: pre.sh
Source13: post.sh
Source14: series.conf
Source16: guards
Source21: config.conf
Source23: supported.conf
Source33: check-for-config-changes
Source34: check-supported-list
Source37: README.SUSE
Source38: README.KSYMS
Source40: source-timestamp
Source41: built-in-where
Source44: find-provides
Source45: module-renames
Source46: modversions
Source47: extract-modaliases
Source48: macros.kernel-source
Source49: kernel-module-subpackage
Source50: symsets.pl
Source51: mkspec
Source52: kernel-source%variant.changes
Source53: kernel-source.spec.in
Source54: kernel-binary.spec.in
Source55: kernel-syms.spec.in
Source56: config.sh
Source57: compute-PATCHVERSION.sh
Source58: old-packages.conf
Source59: arch-symbols
Source60: package-descriptions
Source61: kernel-spec-macros
Source100: config.tar.bz2
Source101: patches.arch.tar.bz2
Source102: patches.drivers.tar.bz2
Source103: patches.fixes.tar.bz2
Source104: patches.rpmify.tar.bz2
Source105: patches.suse.tar.bz2
Source107: patches.xen.tar.bz2
Source108: patches.addon.tar.bz2
Source109: patches.kernel.org.tar.bz2
Source110: patches.apparmor.tar.bz2
Source111: patches.rt.tar.bz2
Source112: patches.trace.tar.bz2
Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
Prefix: /usr/src
%(chmod +x %_sourcedir/{guards,check-for-config-changes,symsets.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols})
%define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
%define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac)
%define do_vanilla "%variant" == ""
%description
Linux kernel sources with many fixes and improvements.
%source_timestamp
%package vanilla
Summary: Vanilla Linux kernel sources with minor build fixes.
License: GPL v2 only
Group: Development/Sources
AutoReqProv: off
%description vanilla
Vanilla Linux kernel sources with minor build fixes.
%source_timestamp
%prep
if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
echo "Please get a copy of linux-%srcversion.tar.bz2 from" \
"ftp://ftp.kernel.org/pub/linux/kernel/v2.6/."
fi
echo "Symbol(s): %symbols"
# Unpack all sources and patches
%setup -q -c -T -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 113
%build
# Release number without the EXTRAVERSION
RELEASE=%source_rel
while [ "$RELEASE" != "${RELEASE#[^0-9]*.}" ]; do
RELEASE=${RELEASE#[^0-9]*.}
done
mkdir -p $RPM_BUILD_ROOT/usr/src
cd $RPM_BUILD_ROOT/usr/src
ln -sf linux%variant linux%variant # dummy symlink
# Unpack the vanilla kernel sources
tar xjf %_sourcedir/linux-%srcversion.tar.bz2
mv linux-%srcversion linux-%kernelrelease%variant
# generate script to apply patches
echo "trap 'echo \"*** patch \$_ failed ***\"' ERR" \
>%my_builddir/apply-patches.sh
%_sourcedir/guards %symbols <%_sourcedir/series.conf | \
sed 's:^:patch -s -F0 -E -p1 --no-backup-if-mismatch -i %my_builddir/:' \
>>%my_builddir/apply-patches.sh
%if %do_vanilla
egrep '^trap|patches\.(kernel\.org|rpmify)/' %my_builddir/apply-patches.sh \
>%my_builddir/apply-patches-vanilla.sh
cp -al linux-%kernelrelease%variant linux-%kernelrelease-vanilla
cd linux-%kernelrelease-vanilla
bash -ex %my_builddir/apply-patches-vanilla.sh
rm -f $(find . -name ".gitignore")
cd ..
%endif
cd linux-%kernelrelease%variant
bash -ex %my_builddir/apply-patches.sh
rm -f $(find . -name ".gitignore")
if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion
fi
# Hardlink duplicate files automatically (from package fdupes).
%fdupes $RPM_BUILD_ROOT
%install
# Install the documentation and example Kernel Module Package.
DOC=$RPM_BUILD_ROOT/usr/share/doc/packages/%name
mkdir -p $DOC
cp %_sourcedir/README.SUSE $DOC
ln -s /usr/share/doc/packages/%name/README.SUSE %buildroot/%src_install_dir/
install -m 755 -d $RPM_BUILD_ROOT/etc/rpm
install -m 644 %_sourcedir/macros.kernel-source $RPM_BUILD_ROOT/etc/rpm/
install -m 755 -d $RPM_BUILD_ROOT/usr/lib/rpm
install -m 644 %_sourcedir/kernel-module-subpackage \
$RPM_BUILD_ROOT/usr/lib/rpm/
for script in post; do
sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \
-e "s:@SRCVARIANT@:%variant:g" \
%_sourcedir/source-$script.sh > %name-$script.sh
done
%post -f %name-post.sh
%files
%defattr(-, root, root)
%ghost /usr/src/linux%variant
/usr/share/doc/packages/%name
/etc/rpm/macros.kernel-source
/usr/lib/rpm/kernel-module-subpackage
/%src_install_dir
%if %do_vanilla
%files vanilla
%defattr(-, root, root)
/usr/src/linux-%kernelrelease-vanilla
%endif
%changelog