Accepting request 33455 from Kernel:HEAD

Copy from Kernel:HEAD/kernel-source based on submit request 33455 from user michal-m

OBS-URL: https://build.opensuse.org/request/show/33455
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kernel-source?expand=0&rev=86
This commit is contained in:
OBS User autobuild 2010-02-25 10:22:51 +00:00 committed by Git OBS Bridge
parent faa78a441c
commit 823a5532c2
42 changed files with 1980 additions and 70 deletions

View File

@ -1,5 +1,5 @@
# The version of the main tarball to use # The version of the main tarball to use
SRCVERSION=2.6.32 SRCVERSION=2.6.33
# variant of the kernel-source package, either empty or "-rt" # variant of the kernel-source package, either empty or "-rt"
VARIANT= VARIANT=
# buildservice projects to build the kernel against # buildservice projects to build the kernel against

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:8e2eda99e4a791749f8a979a3f371a2a8714d61d0e199c8f0c2a2c86d6661d34 oid sha256:18b6fb0811ee21fdfeb307510fb668c70659baaf7c8c9b4cc5deb5bf70385bee
size 203062 size 203076

View File

@ -7,6 +7,7 @@ use Data::Dumper;
# ( { sym => regexp, mod => regexp, fail => 0/1 }, ... ) # ( { sym => regexp, mod => regexp, fail => 0/1 }, ... )
my @rules; my @rules;
my ($opt_verbose, $opt_rules);
sub load_rules { sub load_rules {
my $file = shift; my $file = shift;
@ -82,6 +83,7 @@ sub kabi_change {
last; last;
} }
} }
return unless $fail or $opt_verbose;
print STDERR "KABI: symbol $sym($mod) "; print STDERR "KABI: symbol $sym($mod) ";
if ($newcrc) { if ($newcrc) {
print STDERR "changed crc from $oldcrc to $newcrc" print STDERR "changed crc from $oldcrc to $newcrc"
@ -100,7 +102,6 @@ sub xopen {
open($_[0], $_[1], @_[2..$#_]) or die "$_[2]: $!\n"; open($_[0], $_[1], @_[2..$#_]) or die "$_[2]: $!\n";
} }
my ($opt_verbose, $opt_rules);
my $res = GetOptions( my $res = GetOptions(
'verbose|v' => \$opt_verbose, 'verbose|v' => \$opt_verbose,
'rules|r=s' => \$opt_rules, 'rules|r=s' => \$opt_rules,

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor debug %define build_flavor debug
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-debug Name: kernel-debug
Summary: A Debug Version of the Kernel Summary: A Debug Version of the Kernel
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -119,6 +128,7 @@ Provides: kernel = %version-%source_rel
Provides: kernel-kdump Provides: kernel-kdump
Obsoletes: kernel-kdump Obsoletes: kernel-kdump
%endif %endif
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -152,6 +162,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 ia64 ppc64 x86_64 ExclusiveArch: %ix86 ia64 ppc64 x86_64
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -166,6 +177,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -194,8 +206,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -211,33 +225,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -247,6 +271,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -256,27 +281,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -285,10 +317,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -308,21 +342,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -358,10 +398,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -402,8 +444,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -422,28 +466,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -451,6 +503,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -460,11 +513,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -472,6 +527,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -479,6 +535,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -487,12 +544,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -501,11 +560,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -522,6 +583,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -536,6 +598,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -552,6 +615,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -560,15 +624,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -588,6 +655,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -595,6 +663,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -606,6 +675,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -646,6 +716,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -686,11 +757,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor default %define build_flavor default
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-default Name: kernel-default
Summary: The Standard Kernel Summary: The Standard Kernel
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -135,6 +144,7 @@ Obsoletes: kernel-64bit
Provides: smp kernel-smp Provides: smp kernel-smp
Obsoletes: smp kernel-smp Obsoletes: smp kernel-smp
%endif %endif
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -168,6 +178,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 ia64 ppc ppc64 s390x x86_64 ExclusiveArch: %ix86 ia64 ppc ppc64 s390x x86_64
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -182,6 +193,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -210,8 +222,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -226,33 +240,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -262,6 +286,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -271,27 +296,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -300,10 +332,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -323,21 +357,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -373,10 +413,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -417,8 +459,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -437,28 +481,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -466,6 +518,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -475,11 +528,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -487,6 +542,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -494,6 +550,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -502,12 +559,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -516,11 +575,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -537,6 +598,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -551,6 +613,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -567,6 +630,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -575,15 +639,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -603,6 +670,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -610,6 +678,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -621,6 +690,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -660,6 +730,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -699,11 +770,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor desktop %define build_flavor desktop
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-desktop Name: kernel-desktop
Summary: Kernel optimized for the desktop Summary: Kernel optimized for the desktop
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -115,6 +124,7 @@ Conflicts: lvm2 < 2.02.33
Conflicts: libc.so.6()(64bit) Conflicts: libc.so.6()(64bit)
%endif %endif
Provides: kernel = %version-%source_rel Provides: kernel = %version-%source_rel
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -148,6 +158,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64 ExclusiveArch: %ix86 x86_64
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -162,6 +173,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -190,8 +202,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -204,11 +218,13 @@ disabled.
This kernel supports up to 64GB of main memory. It requires Physical This kernel supports up to 64GB of main memory. It requires Physical
Addressing Extensions (PAE), which were introduced with the Pentium Pro Addressing Extensions (PAE), which were introduced with the Pentium Pro
processor. processor.
PAE is not only more physical address space but also important for the PAE is not only more physical address space but also important for the
"no execute" feature which disables execution of code that is marked as "no execute" feature which disables execution of code that is marked as
non-executable. Therefore, the PAE kernel should be used on any systems non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory. that support it, regardless of the amount of main memory.
%endif %endif
%source_timestamp %source_timestamp
%prep %prep
@ -217,33 +233,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -253,6 +279,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -262,27 +289,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -291,10 +325,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -314,21 +350,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -364,10 +406,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -408,8 +452,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -428,28 +474,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -457,6 +511,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -466,11 +521,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -478,6 +535,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -485,6 +543,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -493,12 +552,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -507,11 +568,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -528,6 +591,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -542,6 +606,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -558,6 +623,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -566,15 +632,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -594,6 +663,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -601,6 +671,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -612,6 +683,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -646,12 +718,15 @@ disabled.
This kernel supports up to 64GB of main memory. It requires Physical This kernel supports up to 64GB of main memory. It requires Physical
Addressing Extensions (PAE), which were introduced with the Pentium Pro Addressing Extensions (PAE), which were introduced with the Pentium Pro
processor. processor.
PAE is not only more physical address space but also important for the PAE is not only more physical address space but also important for the
"no execute" feature which disables execution of code that is marked as "no execute" feature which disables execution of code that is marked as
non-executable. Therefore, the PAE kernel should be used on any systems non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory. that support it, regardless of the amount of main memory.
%endif %endif
This package contains only the base modules, required in all installs. This package contains only the base modules, required in all installs.
%source_timestamp %source_timestamp
%preun base -f preun-base.sh %preun base -f preun-base.sh
@ -661,6 +736,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -695,12 +771,15 @@ disabled.
This kernel supports up to 64GB of main memory. It requires Physical This kernel supports up to 64GB of main memory. It requires Physical
Addressing Extensions (PAE), which were introduced with the Pentium Pro Addressing Extensions (PAE), which were introduced with the Pentium Pro
processor. processor.
PAE is not only more physical address space but also important for the PAE is not only more physical address space but also important for the
"no execute" feature which disables execution of code that is marked as "no execute" feature which disables execution of code that is marked as
non-executable. Therefore, the PAE kernel should be used on any systems non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory. that support it, regardless of the amount of main memory.
%endif %endif
This package contains additional modules not supported by Novell. This package contains additional modules not supported by Novell.
%source_timestamp %source_timestamp
%preun extra -f preun-extra.sh %preun extra -f preun-extra.sh
@ -710,11 +789,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -27,7 +27,7 @@ License: GPLv2+
Group: Documentation/Man Group: Documentation/Man
AutoReqProv: on AutoReqProv: on
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,7 +78,9 @@ if [ -d Documentation/kdb ] ; then
cp $i $RPM_BUILD_ROOT/%{_mandir}/man9/$k cp $i $RPM_BUILD_ROOT/%{_mandir}/man9/$k
done done
fi fi
ln -s /usr/share/man/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT/usr/share/man/man9/request_irq.9.gz ln -s /usr/share/man/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT/usr/share/man/man9/request_irq.9.gz
cp -a /usr/src/linux-%{version}-%{release_major}/{COPYING,CREDITS,MAINTAINERS,README,REPORTING-BUGS} . cp -a /usr/src/linux-%{version}-%{release_major}/{COPYING,CREDITS,MAINTAINERS,README,REPORTING-BUGS} .
%clean %clean

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor ec2 %define build_flavor ec2
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-ec2 Name: kernel-ec2
Summary: The Amazon EC2 Xen Kernel Summary: The Amazon EC2 Xen Kernel
Version: 2.6.33 Version: 2.6.33
Release: 2 Release: 3
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -115,6 +124,7 @@ Conflicts: lvm2 < 2.02.33
Conflicts: libc.so.6()(64bit) Conflicts: libc.so.6()(64bit)
%endif %endif
Provides: kernel = %version-%source_rel Provides: kernel = %version-%source_rel
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -148,6 +158,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64 ExclusiveArch: %ix86 x86_64
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -162,6 +173,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -190,8 +202,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -209,33 +223,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -245,6 +269,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -254,27 +279,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -283,10 +315,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -306,21 +340,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -356,10 +396,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -400,8 +442,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -420,28 +464,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -449,6 +501,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -458,11 +511,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -470,6 +525,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -477,6 +533,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -485,12 +542,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -499,11 +558,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -520,6 +581,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -534,6 +596,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -550,6 +613,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -558,15 +622,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -586,6 +653,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -593,6 +661,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -604,6 +673,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -646,6 +716,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -688,11 +759,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor pae %define build_flavor pae
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-pae Name: kernel-pae
Summary: Kernel with PAE Support Summary: Kernel with PAE Support
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -119,6 +128,7 @@ Provides: kernel = %version-%source_rel
Provides: kernel-bigsmp Provides: kernel-bigsmp
Obsoletes: kernel-bigsmp Obsoletes: kernel-bigsmp
%endif %endif
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -152,6 +162,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 ExclusiveArch: %ix86
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -166,6 +177,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -194,8 +206,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -217,33 +231,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -253,6 +277,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -262,27 +287,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -291,10 +323,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -314,21 +348,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -364,10 +404,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -408,8 +450,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -428,28 +472,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -457,6 +509,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -466,11 +519,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -478,6 +533,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -485,6 +541,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -493,12 +550,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -507,11 +566,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -528,6 +589,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -542,6 +604,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -558,6 +621,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -566,15 +630,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -594,6 +661,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -601,6 +669,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -612,6 +681,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -658,6 +728,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -704,11 +775,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor ppc64 %define build_flavor ppc64
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-ppc64 Name: kernel-ppc64
Summary: Kernel for ppc64 Systems Summary: Kernel for ppc64 Systems
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -123,6 +132,7 @@ Obsoletes: kernel-pmac64 kernel-pseries64 kernel-iseries64 kernel-kdump
Provides: kernel-kdump Provides: kernel-kdump
Obsoletes: kernel-kdump Obsoletes: kernel-kdump
%endif %endif
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -156,6 +166,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: ppc ppc64 ExclusiveArch: ppc ppc64
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -170,6 +181,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -198,8 +210,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -221,33 +235,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -257,6 +281,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -266,27 +291,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -295,10 +327,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -318,21 +352,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -368,10 +408,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -412,8 +454,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -432,28 +476,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -461,6 +513,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -470,11 +523,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -482,6 +537,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -489,6 +545,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -497,12 +554,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -511,11 +570,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -532,6 +593,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -546,6 +608,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -562,6 +625,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -570,15 +634,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -598,6 +665,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -605,6 +673,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -616,6 +685,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -662,6 +732,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -708,11 +779,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor ps3 %define build_flavor ps3
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-ps3 Name: kernel-ps3
Summary: kernel for ps3 bootloader Summary: kernel for ps3 bootloader
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -115,6 +124,7 @@ Conflicts: lvm2 < 2.02.33
Conflicts: libc.so.6()(64bit) Conflicts: libc.so.6()(64bit)
%endif %endif
Provides: kernel = %version-%source_rel Provides: kernel = %version-%source_rel
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -148,6 +158,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: ppc ExclusiveArch: ppc
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -162,6 +173,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -190,8 +202,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -209,33 +223,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -245,6 +269,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -254,27 +279,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -283,10 +315,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -306,21 +340,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -356,10 +396,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -400,8 +442,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -420,28 +464,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -449,6 +501,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -458,11 +511,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -470,6 +525,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -477,6 +533,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -485,12 +542,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -499,11 +558,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -520,6 +581,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -534,6 +596,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -550,6 +613,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -558,15 +622,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -586,6 +653,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -593,6 +661,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -604,6 +673,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -646,6 +716,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -688,11 +759,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor s390 %define build_flavor s390
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-s390 Name: kernel-s390
Summary: The Standard Kernel Summary: The Standard Kernel
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -119,6 +128,7 @@ Provides: kernel = %version-%source_rel
Provides: kernel-32bit Provides: kernel-32bit
Obsoletes: kernel-32bit Obsoletes: kernel-32bit
%endif %endif
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -152,6 +162,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: s390 ExclusiveArch: s390
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -166,6 +177,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -194,8 +206,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -210,33 +224,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -246,6 +270,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -255,27 +280,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -284,10 +316,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -307,21 +341,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -357,10 +397,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -401,8 +443,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -421,28 +465,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -450,6 +502,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -459,11 +512,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -471,6 +526,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -478,6 +534,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -486,12 +543,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -500,11 +559,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -521,6 +582,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -535,6 +597,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -551,6 +614,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -559,15 +623,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -587,6 +654,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -594,6 +662,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -605,6 +674,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -644,6 +714,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -683,11 +754,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -18,10 +18,12 @@
# norootforbuild # norootforbuild
# icecream 0 # icecream 0
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define src_install_dir usr/src/linux-%kernelrelease%variant %define src_install_dir usr/src/linux-%kernelrelease%variant
%define obj_install_dir /%src_install_dir-obj %define obj_install_dir /%src_install_dir-obj
%define rpm_install_dir %buildroot%real_install_dir %define rpm_install_dir %buildroot%real_install_dir
@ -29,7 +31,7 @@
Name: kernel-source Name: kernel-source
Summary: The Linux Kernel Sources Summary: The Linux Kernel Sources
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -98,9 +100,12 @@ Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch BuildArch: noarch
Prefix: /usr/src Prefix: /usr/src
%(chmod +x %_sourcedir/{apply-patches,guards,check-for-config-changes,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols}) %(chmod +x %_sourcedir/{apply-patches,guards,check-for-config-changes,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols})
%define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
%define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac) %define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac)
%define do_vanilla "%variant" == "" %define do_vanilla "%variant" == ""
%description %description
@ -125,7 +130,9 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
echo "Please get a copy of linux-%srcversion.tar.bz2 from" \ echo "Please get a copy of linux-%srcversion.tar.bz2 from" \
"ftp://ftp.kernel.org/pub/linux/kernel/v2.6/." "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/."
fi fi
echo "Symbol(s): %symbols" echo "Symbol(s): %symbols"
# Unpack all sources and patches # 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 %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
@ -135,12 +142,16 @@ RELEASE=%source_rel
while [ "$RELEASE" != "${RELEASE#[^0-9]*.}" ]; do while [ "$RELEASE" != "${RELEASE#[^0-9]*.}" ]; do
RELEASE=${RELEASE#[^0-9]*.} RELEASE=${RELEASE#[^0-9]*.}
done done
mkdir -p $RPM_BUILD_ROOT/usr/src mkdir -p $RPM_BUILD_ROOT/usr/src
cd $RPM_BUILD_ROOT/usr/src cd $RPM_BUILD_ROOT/usr/src
ln -sf linux%variant linux%variant # dummy symlink ln -sf linux%variant linux%variant # dummy symlink
# Unpack the vanilla kernel sources # Unpack the vanilla kernel sources
tar xjf %_sourcedir/linux-%srcversion.tar.bz2 tar xjf %_sourcedir/linux-%srcversion.tar.bz2
mv linux-%srcversion linux-%kernelrelease%variant mv linux-%srcversion linux-%kernelrelease%variant
%if %do_vanilla %if %do_vanilla
cp -al linux-%kernelrelease%variant linux-%kernelrelease-vanilla cp -al linux-%kernelrelease%variant linux-%kernelrelease-vanilla
cd linux-%kernelrelease-vanilla cd linux-%kernelrelease-vanilla
@ -148,12 +159,15 @@ cd linux-%kernelrelease-vanilla
rm -f $(find . -name ".gitignore") rm -f $(find . -name ".gitignore")
cd .. cd ..
%endif %endif
cd linux-%kernelrelease%variant cd linux-%kernelrelease%variant
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols %_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
rm -f $(find . -name ".gitignore") rm -f $(find . -name ".gitignore")
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
# Hardlink duplicate files automatically (from package fdupes). # Hardlink duplicate files automatically (from package fdupes).
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -163,11 +177,13 @@ DOC=$RPM_BUILD_ROOT/usr/share/doc/packages/%name
mkdir -p $DOC mkdir -p $DOC
cp %_sourcedir/README.SUSE $DOC cp %_sourcedir/README.SUSE $DOC
ln -s /usr/share/doc/packages/%name/README.SUSE %buildroot/%src_install_dir/ ln -s /usr/share/doc/packages/%name/README.SUSE %buildroot/%src_install_dir/
install -m 755 -d $RPM_BUILD_ROOT/etc/rpm install -m 755 -d $RPM_BUILD_ROOT/etc/rpm
install -m 644 %_sourcedir/macros.kernel-source $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 755 -d $RPM_BUILD_ROOT/usr/lib/rpm
install -m 644 %_sourcedir/kernel-module-subpackage \ install -m 644 %_sourcedir/kernel-module-subpackage \
$RPM_BUILD_ROOT/usr/lib/rpm/ $RPM_BUILD_ROOT/usr/lib/rpm/
for script in post; do for script in post; do
sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \
-e "s:@SRCVARIANT@:%variant:g" \ -e "s:@SRCVARIANT@:%variant:g" \
@ -183,6 +199,7 @@ done
/etc/rpm/macros.kernel-source /etc/rpm/macros.kernel-source
/usr/lib/rpm/kernel-module-subpackage /usr/lib/rpm/kernel-module-subpackage
/%src_install_dir /%src_install_dir
%if %do_vanilla %if %do_vanilla
%files vanilla %files vanilla

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -18,12 +18,13 @@
# norootforbuild # norootforbuild
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
Name: kernel-syms Name: kernel-syms
Summary: Kernel Symbol Versions (modversions) Summary: Kernel Symbol Versions (modversions)
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%define kernel_source_release %(LC_ALL=C rpm -q kernel-source%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0) %define kernel_source_release %(LC_ALL=C rpm -q kernel-source%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0)

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor trace %define build_flavor trace
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-trace Name: kernel-trace
Summary: The Realtime Linux Kernel Summary: The Realtime Linux Kernel
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -127,6 +136,7 @@ Obsoletes: kernel-32bit
Provides: kernel-64bit Provides: kernel-64bit
Obsoletes: kernel-64bit Obsoletes: kernel-64bit
%endif %endif
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -160,6 +170,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 ia64 ppc64 s390 s390x x86_64 ExclusiveArch: %ix86 ia64 ppc64 s390 s390x x86_64
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -174,6 +185,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -202,8 +214,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -218,33 +232,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -254,6 +278,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -263,27 +288,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -292,10 +324,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -315,21 +349,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -365,10 +405,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -409,8 +451,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -429,28 +473,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -458,6 +510,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -467,11 +520,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -479,6 +534,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -486,6 +542,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -494,12 +551,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -508,11 +567,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -529,6 +590,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -543,6 +605,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -559,6 +622,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -567,15 +631,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -595,6 +662,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -602,6 +670,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -613,6 +682,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -652,6 +722,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -691,11 +762,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor vanilla %define build_flavor vanilla
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-vanilla Name: kernel-vanilla
Summary: The Standard Kernel - without any SUSE patches Summary: The Standard Kernel - without any SUSE patches
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -123,6 +132,7 @@ Obsoletes: kernel-32bit
Provides: kernel-64bit Provides: kernel-64bit
Obsoletes: kernel-64bit Obsoletes: kernel-64bit
%endif %endif
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -156,6 +166,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 ia64 ppc ppc64 s390 s390x x86_64 ExclusiveArch: %ix86 ia64 ppc ppc64 s390 s390x x86_64
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -170,6 +181,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -198,8 +210,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -214,33 +228,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -250,6 +274,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -259,27 +284,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -288,10 +320,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -311,21 +345,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -361,10 +401,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -405,8 +447,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -425,28 +469,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -454,6 +506,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -463,11 +516,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -475,6 +530,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -482,6 +538,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -490,12 +547,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -504,11 +563,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -525,6 +586,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -539,6 +601,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -555,6 +618,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -563,15 +627,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -591,6 +658,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -598,6 +666,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -609,6 +678,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -648,6 +718,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -687,11 +758,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor vmi %define build_flavor vmi
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-vmi Name: kernel-vmi
Summary: VMI-enabled kernel Summary: VMI-enabled kernel
Version: 2.6.33 Version: 2.6.33
Release: 3 Release: 4
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -115,6 +124,7 @@ Conflicts: lvm2 < 2.02.33
Conflicts: libc.so.6()(64bit) Conflicts: libc.so.6()(64bit)
%endif %endif
Provides: kernel = %version-%source_rel Provides: kernel = %version-%source_rel
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -148,6 +158,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 ExclusiveArch: %ix86
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -162,6 +173,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -190,8 +202,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -207,33 +221,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -243,6 +267,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -252,27 +277,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -281,10 +313,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -304,21 +338,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -354,10 +394,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -398,8 +440,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -418,28 +462,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -447,6 +499,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -456,11 +509,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -468,6 +523,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -475,6 +531,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -483,12 +540,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -497,11 +556,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -518,6 +579,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -532,6 +594,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -548,6 +611,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -556,15 +620,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -584,6 +651,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -591,6 +659,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -602,6 +671,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -642,6 +712,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -682,11 +753,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Thu Feb 25 06:04:24 CET 2010 - jeffm@suse.com
- patches.xen/xen3-patch-2.6.33-rc8-final: Build fix for the
2.6.33-final update.
-------------------------------------------------------------------
Wed Feb 24 21:00:52 CET 2010 - jeffm@suse.de
- Updated to 2.6.33-final.
- Eliminated 4 patches.
-------------------------------------------------------------------
Wed Feb 24 20:02:26 CET 2010 - jeffm@suse.de
- patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5:
ftrace: fix ftrace_event_call alignment for use with gcc 4.5
(bnc#582222).
-------------------------------------------------------------------
Wed Feb 24 14:46:28 CET 2010 - jbeulich@novell.com
- Update Xen patches to 2.6.33-rc8 and c/s 997.
- patches.xen/xen-x86-time-per-cpu: fold per-CPU accounting data
into a structure.
- patches.xen/xen-x86-xtime-lock: reduce contention on xtime_lock
(bnc#569014, bnc#571041, bnc#571769, bnc#572146).
-------------------------------------------------------------------
Tue Feb 23 00:34:32 CET 2010 - jack@suse.de
- patches.fixes/novfs-fix-inode-uid: novfs: Get proper UID when
looking up inode (bnc#486997).
- patches.fixes/novfs-incorrect-filesize-fix: novfs: novfs
reports incorrect file size (bnc#426536).
- patches.fixes/novfs-truncate-fix: novfs: Fixes corruption of
OO documents on NSS Volumes (bnc#508259).
-------------------------------------------------------------------
Wed Feb 17 04:07:36 CET 2010 - nfbrown@suse.de
- patches.fixes/nfs-find-crash: Fix potential oops when running
find on an NFS mount. (bnc#573107).
-------------------------------------------------------------------
Tue Feb 16 21:21:22 CET 2010 - jeffm@suse.com
- Set CONFIG_LSM_MMAP_MIN_ADDR=4096 to allow qemu to emulate
other architectures properly (bnc#574654).
-------------------------------------------------------------------
Tue Feb 16 18:10:01 CET 2010 - jeffm@suse.com
- Update to 2.6.33-rc8.
- Eliminated 1 patch.
-------------------------------------------------------------------
Mon Feb 15 19:15:43 CET 2010 - rgoldwyn@suse.de
- patches.fixes/novfs-err_ptr-fix.diff: Oops in novfs:unlink_local
(bnc#569071).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de Fri Feb 12 17:36:05 CET 2010 - trenn@suse.de
@ -1846,6 +1908,11 @@ Mon Dec 14 18:45:26 CET 2009 - jjolly@suse.de
- patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking - patches.fixes/libfcoe-add-tracking-fip--0: libfcoe: add tracking
FIP Virtual Link Failure count (BNC#562046). FIP Virtual Link Failure count (BNC#562046).
-------------------------------------------------------------------
Mon Dec 14 16:41:36 CET 2009 - mmarek@suse.cz
- rpm/kabi.pl: Do not print harmless kabi changes by default.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de Mon Dec 14 14:41:57 CET 2009 - sjayaraman@suse.de

View File

@ -17,29 +17,36 @@
# norootforbuild # norootforbuild
%define srcversion 2.6.32 %define srcversion 2.6.33
%define patchversion 2.6.33-rc7 %define patchversion 2.6.33
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define build_flavor xen %define build_flavor xen
%define build_kdump (%build_flavor == "kdump") %define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2") %define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla") %define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3") %define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion %define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant %define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj %define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj %define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules}) %(chmod +x %_sourcedir/{apply-patches,arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.) # defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT %define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} %{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
%define split_base (%CONFIG_SPLIT_PACKAGE == "y") %define split_base (%CONFIG_SPLIT_PACKAGE == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y") %define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define install_vdso 1 %define install_vdso 1
%else %else
@ -49,7 +56,7 @@
Name: kernel-xen Name: kernel-xen
Summary: The Xen Kernel Summary: The Xen Kernel
Version: 2.6.33 Version: 2.6.33
Release: 2 Release: 3
%if %using_buildservice %if %using_buildservice
%else %else
%endif %endif
@ -78,6 +85,7 @@ Requires(post): module-init-tools >= 3.4
Requires(post): perl-Bootloader >= 0.4.15 Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd #!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64 %ifarch ia64
# arch/ia64/scripts/unwcheck.py # arch/ia64/scripts/unwcheck.py
BuildRequires: python BuildRequires: python
@ -96,6 +104,7 @@ Obsoletes: kernel-xenpae <= %version
%endif %endif
#!BuildIgnore: xen #!BuildIgnore: xen
%endif %endif
Provides: %name-nongpl Provides: %name-nongpl
Obsoletes: %name-nongpl Obsoletes: %name-nongpl
%if %build_vanilla %if %build_vanilla
@ -115,6 +124,7 @@ Conflicts: lvm2 < 2.02.33
Conflicts: libc.so.6()(64bit) Conflicts: libc.so.6()(64bit)
%endif %endif
Provides: kernel = %version-%source_rel Provides: kernel = %version-%source_rel
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source10: preun.sh Source10: preun.sh
Source11: postun.sh Source11: postun.sh
@ -148,6 +158,7 @@ Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64 ExclusiveArch: %ix86 x86_64
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
NoSource: 100 NoSource: 100
@ -162,6 +173,7 @@ NoSource: 109
NoSource: 110 NoSource: 110
NoSource: 111 NoSource: 111
NoSource: 120 NoSource: 120
# The following KMPs have been integrated into the kernel package. # The following KMPs have been integrated into the kernel package.
# sles10 / 10.3 # sles10 / 10.3
Obsoletes: iwlwifi-kmp-%build_flavor Obsoletes: iwlwifi-kmp-%build_flavor
@ -190,8 +202,10 @@ Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: ocfs2-kmp-%build_flavor Obsoletes: ocfs2-kmp-%build_flavor
# 11.1 # 11.1
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7 Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -209,33 +223,43 @@ if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
"complete sources. Please install kernel-source-%version.src.rpm." "complete sources. Please install kernel-source-%version.src.rpm."
exit 1 exit 1
fi fi
SYMBOLS= SYMBOLS=
if test -e %_sourcedir/extra-symbols; then if test -e %_sourcedir/extra-symbols; then
SYMBOLS=$(cat %_sourcedir/extra-symbols) SYMBOLS=$(cat %_sourcedir/extra-symbols)
echo "extra symbol(s):" $SYMBOLS echo "extra symbol(s):" $SYMBOLS
fi fi
# Unpack all sources and patches # Unpack all sources and patches
%setup -q -c -T -a 0 -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 -a 120 %setup -q -c -T -a 0 -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 -a 120
mkdir -p %kernel_build_dir mkdir -p %kernel_build_dir
supported_conf() { supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \ %_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u sed 's,.*/,,; s,\.ko$,,' | sort -u
} }
# Generate the list of modules to be marked as supported # Generate the list of modules to be marked as supported
{ supported_conf base { supported_conf base
supported_conf --default=0 external | sed 's/$/ external/' supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported } > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion cd linux-%srcversion
%_sourcedir/apply-patches \ %_sourcedir/apply-patches \
%if %{build_vanilla} %if %{build_vanilla}
--vanilla \ --vanilla \
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
cd %kernel_build_dir cd %kernel_build_dir
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
cp ../config/%cpu_arch_flavor .config cp ../config/%cpu_arch_flavor .config
%build_src_dir/scripts/config \ %build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \ --set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
@ -245,6 +269,7 @@ cp ../config/%cpu_arch_flavor .config
%else %else
--disable CONFIG_DEBUG_INFO --disable CONFIG_DEBUG_INFO
%endif %endif
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD" MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
yes '' | make oldconfig $MAKE_ARGS yes '' | make oldconfig $MAKE_ARGS
@ -254,27 +279,34 @@ else
%_sourcedir/check-for-config-changes .config.orig .config %_sourcedir/check-for-config-changes .config.orig .config
rm .config.orig rm .config.orig
fi fi
make prepare $MAKE_ARGS make prepare $MAKE_ARGS
make scripts $MAKE_ARGS make scripts $MAKE_ARGS
krel=$(make -s kernelrelease $MAKE_ARGS) krel=$(make -s kernelrelease $MAKE_ARGS)
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2 echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
exit 1 exit 1
fi fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build # Override the timestamp 'uname -v' reports with the build
# timestamp. # timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')" export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)" export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses. # The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$( export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp) %_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \ head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)" | tr -dc 0-9)"
export KBUILD_VERBOSE=0 export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1 export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1 export KBUILD_OVERRIDE=1
@ -283,10 +315,12 @@ EOF
%build %build
cd %kernel_build_dir cd %kernel_build_dir
source .kernel-binary.spec.buildenv source .kernel-binary.spec.buildenv
# create *.symref files in the tree # create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# If the %jobs macro is defined to a number, make will spawn that many jobs. # If the %jobs macro is defined to a number, make will spawn that many jobs.
# There are several ways how to define it: # There are several ways how to define it:
# If you are using the build script: # If you are using the build script:
@ -306,21 +340,27 @@ fi
%endif %endif
%install %install
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true export NO_BRP_STRIP_DEBUG=true
export STRIP_KEEP_SYMTAB='*/vmlinux-*' export STRIP_KEEP_SYMTAB='*/vmlinux-*'
# /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the # /lib/modules/%kernelrelease-%build_flavor/build will be a stale symlink until the
# kernel-source package is installed. Don't check for stale symlinks # kernel-source package is installed. Don't check for stale symlinks
# in the brp-symlink check: # in the brp-symlink check:
export NO_BRP_STALE_LINK_ERROR=yes export NO_BRP_STALE_LINK_ERROR=yes
cd %kernel_build_dir cd %kernel_build_dir
mkdir -p %buildroot/boot mkdir -p %buildroot/boot
# (Could strip out non-public symbols.) # (Could strip out non-public symbols.)
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux() add_vmlinux()
{ {
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
if test $1 == "--compressed"; then if test $1 == "--compressed"; then
compressed=true compressed=true
fi fi
@ -356,10 +396,12 @@ add_vmlinux()
chmod a-x %buildroot/$vmlinux.gz chmod a-x %buildroot/$vmlinux.gz
fi fi
} }
%if %build_kdump %if %build_kdump
add_vmlinux add_vmlinux
image=vmlinux image=vmlinux
%else %else
# architecture specifics # architecture specifics
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
@ -400,8 +442,10 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';' find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif %endif
%endif %endif
# end of build_kdump # end of build_kdump
%endif %endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -420,28 +464,36 @@ for sub in '-base' '' '-extra'; do
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh %_sourcedir/$script.sh > %my_builddir/$script$sub.sh
done done
done done
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3 %if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
ln -s $image$suffix %buildroot/boot/$image$suffix ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso %if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image # Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
%endif %endif
# Create a dummy initrd with roughly the size the real one will have. # Create a dummy initrd with roughly the size the real one will have.
# That way, YaST will know that this package requires some additional # That way, YaST will know that this package requires some additional
# space in /boot. # space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \ dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1 bs=1024 seek=2047 count=1
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \ if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then %_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check %if %supported_modules_check
@ -449,6 +501,7 @@ if [ %CONFIG_MODULES = y ]; then
%endif %endif
echo "Consistency check error: please update supported.conf." echo "Consistency check error: please update supported.conf."
fi fi
%ifarch s390 s390x %ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then if test -e arch/s390/boot/kerntypes.o; then
: :
@ -458,11 +511,13 @@ if [ %CONFIG_MODULES = y ]; then
dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)" dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
fi fi
%endif %endif
# Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
# so that kernel-source + kernel-%build_flavor is sufficient for building # so that kernel-source + kernel-%build_flavor is sufficient for building
# modules that have modversions as well. # modules that have modversions as well.
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@ -470,6 +525,7 @@ if [ %CONFIG_MODULES = y ]; then
else else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi fi
# Some architecture's $(uname -m) output is different from the ARCH # Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from # parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory. # $(uname -m) to the ARCH directory.
@ -477,6 +533,7 @@ if [ %CONFIG_MODULES = y ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi fi
# We were building in %my_builddir/linux-%srcversion, but the sources will # We were building in %my_builddir/linux-%srcversion, but the sources will
# later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
# build symlink. # build symlink.
@ -485,12 +542,14 @@ if [ %CONFIG_MODULES = y ]; then
%buildroot/lib/modules/%kernelrelease-%build_flavor/source %buildroot/lib/modules/%kernelrelease-%build_flavor/source
ln -s %obj_install_dir/%cpu_arch/%build_flavor \ ln -s %obj_install_dir/%cpu_arch/%build_flavor \
%buildroot/lib/modules/%kernelrelease-%build_flavor/build %buildroot/lib/modules/%kernelrelease-%build_flavor/build
# Abort if there are any undefined symbols # Abort if there are any undefined symbols
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \ msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)" -b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
exit 1 exit 1
fi fi
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
@ -499,11 +558,13 @@ if [ %CONFIG_MODULES = y ]; then
%if ! %split_extra %if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -520,6 +581,7 @@ if [ %CONFIG_MODULES = y ]; then
exit 1 exit 1
fi fi
fi fi
tar cf - -T %my_builddir/obj-files | \ tar cf - -T %my_builddir/obj-files | \
tar xf - -C %rpm_install_dir/%cpu_arch_flavor tar xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084 # bnc#507084
@ -534,6 +596,7 @@ if [ %CONFIG_MODULES = y ]; then
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \ sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
add_dirs_to_filelist() { add_dirs_to_filelist() {
sed -rn ' sed -rn '
# print file name # print file name
@ -550,6 +613,7 @@ add_dirs_to_filelist() {
ta ta
' "$@" | sort -u ' "$@" | sort -u
} }
# Collect the file lists. # Collect the file lists.
shopt -s nullglob shopt -s nullglob
> %my_builddir/kernel-devel.files > %my_builddir/kernel-devel.files
@ -558,15 +622,18 @@ for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
f=${file##%buildroot} f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files echo "$f" >> %my_builddir/kernel-devel.files
done done
{ cd %buildroot { cd %buildroot
find boot \ find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \ -type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n' -type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that # Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel. # the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump' echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \ find lib/modules/%kernelrelease-%build_flavor \
-type d -o \ -type d -o \
@ -586,6 +653,7 @@ done
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \ cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp rm %my_builddir/tmp
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
> %my_builddir/kernel-main.files > %my_builddir/kernel-main.files
@ -593,6 +661,7 @@ rm %my_builddir/tmp
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. # much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT %fdupes $RPM_BUILD_ROOT
@ -604,6 +673,7 @@ rm %my_builddir/tmp
%pre -f pre.sh %pre -f pre.sh
%post -f post.sh %post -f post.sh
%if %split_base %if %split_base
%files -f kernel-main.files %files -f kernel-main.files
@ -646,6 +716,7 @@ This package contains only the base modules, required in all installs.
%pre base -f pre-base.sh %pre base -f pre-base.sh
%post base -f post-base.sh %post base -f post-base.sh
%if %split_base %if %split_base
%files base -f kernel-base.files %files base -f kernel-base.files
@ -688,11 +759,13 @@ This package contains additional modules not supported by Novell.
%pre extra -f pre-extra.sh %pre extra -f pre-extra.sh
%post extra -f post-extra.sh %post extra -f post-extra.sh
%if %split_extra %if %split_extra
%files extra -f kernel-extra.files %files extra -f kernel-extra.files
%defattr(-, root, root) %defattr(-, root, root)
%endif %endif
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5099786d80b8407d98a619df00209c2353517f22d804fdd9533b362adcb4504e
size 64424138

3
linux-2.6.33.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:63e237de3b3c4c46a21833b9ce7e20574548d52dabbd1a8bf376041e4455d5c6
size 66266488

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:f0bdd39bbc10807651c9a2216b3dbbdd6780e0c9dd90b0c682e823f655322a07 oid sha256:4d9d4315ecdfd13ea08c0c9947bd9f3ceed75b1519c02d68f35ff290ba1bc8fb
size 152438 size 151980

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:1fd615a5f5ef926218b6d8a5a020c92a5913399a3df403e21f40881c2be1179a oid sha256:2b000213c88dd987c89a87cfcabb826338c7df5a6eb344abd992f9d3d140764a
size 40926 size 40035

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:96a0edc4f6b9b77c56272ad2fb4e57d89e63ae9d4760ee5591f624b7d8a6494f oid sha256:9dde5510f9ad1aef9c1f1d3b2a8099a006fe55fdab5ebcf2c141624b999d057e
size 10713626 size 136

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:04f114e9a3d7c27d22331b555c9678ad27a95464412fe65ce9720afe5b36b409 oid sha256:fc36a05f87ee538becf3b36c52b3e3afaf7459231845ff4c67b25477c234b762
size 7219 size 8196

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5e3a847ce3346c621bc481bf9b00451144c4e7babef02ebe19fd1fae61f779a2 oid sha256:346da76861e8e574f5d7778cd8ad698fb93ad881f24cfa71c8c93d28829938d8
size 1914144 size 1920022

View File

@ -27,11 +27,6 @@
# DO NOT MODIFY THEM! # DO NOT MODIFY THEM!
# Send separate patches upstream if you find a problem... # Send separate patches upstream if you find a problem...
######################################################## ########################################################
patches.kernel.org/patch-2.6.33-rc3
patches.kernel.org/patch-2.6.33-rc3-rc4
patches.kernel.org/patch-2.6.33-rc4-rc5
patches.kernel.org/patch-2.6.33-rc5-rc6
patches.kernel.org/patch-2.6.33-rc6-rc7
######################################################## ########################################################
# Build fixes that apply to the vanilla kernel too. # Build fixes that apply to the vanilla kernel too.
@ -53,6 +48,7 @@
patches.rpmify/hpsa-fix-section-mismatch patches.rpmify/hpsa-fix-section-mismatch
patches.rpmify/rt2860-fix-section-mismatches patches.rpmify/rt2860-fix-section-mismatches
patches.rpmify/ppc-crashdump-typefix patches.rpmify/ppc-crashdump-typefix
patches.rpmify/ftrace-fix-ftrace_event_call-alignment-for-use-with-gcc-4-5
######################################################## ########################################################
# kABI consistency patches # kABI consistency patches
@ -322,7 +318,6 @@
patches.fixes/acpi_fix_no_critical_tp.patch patches.fixes/acpi_fix_no_critical_tp.patch
patches.fixes/acpi_thermal_check_trip_points.patch patches.fixes/acpi_thermal_check_trip_points.patch
patches.fixes/acpi_pci_hot_plug_sanity_checks.patch
######################################################## ########################################################
# CPUFREQ # CPUFREQ
@ -341,7 +336,6 @@
patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch
# PCC -> HP's cpufreq driver # PCC -> HP's cpufreq driver
patches.drivers/cpufreq_ondemand_limit_fix.patch
patches.drivers/cpufreq_processor_clocking_control_pcc_driver.patch patches.drivers/cpufreq_processor_clocking_control_pcc_driver.patch
######################################################## ########################################################
@ -429,6 +423,10 @@
######################################################## ########################################################
patches.suse/novfs-client-module patches.suse/novfs-client-module
patches.suse/novfs-fix-debug-message.patch patches.suse/novfs-fix-debug-message.patch
patches.fixes/novfs-err_ptr-fix.diff
patches.fixes/novfs-fix-inode-uid
patches.fixes/novfs-incorrect-filesize-fix
patches.fixes/novfs-truncate-fix
######################################################## ########################################################
# other filesystem stuff # other filesystem stuff
@ -636,8 +634,6 @@
patches.suse/raw_device_max_minors_param.diff patches.suse/raw_device_max_minors_param.diff
patches.suse/no-partition-scan patches.suse/no-partition-scan
patches.fixes/dvb-l64781.ko-broken-with-gcc-4.5.patch
######################################################## ########################################################
# Other drivers we have added to the tree # Other drivers we have added to the tree
######################################################## ########################################################
@ -662,7 +658,6 @@
patches.fixes/dm-release-map_lock-before-set_disk_ro patches.fixes/dm-release-map_lock-before-set_disk_ro
patches.suse/dm-mpath-no-activate-for-offlined-paths patches.suse/dm-mpath-no-activate-for-offlined-paths
patches.suse/dm-mpath-no-partitions-feature patches.suse/dm-mpath-no-partitions-feature
patches.fixes/dm-stripe-zero-stripes
######################################################## ########################################################
# md # md
@ -906,6 +901,9 @@
patches.xen/xen3-patch-2.6.33-rc3-rc4 patches.xen/xen3-patch-2.6.33-rc3-rc4
patches.xen/xen3-patch-2.6.33-rc4-rc5 patches.xen/xen3-patch-2.6.33-rc4-rc5
patches.xen/xen3-patch-2.6.33-rc5-rc6 patches.xen/xen3-patch-2.6.33-rc5-rc6
patches.xen/xen3-patch-2.6.33-rc6-rc7
patches.xen/xen3-patch-2.6.33-rc7-rc8
patches.xen/xen3-patch-2.6.33-rc8-final
patches.xen/xen3-seccomp-disable-tsc-option patches.xen/xen3-seccomp-disable-tsc-option
patches.xen/xen3-x86-mcp51-no-dac patches.xen/xen3-x86-mcp51-no-dac
patches.xen/xen3-x86-mark_rodata_rw.patch patches.xen/xen3-x86-mark_rodata_rw.patch
@ -949,6 +947,8 @@
patches.xen/xen-x86-machphys-prediction patches.xen/xen-x86-machphys-prediction
patches.xen/xen-x86-exit-mmap patches.xen/xen-x86-exit-mmap
patches.xen/xen-x86-per-cpu-vcpu-info patches.xen/xen-x86-per-cpu-vcpu-info
patches.xen/xen-x86-xtime-lock
patches.xen/xen-x86-time-per-cpu
patches.xen/xen-x86_64-pgd-pin patches.xen/xen-x86_64-pgd-pin
patches.xen/xen-x86_64-pgd-alloc-order patches.xen/xen-x86_64-pgd-alloc-order
patches.xen/xen-x86_64-dump-user-pgt patches.xen/xen-x86_64-dump-user-pgt

View File

@ -1,3 +1,3 @@
2010-02-12 17:37:20 +0100 2010-02-25 06:04:45 +0100
GIT Revision: 7a6a586d63ec8ee519b9de0f63c1bb1dd232f657 GIT Revision: 598eedb84f8b4a3d43f88b9bd52d8169d3c8660b
GIT Branch: master GIT Branch: master