imported commit 11bcaf3e5860559f093fcb554f756ef1ff77e26d

OBS-URL: https://build.opensuse.org/package/show/Kernel:stable/kernel-source?expand=0&rev=1
This commit is contained in:
Michal Marek 2010-12-01 10:20:27 +00:00 committed by Git OBS Bridge
parent 32f136347b
commit 1da187f3aa
90 changed files with 278354 additions and 157034 deletions

View File

@ -1,4 +1,4 @@
WORKING WITH THE SUSE 2.6.x and 3.x KERNEL SOURCES
WORKING WITH THE SUSE 2.6.x KERNEL SOURCES
Andreas Gruenbacher <agruen@suse.de>, SUSE Labs, 2003, 2004, 2005, 2006
Michal Marek <mmarek@suse.de>, SUSE Labs, 2010
@ -49,11 +49,6 @@ following binary packages get created:
a number of other packages. They can also be used for compiling
additional kernel modules.
* kernel-devel
A subset of the kernel-source package that is needed to build
external modules.
* kernel-$FLAVOR
A number of binary kernels (for example, kernel-default for
@ -78,8 +73,8 @@ following binary packages get created:
The repository contains the configuration files (.config) for all SUSE
kernel flavors. All configuration files are included in the dependencies
of the kernel-syms package (see WHERE TO FIND CONFIGURATION FILES below).
kernel flavors. All configuration files are included in the
kernel-source package (see WHERE TO FIND CONFIGURATION FILES below).
In the installed system, the kernel-source package installs files in the
@ -94,22 +89,24 @@ following directories:
A symbolic link to /usr/src/linux-$VERSION-$RELEASE.
* /usr/share/doc/packages/kernel-source/
This document.
The kernel-$FLAVOR-devel packages install the following files:
* /usr/src/linux-$VERSION-$RELEASE-obj/$ARCH/$FLAVOR/
Kernel build object files for one kernel flavor. These
files are used for compiling additional kernel modules.
* /usr/src/linux-obj/$ARCH/$FLAVOR
* /usr/src/linux-obj
A symbolic link to /usr/src/linux-$VERSION-$RELEASE-obj/$ARCH/$FLAVOR.
* /usr/share/doc/packages/kernel-source/
This document and an external kernel module example.
* /etc/init.d/running-kernel
Init script that adapts the kernel sources in /usr/src/linux to
the running kernel.
COMPILING YOUR OWN KERNEL
@ -195,9 +192,9 @@ The first method involves the following steps:
The second method involves the following steps:
(1) Install the kernel-devel package.
(1) Install the kernel-source package.
(2) Install the kernel-$FLAVOR-devel package. This is necessary for
(2) Install kernel-syms.$ARCH.rpm. This package is necessary for
symbol version information (CONFIG_MODVERSIONS).
(3) Compile the module(s) by changing into the module source directory
@ -210,6 +207,12 @@ The second method involves the following steps:
/lib/modules/$(uname -r)/build as the -C option in the above
command. (build is a symlink to /usr/src/linux-obj/$ARCH/$FLAVOR).
Starting with SuSE Linux 9.2 / SLES9 Service Pack 1, the
modversion information for the running kernel is also
contained in the kernel-$FLAVOR packages, and so for building
modules for the running kernel, the kernel-syms package is no
longer required.
(4) Install the module(s) with
``make -C /usr/src/linux-obj/$ARCH/$FLAVOR M=$(pwd) modules_install''.
@ -219,6 +222,10 @@ much as possible, and do not try to circumvent it. The
Documentation/kbuild directory in the kernel sources documents kbuild
makefiles.
Please take a look at the demo module installed under
/usr/share/doc/packages/kernel-source for a simple example of an Kernel
Module Package (KMP).
SUPPORTED VS. UNSUPPORTED MODULES

View File

@ -1,47 +0,0 @@
<constraints>
<hardware>
<disk>
<size unit="G">7</size>
</disk>
</hardware>
<overwrite>
<conditions>
<arch>i586</arch> <!-- applies only for either i586 or x86_64 packages -->
<arch>x86_64</arch>
<package>kernel-debug</package>
<package>kernel-default</package>
<package>kernel-desktop</package>
<package>kernel-ec2</package>
<package>kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-vanilla</package>
<package>kernel-xen</package>
</conditions>
<hardware>
<processors>8</processors>
<disk>
<size unit="G">14</size>
</disk>
</hardware>
</overwrite>
<overwrite>
<conditions>
<arch>i586</arch>
<arch>x86_64</arch>
<package>kernel-obs-qa</package>
</conditions>
<sandbox>kvm</sandbox>
</overwrite>
<overwrite>
<conditions>
<arch>i586</arch>
<arch>x86_64</arch>
<package>kernel-obs-qa-xen</package>
</conditions>
<sandbox>xen</sandbox>
</overwrite>
</constraints>

View File

@ -25,7 +25,7 @@
if [ "$1" = "--list" ]; then
# List all known architectures
echo i386 mips{,64} sparc{,64} ppc{,64,64le} s390{,x} ia64 x86_64 alpha parisc armv6hl armv7hl arm64
echo i386 mips{,64} sparc{,64} ppc{,64} s390{,x} ia64 x86_64 alpha parisc
exit 0
fi
@ -39,9 +39,6 @@ case "$ARCH" in
i?86 | pentium3 | pentium4 | athlon | geode)
echo i386
;;
aarch64)
echo arm64
;;
*)
echo "$ARCH"
;;

10
check-build.sh Normal file
View File

@ -0,0 +1,10 @@
#!/bin/bash
# Copyright (c) 2005 SUSE Linux Products GmbH, Germany. All rights reserved.
if grep -q "Linux version 2\.[0-5]\." /proc/version; then
echo "FATAL: kernel too old, need kernel >= 2.6 for this package"
exit 1
fi
exit 0

36
check-supported-list Normal file
View File

@ -0,0 +1,36 @@
#! /bin/sh
sourcedir=$1
modpath=$2
# Check for modules not listed in supported.conf: First, for each module
# in the list, set mod_$module=1
for module in $($sourcedir/guards --list < $sourcedir/supported.conf \
| sed -e 's,.*/,,'); do
m=${module##*/}
m=${m%.ko}
eval mod_${m//-/_}=1
done
# Check if any installed module was not listed
status=
cd $modpath
for module in $(find . -name '*.ko' | sort); do
case "$module" in
./kernel/drivers/staging/* | ./kernel/Documentation/*)
continue ;;
esac
module=${module%.ko}
m=${module##*/}
m=${m//-/_}
m="mod_$m"
if [ -z "${!m}" ]; then
if [ -z "$status" ]; then
echo "Modules not listed in supported.conf:"
status=1
fi
echo ${module#./}
fi
done
exit $status

View File

@ -20,16 +20,12 @@ fi
source $(dirname $0)/config.sh
parse_srcversion()
{
local IFS=.
set -- ${SRCVERSION%%-*}
VERSION=$1
PATCHLEVEL=${2:-0}
SUBLEVEL=${3:-0}
EXTRAVERSION=${SRCVERSION#${SRCVERSION%%-*}}
}
parse_srcversion
set -- $(echo $SRCVERSION | sed -ne 's/\([0-9]\+\).\([0-9]\+\).\([0-9]\+\)\(.*\)/\1 \2 \3 \4/p')
VERSION=$1
PATCHLEVEL=$2
SUBLEVEL=$3
EXTRAVERSION=$4
EXTRA_SYMBOLS=$(set -- $([ -e $(dirname $0)/extra-symbols ] && cat $(dirname $0)/extra-symbols) ; echo $*)
@ -66,12 +62,11 @@ done >"$series" < <($(dirname $0)/guards $EXTRA_SYMBOLS <series.conf)
# convert them to shell code that can be evaluated. Evaluate it.
eval "$(
<"$series" xargs awk '
/^--- |^\+\+\+ / \
/^--- |^+++ / \
{ M = match($2, /^[^\/]+\/Makefile( \t|$)/) }
M && /^+(VERSION|PATCHLEVEL|SUBLEVEL|EXTRAVERSION)/ \
{ print }
' \
| sed -e 's,^+,,' -e 's, *= *\(.*\),="\1",'
)"
echo "$VERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION"

File diff suppressed because it is too large Load Diff

BIN
config.addon.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@ -11,10 +11,17 @@
+i386 i386/default
+i386 i386/desktop
+i386 i386/pae
+i386 -syms i386/vmi
+i386 -syms i386/debug
+i386 i386/xen
+i386 -syms i386/ec2
+i386 i386/vanilla
+i386 -syms i386/trace
+ia64 ia64/default
+ia64 -syms ia64/debug
+ia64 ia64/vanilla
+ia64 -syms ia64/trace
+x86_64 x86_64/default
+x86_64 x86_64/desktop
@ -22,22 +29,37 @@
+x86_64 -syms x86_64/ec2
+x86_64 -syms x86_64/debug
+x86_64 x86_64/vanilla
+x86_64 -syms x86_64/trace
# openSuSE:
# G3 G4 bPlan
+ppc ppc/default
# G5 PS3 pSeries
+ppc ppc/ppc64
# PS3 bootloader
+ppc -syms ppc/ps3
# maybe the kernels above were patched to death?
+ppc ppc/vanilla
# SLES
# identical to ppc64 flavor, all KMP packages need a kernel-default
# Up to now, the openSuSE 11.1 ppc media can not have a
# kernel-default.ppc.rpm and a kernel-default.ppc64.rpm to continue
# supporting 32bit and 64bit systems.
+ppc64 ppc64/default
# G5 pSeries
+ppc64 ppc64/ppc64
+ppc64 -syms ppc64/trace
+ppc64 -syms ppc64/debug
# maybe the kernels above were patched to death?
+ppc64 ppc64/vanilla
+ppc64le ppc64le/default
+ppc64le -syms ppc64le/debug
+ppc64le ppc64le/vanilla
# ARM architectures
+armv6hl armv6hl/default
+armv7hl armv7hl/default
+armv7hl armv7hl/lpae
+arm64 arm64/default
+s390 s390/s390
+s390 -syms s390/trace
+s390 s390/vanilla
+s390x s390x/default
+s390x -syms s390x/trace
+s390x s390x/vanilla
+sparc64 sparc64/default
+sparc64 -syms sparc64/net

View File

@ -1,10 +1,7 @@
# The version of the main tarball to use
SRCVERSION=3.16
SRCVERSION=2.6.36
# variant of the kernel-source package, either empty or "-rt"
VARIANT=
# buildservice projects to build the kernel against
OBS_PROJECT=openSUSE:Factory
OBS_PROJECT_ARM=openSUSE:Factory:ARM
OBS_PROJECT_PPC=openSUSE:Factory:PowerPC
OBS_PROJECT=openSUSE:11.3
IBS_PROJECT=SUSE:Factory:Head
IBS_PROJECT_ARM=Devel:ARM:Factory

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c59c354c71b63df4377676a0245eb9a6727147f093861120262fcd3ec06f98a1
size 269626
oid sha256:b5f5f989c30080d8839afc5127225355124a21192aaddf56a1ed9a87559664f5
size 221171

View File

@ -1,40 +0,0 @@
<constraints>
<hardware>
<disk>
<size unit="G">7</size>
</disk>
</hardware>
<overwrite>
<conditions>
<arch>i586</arch> <!-- applies only for either i586 or x86_64 packages -->
<arch>x86_64</arch>
@BINARY_PACKAGES_XML@
</conditions>
<hardware>
<processors>8</processors>
<disk>
<size unit="G">14</size>
</disk>
</hardware>
</overwrite>
<overwrite>
<conditions>
<arch>i586</arch>
<arch>x86_64</arch>
<package>kernel-obs-qa</package>
</conditions>
<sandbox>kvm</sandbox>
</overwrite>
<overwrite>
<conditions>
<arch>i586</arch>
<arch>x86_64</arch>
<package>kernel-obs-qa-xen</package>
</conditions>
<sandbox>xen</sandbox>
</overwrite>
</constraints>

165
extract-modaliases Normal file
View File

@ -0,0 +1,165 @@
#! /bin/bash
LC_ALL=POSIX
usage() {
cat <<EOF
Usage: ${0##*/} [-i module] [-x module] [-Nv] {module|rpm} ...
-i Include the specified modules (glob expression).
-x Exclude the specified modules (glob expression).
-N Don't try to combine modalias tags that only differ in one character.
-v Verbose: report which modules define which aliases.
EOF
exit $1
}
ARGS=("$@")
options=`getopt -o i:x:vNh -- "$@"`
if [ $? -ne 0 ]
then
usage 2
fi
eval set -- "$options"
opt_combine=1
while :; do
case "$1" in
-i)
include="$include ${2%.ko}"
shift 2
;;
-x)
exclude="$exclude ${2%.ko}"
shift 2
;;
-v)
opt_verbose=1
shift ;;
-N)
opt_combine=
shift ;;
-h)
usage 0
;;
--)
shift
break
;;
esac
done
process_module() {
declare module=$1 base=${1##*/} aliases
if [ -n "$include" ]; then
included=
for x in $include; do
eval "case \"\${base%.ko}\" in (${x%.ko}) included=1;; esac"
done
else
included=1
fi
for x in $exclude; do
eval "case \"\${base%.ko}\" in (${x%.ko}) included=;; esac"
done
[ -n "$included" ] || return
aliases="$(/sbin/modinfo -F alias "$module" \
| sed -nre 's@^.+:.+$@Supplements: modalias(&)@p')"
if [ -n "$aliases" ]; then
eval "processed_module_${base//[^a-zA-Z0-9_]/_}=$base"
echo "$aliases" \
| if [ -n "$opt_verbose" ]; then
sed -e "s@\$@ # $base@"
else
cat
fi
fi
}
print_modaliases() {
declare class=$1 variants=$2 pos=$3
if [ -n "$variants" ]; then
echo "${class:0:pos}[$variants]${class:pos+1}"
else
[ -z "$class" ] || echo "$class"
fi
}
combine_modaliases() {
declare tag class variants pos n
read class
while read tag; do
for ((n=0; n<${#class}; n++)); do
if [ "*" != "${class:n:1}" -a \
"${class:0:n}" = "${tag:0:n}" -a \
"${class:n+1}" = "${tag:n+1}" ] &&
( [ -z "$pos" ] || [ $n = $pos ] ); then
variants="${variants:-${class:n:1}}${tag:n:1}"
pos=$n
break
fi
done
if [ $n -eq ${#class} ]; then
print_modaliases "$class" "$variants" "$pos"
variants=
pos=
class=$tag
fi
done
print_modaliases "$class" "$variants" "$pos"
}
tmp=$(mktemp -t ${0##*/}.XXXXXX)
trap "rm -f $tmp" EXIT
for file in "$@"; do
case "$(file -b "$file")" in
RPM*)
tmpdir=$(mktemp -td ${0##*/}.XXXXXX)
rpm2cpio "$file" | ( cd $tmpdir && cpio -dim --quiet )
for module in $(find $tmpdir -type f -name '*.ko'); do
process_module "$module" >> $tmp
done
rm -rf $tmpdir
;;
ELF*)
process_module "$file" >> $tmp
;;
*)
if [ -e "$file" ]; then
echo "File type of $file not supported" >&2
exit 1
fi
file2=$(/sbin/modinfo -F filename "${file%.ko}")
if ! [ -e "$file2" ]; then
echo "No module $file found" >&2
exit 1
fi
process_module "$file2" >> $tmp
;;
esac
done
if [ -n "${!processed_module_*}" ]; then
echo "# Modules:" $(for m in ${!processed_module_*}; do echo ${!m}; done \
| sort -u)
sort -u $tmp \
| if [ -n "$opt_combine" ]; then
combine_modaliases
else
cat
fi
echo "# Generated with: ${0##*/} ${ARGS[*]}"
fi
# vim:softtabstop=4 shiftwidth=4

View File

@ -26,7 +26,7 @@ sub scan
foreach $_ (`find "$loc"`)
{
chomp $_;
if (-d $_ && !-l $_) {
if (!-f $_) {
# Generate directory list later.
next;
}
@ -34,10 +34,7 @@ sub scan
m{^\Q$loc\E.*/Kconfig} ||
m{^\Q$loc\E.*/Kbuild} ||
m{^\Q$loc\E.*/Makefile} ||
m{^\Q$loc\E/arch/[^/]+/boot/dts/include/dt-bindings\b} ||
m{^\Q$loc\E/arch/[^/]+/include\b} ||
m{^\Q$loc\E/arch/arm/[^/]+/include/mach\b} ||
m{^\Q$loc\E/arch/arm/[^/]+/include/plat\b} ||
m{^\Q$loc\E/include/[^/]+\b} ||
m{^\Q$loc\E/scripts\b};
if (substr($_, 0, 1) ne "/") {

29
guards
View File

@ -36,6 +36,20 @@ sub files_in($$);
sub parse($$);
sub help();
#sub strip_ext($) {
# local ($_) = @_;
# s/\.(diff?|patch)$//;
#}
#sub try_ext($) {
# my ($path) = @_;
# for my $p in (($path, "$path.diff", "$path.dif", "$path.patch")) {
# return $p
# if (-f $p);
# }
# return undef;
#}
sub slashme($) {
my ($dir) = @_;
$dir =~ s#([^/])$#$&/#; # append a slash if necessary
@ -178,17 +192,11 @@ if ($check) {
next if $ref == 1;
if ($ref == 0) {
if ($config eq '-') {
print "Unused: $file\n";
} else {
print "Not in $config: $file\n";
}
print "Unused: $file\n" if $ref == 0;
$problems++;
}
if ($ref > 1) {
print "Warning: multiple uses";
print " in $config" if $config ne '-';
print ": $file\n";
print "Warning: multiple uses: $file\n" if $ref > 1;
# This is not an error if the entries are mutually exclusive...
}
}
@ -252,6 +260,7 @@ F<guards> [--prefix=F<dir>] [--path=F<dir1:dir2:...>] [--default=<0|1>]
[--check|--list] [--invert-match] [--with-guards] [--config=<file>]
I<symbol> ...
=head1 DESCRIPTION
The script reads a configuration file that may contain so-called guards, file
@ -284,10 +293,10 @@ The I<--check> option is used to compare the specification file against the
file system. If files are referenced in the specification that do not exist, or
if files are not enlisted in the specification file warnings are printed. The
I<--path> option can be used to specify which directory or directories to scan.
Multiple directories are separated by a colon (C<:>) character. The
Multiple directories are eparated by a colon (C<:>) character. The
I<--prefix> option specifies the location of the files.
Use I<--list> to list all files independent of any rules. Use I<--invert-match>
Use I<--list> to list all files independend of any rules. Use I<--invert-match>
to list only the excluded patches. Use I<--with-guards> to also include all
inclusion and exclusion rules.

View File

@ -1,7 +0,0 @@
#ifdef __x86_64__
/*
* Force the linker to use the older memcpy variant, so that the user programs
* work on older systems
*/
__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
#endif

BIN
kabi.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@ -1,7 +1,7 @@
#
# spec file for package kernel-@FLAVOR@
# spec file for package kernel-@FLAVOR@ (Version @RPMVERSION@)
#
# Copyright (c) @YEAR@ SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -15,27 +15,25 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
# norootforbuild
%define srcversion @SRCVERSION@
%define patchversion @PATCHVERSION@
%define variant @VARIANT@%{nil}
%define vanilla_only @VANILLA_ONLY@
%include %_sourcedir/kernel-spec-macros
%define build_flavor @FLAVOR@
%define build_default (%build_flavor == "default")
%define build_kdump (%build_flavor == "kdump")
%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
%define build_vanilla (%build_flavor == "vanilla")
%define build_ps3 (%build_flavor == "ps3")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %build_src_dir/linux-obj
%define kernel_build_dir %my_builddir/linux-obj
%(chmod +x %_sourcedir/{@SCRIPTS@})
@ -44,10 +42,10 @@
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
# defining them all at once.)
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_SUSE_KERNEL_SUPPORTED CONFIG_EFI_STUB
%define config_vars CONFIG_MODULES CONFIG_KMSG_IDS CONFIG_SPLIT_PACKAGE CONFIG_ENTERPRISE_SUPPORT
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar -xjf %_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_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_SUSE_KERNEL_SUPPORTED == "y")
%define split_extra (%CONFIG_SPLIT_PACKAGE == "y" && %CONFIG_ENTERPRISE_SUPPORT == "y")
%ifarch %ix86 x86_64
%define install_vdso 1
@ -57,39 +55,29 @@
Name: kernel-@FLAVOR@
Summary: @SUMMARY@
License: GPL-2.0
Group: System/Kernel
Version: @RPMVERSION@
%if 0%{?is_kotd}
Release: <RELEASE>.g@COMMIT@
%if %using_buildservice
Release: @RELEASE_PREFIX@<RELEASE>
%else
Release: @RELEASE@
Release: @RELEASE_PREFIX@0
%endif
License: GPL v2 only
Group: System/Kernel
Url: http://www.kernel.org/
BuildRequires: bc
BuildRequires: coreutils
AutoReqProv: on
BuildRequires: coreutils module-init-tools sparse
BuildRequires: fdupes
%if 0%{?suse_version} > 1310
BuildRequires: hmaccalc
%endif
BuildRequires: modutils
BuildRequires: sparse
# Used to sign the kernel in the buildservice
BuildRequires: pesign-obs-integration
Provides: %name = %version-%source_rel
Provides: %{name}_%_target_cpu = %version-%release
Provides: multiversion(kernel)
Provides: %{name}_%_target_cpu = %version-%release
Provides: %name = %version-%source_rel
%if %split_base
Provides: kernel-base = %version-%source_rel
# Obsolete the -base subpackage from 11.1 and 11.2 development phase
Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
# For /usr/lib/module-init-tools/weak-modules2
Requires(post): suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
@ -97,49 +85,47 @@ Requires(post): modutils
# packages to install/update. Likewise, this is true for mkinitrd.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
%if %build_vanilla
Requires(post): mkinitrd
%if 0%{?suse_version} >= 1130
Requires(post): mkinitrd >= 2.6.0
%else
# Require a mkinitrd that can handle usbhid/hid-generic built-in (bnc#773559)
Requires(post): mkinitrd >= 2.7.1
Requires(post): mkinitrd
%endif
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
# Do not install p-b and mkinitrd for the install check, the %post script is
# able to handle this
#!BuildIgnore: perl-Bootloader mkinitrd distribution-release
# Remove some packages that are installed automatically by the build system,
# but are not needed to build the kernel
#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools m4 udev insserv
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
# arch/ia64/scripts/unwcheck.py
BuildRequires: python
%endif
%ifarch s390 s390x
%if %build_vanilla && 0%{?suse_version} < 1130
BuildRequires: dwarfextract
%endif
%endif
%ifarch %arm
BuildRequires: u-boot-tools
%endif
%if %build_xen
%ifarch %ix86
%if %build_flavor != "ec2"
Provides: kernel-xenpae = %version
Obsoletes: kernel-xenpae <= %version
%endif
%endif
#!BuildIgnore: xen
%endif
Obsoletes: microcode_ctl
Provides: %name-nongpl
Obsoletes: %name-nongpl
%if %build_vanilla
# force bzip2 instead of lzma compression to allow install on older dist versions
%define _binary_payload w9.bzdio
%endif
# dead network if installed on SLES10, otherwise it will work (mostly)
Conflicts: sysfsutils < 2.0
%if ! %build_vanilla
Conflicts: apparmor-profiles <= 2.1
Conflicts: apparmor-parser < 2.3
# root-lvm only works with newer udevs
Conflicts: udev < 118
Conflicts: lvm2 < 2.02.33
# Interface to hv_kvp_daemon changed
Conflicts: hyper-v < 4
%endif
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@ -148,68 +134,37 @@ Provides: kernel = %version-%source_rel
@SOURCES@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: @ARCHS@
%define kmp_target_cpu %_target_cpu
%ifarch %ix86
# Only i386/default supports i586, mark other flavors' packages as i686
%if ! %build_default
BuildArch: i686
# KMPs are always built as i586, because rpm does not allow to build
# subpackages for different architectures. Therefore, we change the
# /usr/src/linux-obj/<arch> symlink to i586.
%define kmp_target_cpu i586
%endif
%endif
# These files are found in the kernel-source package:
@NOSOURCE@
# The following KMPs have been integrated into the kernel package,
# grouped by the last product that contained them.
# Usage: obsolete_kmp <basename> <upper bound of shipped versions>
# Note that KMPs embed the version of the kernel built against, that's why
# the _3 suffix for 2.6.x-based KMPs
%define obsolete_kmp() Obsoletes: %1-kmp-%build_flavor <= %2 \
Provides: %1-kmp = %2 \
Provides: %1-kmp-%build_flavor = %2
# sles10 / 10.3
%obsolete_kmp iwlwifi 1.3.27_3
%obsolete_kmp ipw3945 1.2.2_3
# sled10 / 11.0
%obsolete_kmp uvcvideo r200_3
Obsoletes: iwlwifi-kmp-%build_flavor
Obsoletes: ipw3945-kmp-%build_flavor
# sles10 / 11.0
Obsoletes: uvcvideo-kmp-%build_flavor
# 11.0
Obsoletes: atl2-kmp-%build_flavor
Obsoletes: wlan-ng-kmp-%build_flavor
Obsoletes: et131x-kmp-%build_flavor
Obsoletes: ivtv-kmp-%build_flavor
Obsoletes: at76_usb-kmp-%build_flavor
Obsoletes: pcc-acpi-kmp-%build_flavor
Obsoletes: btusb-kmp-%build_flavor
# sle11-ga
%obsolete_kmp enic 0.0.1_3
%obsolete_kmp fnic 1.0.0_3
%obsolete_kmp brocade-bfa 1.1.0.2_3
%obsolete_kmp kvm 78.2.6.30.1_3
%obsolete_kmp perfmon 2_3
%obsolete_kmp iwlagn-2-6-27 1.0_3
%obsolete_kmp msi-wmi 1.0_3
Obsoletes: enic-kmp-%build_flavor
Obsoletes: fnic-kmp-%build_flavor
Obsoletes: brocade-bfa-kmp-%build_flavor
Obsoletes: kvm-kmp-%build_flavor
Obsoletes: perfmon-kmp-%build_flavor
Obsoletes: iwlagn-2-6-27-kmp-%build_flavor
Obsoletes: msi-wmi-kmp-%build_flavor
# sle11
%obsolete_kmp ocfs2 1.6_4
Obsoletes: ocfs2-kmp-%build_flavor
# 11.1
%obsolete_kmp quickcam 0.6.7
# sle11-sp1
%obsolete_kmp wacom 0.8.1_3
%obsolete_kmp btrfs 0_3
%obsolete_kmp brocade-bna 2.1.0.0_3
%obsolete_kmp hyper-v 0_3
%obsolete_kmp intel-e1000e 2.2.14
%obsolete_kmp drm 3.7_3.1
Obsoletes: firewire <= 3.0
Provides: firewire = 3.0
%obsolete_kmp firewire 3.0
%obsolete_kmp iwlagn 3.0
Obsoletes: compat-ath9k <= 3.0
Provides: compat-ath9k = 3.0
%obsolete_kmp compat-ath9k 3.0
%obsolete_kmp realtek-r8192ce_pci 2.6.0005_3
%obsolete_kmp realtek-r8192se_pci 2.6.0019.1207.2010_3
%obsolete_kmp rt3090 2.4.0.4_3
%obsolete_kmp rt3592 2.4.1.1_3
%obsolete_kmp rt5390 2.4.0.4_3
%obsolete_kmp ath3k 1.0_3
Obsoletes: ath3k-firmware <= 1.0
Provides: ath3k-firmware = 1.0
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
%define __find_provides %_sourcedir/find-provides %name
@ -220,10 +175,10 @@ Provides: ath3k-firmware = 1.0
%description
@DESCRIPTION@
%source_timestamp
%prep
if ! [ -e %{S:0} ]; then
if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
echo "The %name-%version.nosrc.rpm package does not contain the" \
"complete sources. Please install kernel-source-%version.src.rpm."
exit 1
@ -240,27 +195,16 @@ fi
mkdir -p %kernel_build_dir
# Generate a list of modules with their support status marking
%_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \
awk '
/^\+(base|yes) / {
print $(NF);
next;
}
/^\+external / {
print $(NF) " external";
next;
}
/^[-+]/ {
print $(NF) " no";
next;
}
{
print $(NF);
}
' >%kernel_build_dir/Module.supported
%_sourcedir/guards --default=0 base < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u >%kernel_build_dir/Module.base
supported_conf() {
%_sourcedir/guards $* < %_sourcedir/supported.conf | \
sed 's,.*/,,; s,\.ko$,,' | sort -u
}
# Generate the list of modules to be marked as supported
{ supported_conf base
supported_conf --default=0 external | sed 's/$/ external/'
} > %kernel_build_dir/Module.supported
supported_conf --default=0 base >%kernel_build_dir/Module.base
cd linux-%srcversion
@ -272,34 +216,19 @@ cd linux-%srcversion
cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and
# the commit hash.
date=$(head -n 1 %_sourcedir/source-timestamp)
commit=$(sed -n 's/GIT Revision: //p' %_sourcedir/source-timestamp)
cat > .kernel-binary.spec.buildenv <<EOF
export KBUILD_BUILD_TIMESTAMP="$(LANG=C date -d "$date") (${commit:0:7})"
export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1
export KBUILD_BUILD_USER=geeko
export KBUILD_BUILD_HOST=buildhost
export HOST_EXTRACFLAGS="-include %_sourcedir/host-memcpy-hack.h"
EOF
source .kernel-binary.spec.buildenv
if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion
fi
if test -e %my_builddir/config.addon/%cpu_arch_flavor; then
if test -e ../config.addon/%cpu_arch_flavor; then
# FIXME: config.addon doesn't affect the %CONFIG_ macros defined at
# the top of the specfile
%_sourcedir/configtool.pl %my_builddir/config{,.addon}/%cpu_arch_flavor >.config
%_sourcedir/configtool.pl ../config{,.addon}/%cpu_arch_flavor >.config
else
cp %my_builddir/config/%cpu_arch_flavor .config
cp ../config/%cpu_arch_flavor .config
fi
%build_src_dir/scripts/config \
--set-str CONFIG_LOCALVERSION -%source_rel-%build_flavor \
--set-str CONFIG_LOCALVERSION -%release_major-%build_flavor \
--enable CONFIG_SUSE_KERNEL \
%if 0%{?__debug_package:1}
--enable CONFIG_DEBUG_INFO \
@ -332,6 +261,24 @@ make clean $MAKE_ARGS
rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
cat > .kernel-binary.spec.buildenv <<EOF
# Override the timestamp 'uname -v' reports with the build
# timestamp.
export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/source-timestamp | awk '{ print $2 }')"
export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/source-timestamp)"
# The following branch/timestamp will end up in Oopses.
export OOPS_TIMESTAMP="$(
echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \
%_sourcedir/source-timestamp)
head -n 1 %_sourcedir/source-timestamp \
| tr -dc 0-9)"
export KBUILD_VERBOSE=0
export KBUILD_SYMTYPES=1
export KBUILD_OVERRIDE=1
EOF
%build
cd %kernel_build_dir
source .kernel-binary.spec.buildenv
@ -341,51 +288,27 @@ if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
# The %{_smp_mflags} 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:
# If you are using the build script:
# build --jobs=N kernel-$flavor.spec
# With plain rpmbuild:
# rpmbuild -ba --define 'jobs N' kernel-$flavor.spec
# To spawn as many jobs as there are cpu cores:
# rpmbuild -ba --define "%_smp_mflags -j 0$(grep -Ec 'cpu[0-9]' /proc/stat)" \
# rpmbuild -ba --define "jobs 0$(grep -c ^processor /proc/cpuinfo)" \
# kernel-$flavor.spec
# You can also set this permanently in ~/.rpmmacros:
# %_smp_mflags -j 0%(grep -Ec 'cpu[0-9]' /proc/stat)
# %jobs 0%(grep -c ^processor /proc/cpuinfo)
%if %CONFIG_KMSG_IDS == "y"
chmod +x ../scripts/kmsg-doc
MAKE_ARGS="$MAKE_ARGS D=2"
chmod +x ../linux-%srcversion/scripts/kmsg-doc
make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y D=2
%else
make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y
%endif
while true; do
make %{?_smp_mflags} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 \
| tee buildlog
if test "${PIPESTATUS[0]}" -eq 0; then
break
fi
# In the linux-next and vanilla branches, we try harder to build a
# package.
if test 0%vanilla_only -gt 0 &&
%_sourcedir/try-disable-staging-driver buildlog; then
echo "Retrying make"
else
exit 1
fi
done
%install
%if %CONFIG_EFI_STUB == "y"
# sign the kernel in the buildservice
%ifarch x86_64
# XXX: only do it on x86_64, as the repackaging changes kernel-pae
# from i686 to i586
export BRP_PESIGN_FILES="/boot/vmlinuz-%kernelrelease-%build_flavor"
%else
export BRP_PESIGN_FILES=""
%endif
%endif
# get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary
export NO_BRP_STRIP_DEBUG=true
@ -404,44 +327,75 @@ cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
add_vmlinux()
{
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor
local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor compressed=false
cp vmlinux %buildroot/$vmlinux
# make sure that find-debuginfo.sh picks it up. In the filelist, we
# mark the file 0644 again
chmod +x %buildroot/$vmlinux
if test $1 == "--compressed"; then
# avoid using the gzip -n option to make kdump happy (bnc#880848#c20)
ts="$(head -n1 %_sourcedir/source-timestamp)"
touch -d "$ts" %buildroot/$vmlinux
touch %buildroot/$vmlinux.gz
compressed=true
fi
cp vmlinux %buildroot/$vmlinux
>%my_builddir/vmlinux.debug.files
%if 0%{?__debug_package:1}
# compress the vmlinux image after find-debuginfo.sh has processed it
%global __debug_install_post %__debug_install_post \
%_sourcedir/compress-vmlinux.sh %buildroot/boot/vmlinux-%kernelrelease-%build_flavor
%else
%_sourcedir/compress-vmlinux.sh %buildroot/$vmlinux
%endif
ghost_vmlinux=true
if $compressed; then
local vmlinux_debug=usr/lib/debug/$vmlinux.debug
mkdir -p $(dirname %buildroot/$vmlinux_debug)
/usr/lib/rpm/debugedit -b $RPM_BUILD_DIR -d /usr/src/debug \
-l vmlinux.sourcefiles %buildroot/$vmlinux
# FIXME: create and package build-id symlinks
objcopy --only-keep-debug \
%buildroot/$vmlinux \
%buildroot/$vmlinux_debug || :
objcopy --add-gnu-debuglink=%buildroot/$vmlinux_debug \
--strip-debug \
%buildroot/$vmlinux || :
mkdir -p %buildroot/usr/src/debug
LANG=C sort -z -u vmlinux.sourcefiles | grep -Ezv "<(built-in|stdin)>" \
| ( cd %_builddir && cpio -pd0m %buildroot/usr/src/debug )
find %buildroot/usr/src/debug -type d -print0 | xargs -0 -r chmod 0755
find %buildroot/usr/src/debug -type f -print0 | xargs -0 -r chmod 0644
echo -e "%%defattr(-, root, root)\\n/$vmlinux_debug" >%my_builddir/vmlinux.debug.files
else
ghost_vmlinux=false
# make vmlinux executable so that find-debuginfo.sh picks it up
# (TODO: fix find-debuginfo.sh instead)
chmod +x %buildroot/$vmlinux
fi
%endif
if $compressed; then
gzip -9 %buildroot/$vmlinux
chmod a-x %buildroot/$vmlinux.gz
fi
}
%if %build_kdump
add_vmlinux
image=vmlinux
%else
# architecture specifics
%ifarch %ix86 x86_64
add_vmlinux --compressed
image=bzImage
%if %build_xen
test -f arch/x86/boot/$image || image=vmlinuz
image=vmlinuz
%else
image=bzImage
%endif
cp -p arch/x86/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor
image=vmlinuz
%endif
%ifarch ppc ppc64 ppc64le
%ifarch alpha
add_vmlinux --compressed
cp -p arch/alpha/boot/vmlinux.gz %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor
image=vmlinuz
%endif
%ifarch ppc ppc64
add_vmlinux
image=vmlinux
%endif
%ifarch ia64
add_vmlinux --compressed
mv %buildroot/boot/vmlinux-%kernelrelease-%build_flavor.gz \
%buildroot/boot/vmlinuz-%kernelrelease-%build_flavor
image=vmlinuz
%endif
%ifarch s390 s390x
add_vmlinux --compressed
cp -p arch/s390/boot/image %buildroot/boot/image-%kernelrelease-%build_flavor
@ -456,50 +410,15 @@ add_vmlinux()
find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
%endif
%endif
%ifarch %arm
%ifarch sparc64
add_vmlinux --compressed
case "%build_flavor" in
default | lpae)
image=zImage
;;
*)
# quickly compile uImage so we have something to boot from
make %{?_smp_mflags} uImage $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y
image=uImage
;;
esac
cp -p arch/arm/boot/$image %buildroot/boot/$image-%kernelrelease-%build_flavor
%endif
%ifarch aarch64
add_vmlinux --compressed
image=Image
cp -p arch/arm64/boot/$image %buildroot/boot/$image-%kernelrelease-%build_flavor
image=zImage
cp -p arch/sparc/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor
image=vmlinux
%endif
if test -x /usr/lib/rpm/pesign/gen-hmac; then
$_ -r %buildroot /boot/$image-%kernelrelease-%build_flavor
fi
# Package the compiled-in certificates as DER files in /etc/uefi/certs
# and have mokutil enroll them when the kernel is installed
certs=()
if test %CONFIG_MODULE_SIG = "y"; then
for f in *.x509; do
if ! test -s "$f"; then
continue
fi
h=$(openssl x509 -inform DER -fingerprint -noout -in "$f")
test -n "$h"
cert=/etc/uefi/certs/$(echo "$h" | \
sed -rn 's/^SHA1 Fingerprint=//; T; s/://g; s/(.{8}).*/\1/p').crt
if test -e %buildroot/"$cert"; then
continue
fi
mkdir -p %buildroot/etc/uefi/certs
cp "$f" %buildroot/"$cert"
certs=("${certs[@]}" "$cert")
done
fi
# end of build_kdump
%endif
for sub in '-base' '' '-extra'; do
case "$sub" in
@ -517,45 +436,22 @@ for sub in '-base' '' '-extra'; do
-e "s:@CPU_ARCH_FLAVOR@:%cpu_arch_flavor:g" \
-e "s:@SRCVARIANT@:%variant:g" \
%_sourcedir/$script.sh > %my_builddir/$script$sub.sh
if test "$base_package" -eq 1 -a "${#certs[@]}" -gt 0; then
case "$script" in
preun | postun | post)
# Copy the respective scriptlet from kernel-cert-subpackage
sed "1,/^%%$script / d; /^%%[^%%]/,\$ d; s:@CERTS@:${certs[*]}:g" \
%_sourcedir/kernel-cert-subpackage \
>>"%my_builddir/$script$sub.sh"
esac
fi
# Do an exit 0 at the end of each scriptlet. If the last real command
# in the scriptlet (e.g. update-bootloader call, see bnc#809617)
# returns an error, we do not want to amplify the damage by leaving
# the system in an inconsistent state.
echo "exit 0" >>"%my_builddir/$script$sub.sh"
done
done
%if %build_xen || %build_vanilla
%if %build_kdump || %build_xen || %build_vanilla || %build_ps3
# keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor
%endif
ln -s $image$suffix %buildroot/boot/$image$suffix
ln -s initrd$suffix %buildroot/boot/initrd$suffix
cp -p .config %buildroot/boot/config-%kernelrelease-%build_flavor
sysctl_file=%buildroot/boot/sysctl.conf-%kernelrelease-%build_flavor
for file in %my_builddir/sysctl/{defaults,%cpu_arch/arch-defaults,%cpu_arch_flavor}; do
if [ -f "$file" ]; then
cat "$file"
fi
done | sed '1i # Generated file - do not edit.' >$sysctl_file
if [ ! -s $sysctl_file ]; then
rm $sysctl_file
fi
cp .config %buildroot/boot/config-%kernelrelease-%build_flavor
%if %install_vdso
# Install the unstripped vdso's that are linked in the kernel image
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
rm -rf %buildroot/lib/modules/%kernelrelease-%build_flavor/vdso/.build-id
%endif
# Create a dummy initrd with roughly the size the real one will have.
@ -563,18 +459,24 @@ rm -rf %buildroot/lib/modules/%kernelrelease-%build_flavor/vdso/.build-id
# space in /boot.
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
# Also reserve some space for the kdump initrd
cp %buildroot/boot/initrd-%kernelrelease-%build_flavor{,-kdump}
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
gzip -n -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
if ! %_sourcedir/check-supported-list \
%_sourcedir %buildroot/lib/modules/%kernelrelease-%build_flavor; then
%if %supported_modules_check
exit 1
%endif
echo "Consistency check error: please update supported.conf."
fi
%ifarch s390 s390x
if test -e arch/s390/boot/kerntypes.o; then
:
@ -594,7 +496,7 @@ if [ %CONFIG_MODULES = y ]; then
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
gzip -n -9 %buildroot/boot/symtypes-%kernelrelease-%build_flavor
gzip -9 %buildroot/boot/symtypes-%kernelrelease-%build_flavor
else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
fi
@ -602,9 +504,9 @@ if [ %CONFIG_MODULES = y ]; then
# Some architecture's $(uname -m) output is different from the ARCH
# parameter that needs to be passed to kbuild. Create symlinks from
# $(uname -m) to the ARCH directory.
if [ ! -e %rpm_install_dir/%kmp_target_cpu ]; then
ln -sf %cpu_arch %rpm_install_dir/%kmp_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%kmp_target_cpu
if [ ! -e %rpm_install_dir/%_target_cpu ]; then
ln -sf %cpu_arch %rpm_install_dir/%_target_cpu
ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%_target_cpu
fi
# We were building in %my_builddir/linux-%srcversion, but the sources will
@ -627,22 +529,11 @@ if [ %CONFIG_MODULES = y ]; then
%_sourcedir/split-modules -d %buildroot \
-o %my_builddir \
-b %kernel_build_dir/Module.base \
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-e \
%endif
%if ! %supported_modules_check
-i
%endif
-s %kernel_build_dir/Module.supported
%if ! %split_extra
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif
# The modules.dep file is sorted randomly which produces strange file
# checksums. As the file is not included in the resulting RPM, it's
# pointless to rely on its contents. Replacing by zeros to make the
# checksums always the same for several builds of the same package.
dd if=/dev/zero of=%buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep ibs=`stat -c%s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep` count=1
%else
( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
@ -657,10 +548,7 @@ if [ %CONFIG_MODULES = y ]; then
Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
# %ignore_kabi_badness is defined in the Kernel:* projects in the
# OBS to be able to build the KOTD in spite of kabi errors
if [ 0%{?ignore_kabi_badness} -eq 0 -a \
! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
"directory to build this kernel even though its badness is" \
@ -669,12 +557,6 @@ if [ %CONFIG_MODULES = y ]; then
fi
fi
# arch/powerpc/lib/crtsavres.o is required for building external
# modules on powerpc
if [ -f %kernel_build_dir/arch/powerpc/lib/crtsavres.o ]; then
echo arch/powerpc/lib/crtsavres.o >> %my_builddir/obj-files
fi
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
# bnc#507084
@ -685,10 +567,9 @@ if [ %CONFIG_MODULES = y ]; then
strip "$f"
esac
done
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
fi
add_dirs_to_filelist() {
@ -709,52 +590,33 @@ add_dirs_to_filelist() {
}
# Collect the file lists.
shopt -s nullglob dotglob
shopt -s nullglob
> %my_builddir/kernel-devel.files
for file in %buildroot/boot/symtypes* %buildroot/lib/modules/*/{build,source}; do
for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
done
{ cd %buildroot
for f in boot/*; do
if test -L "$f"; then
echo "%%ghost /$f"
continue
elif test ! -f "$f"; then
continue
fi
case "$f" in
boot/initrd-*)
echo "%%ghost /$f"
continue
;;
boot/vmlinux-*.gz)
;;
boot/vmlinux-*)
if $ghost_vmlinux; then
echo "%%ghost /$f"
continue
fi
;;
boot/symtypes*)
continue
;;
esac
echo "%%attr(0644, root, root) /$f"
done
find boot \
\( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \
-type f -name 'vmlinux-*' -printf '%%%%attr(0644, root, root) /%%p\n' -o \
-type f -printf '/%%p\n'
# Add the auto-generated (by mkdumprd) kdump initrd to %ghost so that
# the file gets removed when uninstalling the kernel.
echo '%%ghost /boot/initrd-%kernelrelease-kdump'
touch $RPM_BUILD_ROOT/boot/initrd-%kernelrelease-kdump
if [ %CONFIG_MODULES = y ]; then
find lib/modules/%kernelrelease-%build_flavor \
-type d -o \
\( -path '*/modules.*' ! -path '*/modules.order' \
! -path '*/modules.builtin' \) -printf '%%%%ghost /%%p\n' \
-o -name '*.ko' -prune -o -type f -printf '/%%p\n'
-o -name '*.ko' -prune -o -printf '/%%p\n'
cat %my_builddir/base-modules
fi
if test %CONFIG_MODULE_SIG = "y"; then
find etc/uefi/certs -type f -printf '/%%p\n'
fi
test -d lib/firmware/%kernelrelease-%build_flavor && \
find lib/firmware/%kernelrelease-%build_flavor \
-type d -o \
@ -762,7 +624,10 @@ done
if [ -e .%_docdir/%name ]; then
echo "%%doc %_docdir/%name"
fi
} | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files
} | sort -u >%my_builddir/tmp
cat %my_builddir/tmp %my_builddir/kernel-devel.files | sort | uniq -u | \
add_dirs_to_filelist >%my_builddir/kernel-base.files
rm %my_builddir/tmp
%if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \
@ -773,40 +638,34 @@ done
%endif
# Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. Note that we skip
# /usr/src/linux-obj intentionally, to not accidentally break timestamps there
%fdupes $RPM_BUILD_ROOT/lib
# much, but it keeps rpmlint from breaking the package build.
%fdupes $RPM_BUILD_ROOT
%preun -f preun.sh
%postun -f postun.sh
%pre -f pre.sh
%post -f post.sh
%if %split_base
%files -f kernel-main.files
%defattr(-, root, root)
%else
%files -f kernel-base.files
%defattr(-, root, root)
%endif
%defattr(-, root, root)
%package base
Summary: @SUMMARY@ - base modules
License: GPL v2 only
Group: System/Kernel
Url: http://www.kernel.org/
Provides: kernel-base = %version-%source_rel
AutoReqProv: on
Provides: multiversion(kernel)
Conflicts: %name = %version-%release
Provides: kernel-base = %version-%source_rel
Requires(pre): coreutils awk
Requires(post): modutils
Requires(post): module-init-tools
Requires(post): perl-Bootloader
Requires(post): mkinitrd
@PROVIDES_OBSOLETES_BASE@
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@ -816,35 +675,32 @@ Conflicts: libc.so.6()(64bit)
This package contains only the base modules, required in all installs.
%source_timestamp
%preun base -f preun-base.sh
%postun base -f postun-base.sh
%pre base -f pre-base.sh
%post base -f post-base.sh
%if %split_base
%files base -f kernel-base.files
%defattr(-, root, root)
%endif
%package extra
Summary: @SUMMARY@ - Unsupported kernel modules
License: GPL v2 only
Group: System/Kernel
Url: http://www.kernel.org/
AutoReqProv: on
Provides: multiversion(kernel)
Provides: %name-extra_%_target_cpu = %version-%release
Provides: kernel-extra = %version-%source_rel
Provides: multiversion(kernel)
Requires: %{name}_%_target_cpu = %version-%release
Requires(pre): coreutils awk
Requires(post): modutils
Requires(post): module-init-tools
Requires(post): perl-Bootloader
Requires(post): mkinitrd
@PROVIDES_OBSOLETES_EXTRA@
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@ -855,34 +711,30 @@ Conflicts: libc.so.6()(64bit)
This package contains additional modules not supported by Novell.
%source_timestamp
%preun extra -f preun-extra.sh
%postun extra -f postun-extra.sh
%pre extra -f pre-extra.sh
%post extra -f post-extra.sh
%if %split_extra
%files extra -f kernel-extra.files
%defattr(-, root, root)
%endif
%if %CONFIG_KMSG_IDS == "y"
%package man
Summary: The collection of man pages generated by the kmsg script.
License: GPL v2 only
Group: System/Kernel
%description man
This package includes the man pages that have been generated from the
kmsg message documentation comments.
%source_timestamp
%files man
%defattr(-,root,root)
/usr/share/man/man9/*
@ -890,26 +742,23 @@ kmsg message documentation comments.
%package devel
Summary: Development files necessary for building kernel modules
License: GPL v2 only
Group: Development/Sources
Provides: %name-devel = %version-%source_rel
Provides: multiversion(kernel)
Provides: %name-devel = %version-%source_rel
Requires: kernel-devel%variant = %version-%source_rel
Supplements: packageand(%name:kernel-devel%variant)
@PROVIDES_OBSOLETES_DEVEL@
PreReq: coreutils
AutoReqProv: on
%description devel
This package contains files necessary for building kernel modules (and
kernel module packages) against the %build_flavor flavor of the kernel.
%source_timestamp
%if %CONFIG_MODULES == "y"
%pre devel -f devel-pre.sh
%post devel -f devel-post.sh
%files devel -f kernel-devel.files
%defattr(-,root,root)
%dir %obj_install_dir
@ -918,10 +767,23 @@ kernel module packages) against the %build_flavor flavor of the kernel.
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%obj_install_dir/%cpu_arch_flavor
%if %kmp_target_cpu != %cpu_arch
%obj_install_dir/%kmp_target_cpu
/usr/src/linux-obj/%kmp_target_cpu
%if %_target_cpu != %cpu_arch
%obj_install_dir/%_target_cpu
/usr/src/linux-obj/%_target_cpu
%endif
%endif
%package devel-debuginfo
# rpm doesn't notice that vmlinux.debug belongs to the gzipped vmlinux.gz
Summary: Debug information for package %name-devel
License: GPL v2 only
Group: Development/Debug
%description devel-debuginfo
Debug information for package %name-devel
%source_timestamp
%files devel-debuginfo -f vmlinux.debug.files
%changelog

View File

@ -1,48 +0,0 @@
%package -n %{-n*}-ueficert
Summary: UEFI Secure Boot Certificate For Package %{-n*}-kmp
Group: System/Kernel
%description -n %{-n*}-ueficert
This package contains the UEFI Secure Boot certificate used to sign
modules in the %{-n*}-kmp packages.
# The scriptlets are reused in kernel-binary.spec.in by a sed script that
# stops at the next line that starts with a percent sign
%post -n %{-n*}-ueficert
if ! command -v mokutil >/dev/null; then
exit 0
fi
# XXX: Only call mokutil if UEFI and shim are used
for cert in @CERTS@; do
if ! mokutil --import "$cert" --root-pw; then
echo "Failed to import $cert"
fi
done
exit 0
%preun -n %{-n*}-ueficert
if ! command -v mokutil >/dev/null; then
exit 0
fi
for cert in @CERTS@; do
ln "$cert" "$cert.delete"
done
exit 0
%postun -n %{-n*}-ueficert
if ! command -v mokutil >/dev/null; then
exit 0
fi
for cert in @CERTS@; do
if ! test -e "$cert"; then
if ! mokutil --delete "$cert.delete" --root-pw; then
echo "Failed to delete $cert"
fi
fi
rm "$cert.delete"
done
exit 0
%files -n %{-n*}-ueficert
%defattr(-, root, root)
%dir /etc/uefi
/etc/uefi/certs

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#
# spec file for package kernel-docs@VARIANT@
# spec file for package kernel-docs@VARIANT@ (Version @RPMVERSION@)
#
# Copyright (c) @YEAR@ SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -15,6 +15,7 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
%define patchversion @PATCHVERSION@
%define variant @VARIANT@%{nil}
@ -23,35 +24,29 @@
Name: kernel-docs@VARIANT@
Summary: Kernel Documentation
License: GPL-2.0
Group: Documentation/Man
Version: @RPMVERSION@
%if 0%{?is_kotd}
Release: <RELEASE>.g@COMMIT@
%if %using_buildservice
Release: @RELEASE_PREFIX@<RELEASE>
%else
Release: @RELEASE@
Release: @RELEASE_PREFIX@0
%endif
BuildRequires: docbook-toys
BuildRequires: docbook-utils
BuildRequires: ghostscript_any
BuildRequires: kernel-source%variant
BuildRequires: libjpeg-devel
BuildRequires: texlive
BuildRequires: transfig
BuildRequires: xmlto
BuildRequires: xorg-x11-devel
BuildRequires: docbook-toys docbook-utils ghostscript_any libjpeg-devel texlive transfig xmlto xorg-x11-devel
BuildRequires: kernel-source%variant = %version-%source_rel
Url: http://www.kernel.org/
License: GPL v2 or later
Group: Documentation/Man
AutoReqProv: on
Provides: %name = %version-%source_rel
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: kernel-spec-macros
Source: kernel-spec-macros
%description
These are the PDF documents and man pages (section 9) built from
the current kernel sources.
thecurrent kernel sources.
%source_timestamp
%prep
cp -av /etc/texmf/web2c/texmf.cnf .
cat << EOF >> texmf.cnf
@ -66,8 +61,8 @@ EOF
# use texmf.cnf from local source
export TEXMFCNF=$RPM_BUILD_DIR
export LANG=en_US
make -C /usr/src/linux%variant O=$PWD -k -i mandocs %{?jobs:-j%jobs}
make -C /usr/src/linux%variant O=$PWD -k -i pdfdocs %{?jobs:-j%jobs}
make -C /usr/src/linux-%kernelrelease%variant O=$PWD -k -i mandocs %{?jobs:-j%jobs}
make -C /usr/src/linux-%kernelrelease%variant O=$PWD -k -i pdfdocs %{?jobs:-j%jobs}
%install
rm -rf $RPM_BUILD_ROOT
@ -91,7 +86,7 @@ fi
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%variant/{COPYING,CREDITS,MAINTAINERS,README,REPORTING-BUGS} .
cp -a /usr/src/linux-%kernelrelease%variant/{COPYING,CREDITS,MAINTAINERS,README,REPORTING-BUGS} .
%clean
rm -rf $RPM_BUILD_ROOT

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
%package -n %{-n*}-kmp-%1
%package -n %{-n*}-%1
%define _this_kmp_version %{-v*}_k%(echo %2 | sed -r 'y/-/_/; s/^(2\.6\.[0-9]+)_/\\1.0_/; # use 2.6.x.0 for mainline kernels')
Version: %_this_kmp_version
Release: %{-r*}
@ -20,21 +20,13 @@ END { print tags["summary"]
print tags["group"] }
' $spec
)
Provides: %{-n*}-kmp = %_this_kmp_version
Provides: %{-n*}-kmp = %{-v*}
Provides: %{-n*} = %_this_kmp_version
Provides: multiversion(kernel)
Requires: coreutils grep
%{-c:Requires: %{-n*}-ueficert}
Enhances: kernel-%1
%if %1 == "default"
Obsoletes: %{-n*}-trace
%ifarch %ix86
Obsoletes: %{-n*}-vmi
%endif
%endif
AutoReqProv: on
%{-p:%{expand:%(cd %_sourcedir; cat %{-p*})}}
%description -n %{-n*}-kmp-%1
%description -n %{-n*}-%1
%(
for spec in {%_sourcedir,%_specdir}/%name.spec /dev/null; do
[ -e $spec ] && break
@ -56,19 +48,17 @@ in_desc { print; good = 1 }
END { exit(! good) }
' $spec
)
%post -n %{-n*}-kmp-%1
nvr=%{-n*}-kmp-%1-%_this_kmp_version-%{-r*}
%post -n %{-n*}-%1
nvr=%{-n*}-%1-%_this_kmp_version-%{-r*}
wm2=/usr/lib/module-init-tools/weak-modules2
if [ -x $wm2 ]; then
%{-b:KMP_NEEDS_MKINITRD=1} INITRD_IN_POSTTRANS=1 /bin/bash -${-/e/} $wm2 --add-kmp $nvr
/bin/bash -${-/e/} $wm2 --add-kmp $nvr
fi
%posttrans -n %{-n*}-kmp-%1
%{?regenerate_initrd_posttrans}
%preun -n %{-n*}-kmp-%1
nvr=%{-n*}-kmp-%1-%_this_kmp_version-%{-r*}
%preun -n %{-n*}-%1
nvr=%{-n*}-%1-%_this_kmp_version-%{-r*}
rpm -ql $nvr | sed -n '/\.ko$/p' > /var/run/rpm-$nvr-modules
%postun -n %{-n*}-kmp-%1
nvr=%{-n*}-kmp-%1-%_this_kmp_version-%{-r*}
%postun -n %{-n*}-%1
nvr=%{-n*}-%1-%_this_kmp_version-%{-r*}
modules=( $(cat /var/run/rpm-$nvr-modules) )
rm -f /var/run/rpm-$nvr-modules
if [ ${#modules[*]} = 0 ]; then
@ -79,7 +69,7 @@ wm2=/usr/lib/module-init-tools/weak-modules2
if [ -x $wm2 ]; then
printf '%s\n' "${modules[@]}" | /bin/bash -${-/e/} $wm2 --remove-kmp $nvr
fi
%files -n %{-n*}-kmp-%1
%files -n %{-n*}-%1
%{-f:%{expand:%(cd %_sourcedir; cat %{-f*})}}
%{!-f:%defattr (-,root,root)}
%{!-f:/lib/modules/%2-%1}

File diff suppressed because it is too large Load Diff

14792
kernel-net.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,143 +0,0 @@
#
# spec file for package kernel-obs-build
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# needsrootforbuild
#!BuildIgnore: post-build-checks
%define patchversion 3.16.0
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
Name: kernel-obs-build
BuildRequires: coreutils
BuildRequires: device-mapper
BuildRequires: util-linux
BuildRequires: kernel-default
%ifarch %ix86 x86_64
BuildRequires: kernel-xen
%endif
ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc ppc64 ppc64le s390x x86_64
%if 0%{?suse_version} < 1320
# For SLE 11
BuildRequires: mkinitrd
BuildRequires: perl-Bootloader
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%else
BuildRequires: dracut
%endif
Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0
Group: SLES
Version: 3.16.0
%if 0%{?is_kotd}
Release: <RELEASE>.g0e31675
%else
Release: 0
%endif
%description
This package is repackaging already compiled kernels to make them usable
inside of Open Build Service (OBS) VM builds. An initrd with some basic
kernel modules is generated as well, but further kernel modules can be
loaded during build when installing the kernel package.
%prep
%build
mkdir -p /usr/lib/dracut/modules.d/80obs
cat > /usr/lib/dracut/modules.d/80obs/module-setup.sh <<EOF
#!/bin/bash
# called by dracut
check() {
return 0
}
# called by dracut
installkernel() {
hostonly='' instmods obs
}
# called by dracut
install() {
inst_hook pre-udev 10 "\$moddir"/setup_obs.sh
}
EOF
chmod a+rx /usr/lib/dracut/modules.d/80obs/module-setup.sh
cat > /usr/lib/dracut/modules.d/80obs/setup_obs.sh <<EOF
#!/bin/sh
info "Loading kernel modules for OBS"
info " Loop..."
modprobe loop max_loop=64 lbs=0 || modprobe loop max_loop=64
info " binfmt misc..."
modprobe binfmt_misc
EOF
chmod a+rx /usr/lib/dracut/modules.d/80obs/setup_obs.sh
# a longer list to have them also available for qemu cross builds where x86_64 kernel runs in eg. arm env.
# this list of modules where available on build workers of build.opensuse.org, so we stay compatible.
export KERNEL_MODULES="loop dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 reiserfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk fat vfat nls_cp437 nls_iso8859-1 ibmvscsi ibmvscsic"
ROOT=""
[ -e "/dev/vda" ] && ROOT="-d /dev/vda"
[ -e /dev/hda1 ] && ROOT="-d /dev/hda1" # for xen builds
%define kernel_name vmlinu?
%ifarch s390 s390x
%define kernel_name image
%endif
%ifarch aarch64
%define kernel_name Image
%endif
%if 0%{?suse_version} < 1320
# For SLE 11
/sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \
-k /boot/%{kernel_name}-*-default -M /boot/System.map-*-default -i /tmp/initrd.kvm -B
%ifarch %ix86 x86_64
/sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \
-k /boot/vmlinuz-xen -M /boot/System.map-*-xen -i /tmp/initrd.xen
%endif
%else
dracut --host-only --drivers="$KERNEL_MODULES" --force /tmp/initrd.kvm `echo /boot/%{kernel_name}-*-default | sed -n -e 's,[^-]*-\(.*-default\),\1,p'`
%ifarch %ix86 x86_64
dracut --host-only --drivers="$KERNEL_MODULES xenblk" --force /tmp/initrd.xen `echo /boot/%{kernel_name}-*-xen | sed -n -e 's,[^-]*-\(.*-xen\),\1,p'`
%endif
%endif
#cleanup
rm -rf /usr/lib/dracut/modules.d/80obs
%install
install -d -m 0755 $RPM_BUILD_ROOT
cp -v /boot/%{kernel_name}-*-default $RPM_BUILD_ROOT/.build.kernel.kvm
cp -v /tmp/initrd.kvm $RPM_BUILD_ROOT/.build.initrd.kvm
%ifarch %ix86 x86_64
cp -v /boot/%{kernel_name}-*-xen $RPM_BUILD_ROOT/.build.kernel.xen
cp -v /tmp/initrd.xen $RPM_BUILD_ROOT/.build.initrd.xen
%endif
%files
%defattr(-,root,root)
/.build.kernel.*
/.build.initrd.*
%changelog

View File

@ -1,143 +0,0 @@
#
# spec file for package kernel-obs-build
#
# Copyright (c) @YEAR@ SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# needsrootforbuild
#!BuildIgnore: post-build-checks
%define patchversion @PATCHVERSION@
%define variant @VARIANT@%{nil}
%include %_sourcedir/kernel-spec-macros
Name: kernel-obs-build
BuildRequires: coreutils
BuildRequires: device-mapper
BuildRequires: util-linux
BuildRequires: kernel-default
%ifarch %ix86 x86_64
BuildRequires: kernel-xen
%endif
ExclusiveArch: @ARCHS@
%if 0%{?suse_version} < 1320
# For SLE 11
BuildRequires: mkinitrd
BuildRequires: perl-Bootloader
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%else
BuildRequires: dracut
%endif
Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0
Group: SLES
Version: @RPMVERSION@
%if 0%{?is_kotd}
Release: <RELEASE>.g@COMMIT@
%else
Release: @RELEASE@
%endif
%description
This package is repackaging already compiled kernels to make them usable
inside of Open Build Service (OBS) VM builds. An initrd with some basic
kernel modules is generated as well, but further kernel modules can be
loaded during build when installing the kernel package.
%prep
%build
mkdir -p /usr/lib/dracut/modules.d/80obs
cat > /usr/lib/dracut/modules.d/80obs/module-setup.sh <<EOF
#!/bin/bash
# called by dracut
check() {
return 0
}
# called by dracut
installkernel() {
hostonly='' instmods obs
}
# called by dracut
install() {
inst_hook pre-udev 10 "\$moddir"/setup_obs.sh
}
EOF
chmod a+rx /usr/lib/dracut/modules.d/80obs/module-setup.sh
cat > /usr/lib/dracut/modules.d/80obs/setup_obs.sh <<EOF
#!/bin/sh
info "Loading kernel modules for OBS"
info " Loop..."
modprobe loop max_loop=64 lbs=0 || modprobe loop max_loop=64
info " binfmt misc..."
modprobe binfmt_misc
EOF
chmod a+rx /usr/lib/dracut/modules.d/80obs/setup_obs.sh
# a longer list to have them also available for qemu cross builds where x86_64 kernel runs in eg. arm env.
# this list of modules where available on build workers of build.opensuse.org, so we stay compatible.
export KERNEL_MODULES="loop dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 reiserfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk fat vfat nls_cp437 nls_iso8859-1 ibmvscsi ibmvscsic"
ROOT=""
[ -e "/dev/vda" ] && ROOT="-d /dev/vda"
[ -e /dev/hda1 ] && ROOT="-d /dev/hda1" # for xen builds
%define kernel_name vmlinu?
%ifarch s390 s390x
%define kernel_name image
%endif
%ifarch aarch64
%define kernel_name Image
%endif
%if 0%{?suse_version} < 1320
# For SLE 11
/sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \
-k /boot/%{kernel_name}-*-default -M /boot/System.map-*-default -i /tmp/initrd.kvm -B
%ifarch %ix86 x86_64
/sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \
-k /boot/vmlinuz-xen -M /boot/System.map-*-xen -i /tmp/initrd.xen
%endif
%else
dracut --host-only --drivers="$KERNEL_MODULES" --force /tmp/initrd.kvm `echo /boot/%{kernel_name}-*-default | sed -n -e 's,[^-]*-\(.*-default\),\1,p'`
%ifarch %ix86 x86_64
dracut --host-only --drivers="$KERNEL_MODULES xenblk" --force /tmp/initrd.xen `echo /boot/%{kernel_name}-*-xen | sed -n -e 's,[^-]*-\(.*-xen\),\1,p'`
%endif
%endif
#cleanup
rm -rf /usr/lib/dracut/modules.d/80obs
%install
install -d -m 0755 $RPM_BUILD_ROOT
cp -v /boot/%{kernel_name}-*-default $RPM_BUILD_ROOT/.build.kernel.kvm
cp -v /tmp/initrd.kvm $RPM_BUILD_ROOT/.build.initrd.kvm
%ifarch %ix86 x86_64
cp -v /boot/%{kernel_name}-*-xen $RPM_BUILD_ROOT/.build.kernel.xen
cp -v /tmp/initrd.xen $RPM_BUILD_ROOT/.build.initrd.xen
%endif
%files
%defattr(-,root,root)
/.build.kernel.*
/.build.initrd.*
%changelog

View File

@ -1,80 +0,0 @@
#
# spec file for package kernel-obs-qa
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# needsrootforbuild
%define patchversion 3.16.0
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
Name: kernel-obs-qa-xen
BuildRequires: kernel-xen
# kernel-obs-build must be also configured as VMinstall, but is required
# here as well to avoid that qa and build package build parallel
BuildRequires: kernel-obs-build
BuildRequires: modutils
ExclusiveArch: %ix86 x86_64
%if 0%{?suse_version} < 1200
# for SLE 11
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Summary: Basic QA tests for the kernel
License: GPL-2.0
Group: SLES
Version: 3.16.0
%if 0%{?is_kotd}
Release: <RELEASE>.g0e31675
%else
Release: 0
%endif
%description
This package is using the kernel compiled within Open Build Service(OBS)
projects and runs basic tests.
%prep
%build
%check
# More tests are comming, currently the main test is the existens of
# this spec file. It does trigger a build within OBS VM which is using
# the kernel of the same project.
# test suites should be packaged in other packages, but build required
# and called here.
if ! /sbin/modprobe loop; then
echo "ERROR: Unable to load the kernel loop module."
echo "Usually the wrong kernel is running, this is atm"
cat /proc/version
echo "Installed kernel modules are:"
rpm -q kernel-xen
exit 1
fi
%install
mkdir -p %{buildroot}/usr/share/%name
touch %{buildroot}/usr/share/%name/logfile
%files
%defattr(-,root,root)
/usr/share/%name
%changelog

View File

@ -1,80 +0,0 @@
#
# spec file for package kernel-obs-qa
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# needsrootforbuild
%define patchversion 3.16.0
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
Name: kernel-obs-qa
BuildRequires: kernel-default
# kernel-obs-build must be also configured as VMinstall, but is required
# here as well to avoid that qa and build package build parallel
BuildRequires: kernel-obs-build
BuildRequires: modutils
ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc ppc64 ppc64le s390x x86_64
%if 0%{?suse_version} < 1200
# for SLE 11
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Summary: Basic QA tests for the kernel
License: GPL-2.0
Group: SLES
Version: 3.16.0
%if 0%{?is_kotd}
Release: <RELEASE>.g0e31675
%else
Release: 0
%endif
%description
This package is using the kernel compiled within Open Build Service(OBS)
projects and runs basic tests.
%prep
%build
%check
# More tests are comming, currently the main test is the existens of
# this spec file. It does trigger a build within OBS VM which is using
# the kernel of the same project.
# test suites should be packaged in other packages, but build required
# and called here.
if ! /sbin/modprobe loop; then
echo "ERROR: Unable to load the kernel loop module."
echo "Usually the wrong kernel is running, this is atm"
cat /proc/version
echo "Installed kernel modules are:"
rpm -q kernel-default
exit 1
fi
%install
mkdir -p %{buildroot}/usr/share/%name
touch %{buildroot}/usr/share/%name/logfile
%files
%defattr(-,root,root)
/usr/share/%name
%changelog

View File

@ -1,80 +0,0 @@
#
# spec file for package kernel-obs-qa
#
# Copyright (c) @YEAR@ SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# needsrootforbuild
%define patchversion @PATCHVERSION@
%define variant @VARIANT@%{nil}
%include %_sourcedir/kernel-spec-macros
Name: @NAME@
BuildRequires: kernel-@FLAVOR@
# kernel-obs-build must be also configured as VMinstall, but is required
# here as well to avoid that qa and build package build parallel
BuildRequires: kernel-obs-build
BuildRequires: modutils
ExclusiveArch: @ARCHS@
%if 0%{?suse_version} < 1200
# for SLE 11
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Summary: Basic QA tests for the kernel
License: GPL-2.0
Group: SLES
Version: @RPMVERSION@
%if 0%{?is_kotd}
Release: <RELEASE>.g@COMMIT@
%else
Release: @RELEASE@
%endif
%description
This package is using the kernel compiled within Open Build Service(OBS)
projects and runs basic tests.
%prep
%build
%check
# More tests are comming, currently the main test is the existens of
# this spec file. It does trigger a build within OBS VM which is using
# the kernel of the same project.
# test suites should be packaged in other packages, but build required
# and called here.
if ! /sbin/modprobe loop; then
echo "ERROR: Unable to load the kernel loop module."
echo "Usually the wrong kernel is running, this is atm"
cat /proc/version
echo "Installed kernel modules are:"
rpm -q kernel-@FLAVOR@
exit 1
fi
%install
mkdir -p %{buildroot}/usr/share/%name
touch %{buildroot}/usr/share/%name/logfile
%files
%defattr(-,root,root)
/usr/share/%name
%changelog

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

14814
kernel-ppc64.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

14795
kernel-ps3.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

14789
kernel-s390.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,2 @@
# These zero-length files are correct:
addFilter("zero-length /usr/src/linux-3\..*obj/.*include/config.*h")
# vdsos are special
addFilter("shared-lib-without-dependency-information /lib/modules/3\..*/vdso/.*")
addFilter("missing-PT_GNU_STACK-section /lib/modules/3\..*/vdso/")
# This is a stale symlink until the kernel-source package is installed:
addFilter("dangling-symlink /lib/modules/3\..*/source")
# These hidden files are fine:
addFilter ("hidden-file-or-dir /usr/src/linux-3\..*-obj/.*/.config")
addFilter ("hidden-file-or-dir /usr/src/linux-3\..*-obj/.*/.kernel-binary.spec.buildenv")
addFilter("zero-length /usr/src/linux-2\.6\..*obj/.*include/config.*h")

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#
# spec file for package kernel-source@VARIANT@
# spec file for package kernel-source@VARIANT@ (Version @RPMVERSION@)
#
# Copyright (c) @YEAR@ SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -14,38 +14,39 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# icecream 0
# norootforbuild
# icecream 0
%define srcversion @SRCVERSION@
%define patchversion @PATCHVERSION@
%define variant @VARIANT@%{nil}
%define vanilla_only @VANILLA_ONLY@
%include %_sourcedir/kernel-spec-macros
%define src_install_dir usr/src/linux-%kernelrelease%variant
%define obj_install_dir /%src_install_dir-obj
%define rpm_install_dir %buildroot%real_install_dir
Name: kernel-source@VARIANT@
Summary: The Linux Kernel Sources
License: GPL-2.0
Group: Development/Sources
Version: @RPMVERSION@
%if 0%{?is_kotd}
Release: <RELEASE>.g@COMMIT@
%if %using_buildservice
Release: @RELEASE_PREFIX@<RELEASE>
%else
Release: @RELEASE@
Release: @RELEASE_PREFIX@0
%endif
License: GPL v2 only
Group: Development/Sources
Url: http://www.kernel.org/
AutoReqProv: off
BuildRequires: coreutils
BuildRequires: coreutils sed
BuildRequires: fdupes
BuildRequires: sed
Requires(post): coreutils sed
Provides: %name = %version-%source_rel
Provides: linux
Provides: multiversion(kernel)
Source0: @TARBALL_URL@linux-%srcversion.tar.xz
Provides: linux
Provides: %name = %version-%source_rel
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%srcversion.tar.bz2
Source2: source-post.sh
Source3: kernel-source.rpmlintrc
Source8: devel-pre.sh
@ -60,7 +61,8 @@ Source17: apply-patches
Source21: config.conf
Source23: supported.conf
Source33: check-for-config-changes
Source35: group-source-files.pl
Source34: check-supported-list
Source35: group-source-files.pl
Source37: README.SUSE
Source38: README.KSYMS
Source39: config-options.changes.txt
@ -68,6 +70,7 @@ Source40: source-timestamp
Source44: find-provides
Source45: split-modules
Source46: modversions
Source47: extract-modaliases
Source48: macros.kernel-source
Source49: kernel-module-subpackage
Source50: kabi.pl
@ -77,21 +80,14 @@ Source53: kernel-source.spec.in
Source54: kernel-binary.spec.in
Source55: kernel-syms.spec.in
Source56: kernel-docs.spec.in
Source57: kernel-cert-subpackage
Source58: constraints.in
Source60: config.sh
Source61: compute-PATCHVERSION.sh
Source62: old-flavors
Source62: old-packages.conf
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source66: configtool.pl
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
Source71: kernel-obs-qa.spec.in
Source72: compress-vmlinux.sh
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
@ -107,12 +103,11 @@ Source111: patches.rt.tar.bz2
Source112: patches.trace.tar.bz2
Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2
Source121: sysctl.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
Prefix: /usr/src
# Source is only complete with devel files.
Requires: kernel-devel%variant = %version-%release
Requires: kernel-devel = %version-%release
%(chmod +x %_sourcedir/{@SCRIPTS@})
@ -124,34 +119,40 @@ Requires: kernel-devel%variant = %version-%release
%description
Linux kernel sources with many fixes and improvements.
%source_timestamp
%package -n kernel-devel%variant
Summary: Development files needed for building kernel modules
Group: Development/Sources
AutoReqProv: off
Summary: Development files needed for building kernel modules
License: GPL v2 only
Group: Development/Sources
AutoReqProv: off
Provides: multiversion(kernel)
Provides: kernel-devel%variant = %version-%source_rel
Provides: multiversion(kernel)
%description -n kernel-devel%variant
Kernel-level headers and Makefiles required for development of
external kernel modules.
%source_timestamp
%package vanilla
Summary: Vanilla Linux kernel sources with minor build fixes.
License: GPL v2 only
Group: Development/Sources
AutoReqProv: off
Provides: %name-vanilla = %version-%source_rel
Provides: multiversion(kernel)
Provides: %name-vanilla = %version-%source_rel
%description vanilla
Vanilla Linux kernel sources with minor build fixes.
%source_timestamp
%prep
if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
echo "Please get a copy of linux-%srcversion.tar.bz2 from" \
"ftp://ftp.kernel.org/pub/linux/kernel/v2.6/."
fi
echo "Symbol(s): %symbols"
@ -159,45 +160,42 @@ echo "Symbol(s): %symbols"
%setup -q -c -T @UNPACK_PATCHES@
%build
# Release number without the EXTRAVERSION
RELEASE=%source_rel
while [ "$RELEASE" != "${RELEASE#[^0-9]*.}" ]; do
RELEASE=${RELEASE#[^0-9]*.}
done
mkdir -p $RPM_BUILD_ROOT/usr/src
cd $RPM_BUILD_ROOT/usr/src
ln -sf linux%variant linux%variant # dummy symlink
# Unpack the vanilla kernel sources
tar -xf %{S:0}
if test "%srcversion" != "%kernelrelease%variant"; then
mv linux-%srcversion linux-%kernelrelease%variant
fi
tar -xjf %_sourcedir/linux-%srcversion.tar.bz2
mv linux-%srcversion "%buildroot/%src_install_dir"
%if %do_vanilla
%if %vanilla_only
mv \
%else
cp -al \
%endif
linux-%kernelrelease%variant linux-%kernelrelease-vanilla
cp -al "%buildroot/%src_install_dir" linux-%kernelrelease-vanilla
cd linux-%kernelrelease-vanilla
%_sourcedir/apply-patches --vanilla %_sourcedir/series.conf %my_builddir %symbols
rm -f $(find . -name ".gitignore")
cd ..
%endif
%if ! %vanilla_only
ln -sf linux%variant linux%variant # dummy symlink
cd linux-%kernelrelease%variant
cd "%buildroot/%src_install_dir"
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
rm -f $(find . -name ".gitignore")
if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion
fi
%endif
# Hardlink duplicate files automatically (from package fdupes).
%fdupes $RPM_BUILD_ROOT
%install
%if ! %vanilla_only
# Install the documentation and example Kernel Module Package.
DOC=$RPM_BUILD_ROOT/usr/share/doc/packages/%name
mkdir -p $DOC
@ -207,7 +205,7 @@ ln -s /usr/share/doc/packages/%name/README.SUSE %buildroot/%src_install_dir/
install -m 755 -d $RPM_BUILD_ROOT/etc/rpm
install -m 644 %_sourcedir/macros.kernel-source $RPM_BUILD_ROOT/etc/rpm/
install -m 755 -d $RPM_BUILD_ROOT/usr/lib/rpm
install -m 644 %_sourcedir/kernel-{module,cert}-subpackage \
install -m 644 %_sourcedir/kernel-module-subpackage \
$RPM_BUILD_ROOT/usr/lib/rpm/
for script in post; do
@ -222,31 +220,23 @@ perl "%_sourcedir/group-source-files.pl" \
-L "%src_install_dir"
popd
# kernel-source and kernel-$flavor-devel are built independently, but the
# shipped sources (/usr/src/linux/) need to be older than generated files
# (/usr/src/linux-obj). We rely on the git commit timestamp to not point into
# the future and be thus lower than the timestamps of files built from the
# source (bnc#669669).
ts="$(head -n1 %_sourcedir/source-timestamp)"
find %buildroot/usr/src/linux* ! -type l | xargs touch -d "$ts"
%post -f %name-post.sh
%post -n kernel-devel%variant -f %name-post.sh
%files -f nondevel.files
%defattr(-, root, root)
%ghost /usr/src/linux%variant
/usr/src/linux%variant-%kernelrelease/README.SUSE
%files -n kernel-devel%variant -f devel.files
%defattr(-,root,root)
%ghost /usr/src/linux%variant
/usr/share/doc/packages/%name
/etc/rpm/macros.kernel-source
/usr/lib/rpm/kernel-*-subpackage
%endif
/usr/lib/rpm/kernel-module-subpackage
%if %do_vanilla
%files vanilla
%defattr(-, root, root)
/usr/src/linux-%kernelrelease-vanilla

View File

@ -5,18 +5,14 @@
%define _buildshell /bin/bash
%define using_buildservice 0%{?opensuse_bs}
# source_rel is the package release string, without the rebuild counter
# generated by the build service. If the release string has a non-digit
# suffix, we keep that suffix and strip the rightmost digit component.
# This is used in KOTD builds: 2.1.g1234567 -> 2.g1234567
%define source_rel %release
%if %using_buildservice
%define source_rel %(echo %release | sed -r 's/\\.[0-9]+($|\\.[^.]*[^.0-9][^.]*$)/\\1/')
# The last digit is a volatile rebuild counter, strip it
%define source_rel %(release=%release; echo ${release%.*})
%endif
# how the kernel release string (uname -r) should look like
%define kernelrelease %patchversion-%source_rel
%define release_major %(rel="%source_rel" ; echo "${rel##[^0-9]*.}")
%define kernelrelease %patchversion-%release_major
%define my_builddir %_builddir/%{name}-%{version}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#
# spec file for package kernel-syms@VARIANT@
# spec file for package kernel-syms@VARIANT@ (Version @RPMVERSION@)
#
# Copyright (c) @YEAR@ SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -15,6 +15,7 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
%define variant @VARIANT@%{nil}
@ -22,26 +23,21 @@
Name: kernel-syms@VARIANT@
Summary: Kernel Symbol Versions (modversions)
License: GPL-2.0
Group: Development/Sources
Version: @RPMVERSION@
%if %using_buildservice
%if 0%{?is_kotd}
Release: <RELEASE>.g@COMMIT@
%else
Release: @RELEASE@
%endif
Release: @RELEASE_PREFIX@<RELEASE>
%else
%define kernel_source_release %(LC_ALL=C rpm -q kernel-devel%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0)
Release: %kernel_source_release
%endif
License: GPL v2 only
Group: Development/Sources
Url: http://www.kernel.org/
AutoReqProv: off
BuildRequires: coreutils
@REQUIRES@
Requires: pesign-obs-integration
Provides: %name = %version-%source_rel
Provides: multiversion(kernel)
Provides: %name = %version-%source_rel
Source: README.KSYMS
Requires: kernel-devel%variant = %version-%source_rel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -56,10 +52,9 @@ for the standard kernels.
This package is needed for compiling kernel module packages with proper
package dependencies.
%source_timestamp
%prep
%prep
%install
install -m 644 -D %{SOURCE0} %buildroot/%_docdir/%name/README.SUSE

21643
kernel-trace.changes Normal file

File diff suppressed because it is too large Load Diff

14797
kernel-trace.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

21643
kernel-vmi.changes Normal file

File diff suppressed because it is too large Load Diff

14789
kernel-vmi.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:15a076d1a435a6bf8e92834eba4b390b4ec094ce06d47f89d071ca9e5788ce04
size 70277083

View File

@ -1,12 +1,12 @@
# A few cross-distro definitions:
%kernel_module_package_release 1
%kernel_module_package_buildreqs modutils kernel-syms
%kernel_module_package_buildreqs module-init-tools kernel-syms
# Defines %flavors_to_build and %kernel_source() as a side effect.
%_kernel_module_package(n:v:r:t:f:Xp:bc:) \
%_kernel_module_package(n:v:r:t:f:Xp:) \
%{expand:%( \
subpkg=%{-t*}%{!-t:/usr/lib/rpm/kernel-module-subpackage} \
echo "%%define _suse_kernel_module_subpackage(n:v:r:f:p:bc) %%{expand:%%(cd %_sourcedir; cat $subpkg; echo %%%%nil)}" \
echo "%%define _suse_kernel_module_subpackage(n:v:r:f:p:) %%{expand:%%(cd %_sourcedir; cat $subpkg; echo %%%%nil)}" \
flavors_to_build= \
flavors="%*" \
for flavor in $(ls /usr/src/linux-obj/%_target_cpu 2>/dev/null); do \
@ -19,7 +19,7 @@
krel=$(make -s -C /usr/src/linux-obj/%_target_cpu/$flavor kernelrelease) \
kver=${krel%%-*} \
flavors_to_build="$flavors_to_build $flavor" \
echo "%%_suse_kernel_module_subpackage -n %{-n*}%{!-n:%name} -v %{-v*}%{!-v:%version} -r %{-r*}%{!-r:%release} %{-p} %{-b} %{-c:-c} $flavor $kver" \
echo "%%_suse_kernel_module_subpackage -n %{-n*}%{!-n:%name}-kmp -v %{-v*}%{!-v:%version} -r %{-r*}%{!-r:%release} %{-p} $flavor $kver" \
done \
echo "%%global flavors_to_build${flavors_to_build:-%%nil}" \
echo "%%{expand:%%(test -z '%flavors_to_build' && echo %%%%internal_kmp_error)}" \
@ -31,21 +31,13 @@
echo "Summary: %summary" \
echo "Group: %group" \
echo "%description -n %{-n*}%{!-n:%name}-kmp-_dummy_" \
%{-c:
for fmt in DER PEM; do h=$(openssl x509 -inform $fmt -fingerprint -noout -in %{-c*}); if test -n "$h"; then break; fi; done \
cert=/etc/uefi/certs/$(echo "$h" | sed -rn 's/^SHA1 Fingerprint=//; T; s/://g; s/(.{8}).*/\\1/p').crt
: The -n expanstion in kernel-cert-subpackage only works if
: -n is actually passed to the macro. Fix this here, so that
: we do not have to modify the modsign-repackage script
sed "s|@CERTS@|$cert|g; s|%%{-n.}|%{-n*}%{!-n:%name}|g" /usr/lib/rpm/kernel-cert-subpackage \
echo "%%global __spec_build_pre %%__spec_build_pre mkdir -p %%buildroot/etc/uefi/certs; openssl x509 -in %{-c*} -inform $fmt -out %%buildroot/$cert -outform DER" } \
)}
# kernel_module_package: simply pass on all options and arguments.
%kernel_module_package(n:v:r:t:f:xp:bc:) \
%kernel_module_package(n:v:r:t:f:xp:) \
%{expand:%%_kernel_module_package %{-x:-X} %{-n} %{-v} %{-r} %{-t} %{-f} %{-p} %*}
# suse_kernel_module_package: invert the meaning of the -x flag. (You are not
# supposed to understand why a simple %{-x:}%{!-x:-x} won't work.)
%suse_kernel_module_package(n:v:r:s:f:xp:bc:) \
%suse_kernel_module_package(n:v:r:s:f:xp:) \
%{expand:%%_kernel_module_package %{-x: }%{!-x:-X} %{-n} %{-v} %{-r} %{-s:-t %{-s*}} %{-f} %{-p} %*}

226
mkspec
View File

@ -7,7 +7,7 @@ use File::Copy;
use Getopt::Long;
my $dir = ".";
my $rpmrelease = 0;
my $rpmrelease;
my $patches="";
GetOptions(
@ -25,34 +25,37 @@ my %templates = read_spec_templates();
# config.sh variables
my %vars = parse_config_sh();
my ($srcversion, $variant, $vanilla_only) =
($vars{'SRCVERSION'}, $vars{'VARIANT'}, $vars{'VANILLA_ONLY'});
$vanilla_only ||= "0";
my ($srcversion, $variant) = ($vars{'SRCVERSION'}, $vars{'VARIANT'});
# rpm changelog
my $changelog = convert_changes();
# package name -> [summary, description]
my %binary_descriptions = parse_descriptions();
# arch -> flavor -> [obsoleted packages]
my %obsolete_packages = parse_old_flavors();
$patches="--patches $patches" if $patches;
my $patchversion = `$dir/compute-PATCHVERSION.sh $patches`;
chomp $patchversion;
my $rpmversion = $patchversion;
# stuff the -rcX tag into the rpm version if possible;
$rpmversion =~ s/\.0-rc/.rc/;
$rpmversion =~ s/-rc\d+//;
$rpmversion =~ s/-/./g;
my $rpmversion;
if (defined($rpmrelease)) {
($rpmversion = $patchversion) =~ s/-.*//;
# convince abuild that we really want this release number
xopen(my $fh, '>', "$dir/get_release_number.sh");
print $fh "#!/bin/sh\n";
print $fh "echo \"$rpmrelease.0\"\n";
close($fh);
chmod(0755, "$dir/get_release_number.sh");
} else {
($rpmversion, $rpmrelease) = (split(/-/, $patchversion, 2), "");
}
$rpmrelease =~ s/[^.]$/$&./;
$rpmrelease =~ s/-/./g;
my $sources = join("\n", $templates{source} =~ /^Source\d+:[^\n]*/msg);
# Find all SourceN: foo.tar.(bz2|xz) lines and generate the NoSource:
my $sources = join("", $templates{source} =~ /\nSource\d+:[^\n]*/mg);
# Find all SourceN: foo.tar.bz2 lines and generate the NoSource:
# lines and the %setup line
my @tarballs = ($sources =~ /^Source(\d+):[^\n]*\.tar\.(?:bz2|xz)/msg);
my $nosource = $sources;
$nosource =~ s/^Source(\d+):.*?$/NoSource: $1/mg;
my @tarballs = ($sources =~ /\nSource(\d+):[^\n]*\.tar\.bz2/mg);
my $nosource = join("\n", map { "NoSource: $_" } @tarballs);
# Source0 (the linux tarball) is unpacked manually
@tarballs = grep { $_ > 0 } @tarballs;
my $unpack_patches = join(" ", map { "-a $_" } @tarballs);
@ -60,31 +63,16 @@ my $unpack_patches = join(" ", map { "-a $_" } @tarballs);
my $scripts = join(",", grep { is_script($_) }
($sources =~ /\nSource\d+:\s*([^\s]*)/mg));
my $tarball_url;
if ($srcversion =~ /^(\d+)(?:\.\d+)*(-rc\d+)?$/) {
$tarball_url = "http://www.kernel.org/pub/linux/kernel/v$1.x/";
$tarball_url .= "testing/" if $2;
} else {
# kernel.org has no tarballs for linux-next or vanilla snapshots
$tarball_url = "";
}
my $commit = get_commit();
my %macros = (
VARIANT => $variant,
VANILLA_ONLY => $vanilla_only,
SRCVERSION => $srcversion,
PATCHVERSION => $patchversion,
RPMVERSION => $rpmversion,
TARBALL_URL => $tarball_url,
RELEASE => $rpmrelease,
COMMIT => $commit,
RELEASE_PREFIX => $rpmrelease,
SOURCES => $sources,
NOSOURCE => $nosource,
UNPACK_PATCHES => $unpack_patches,
SCRIPTS => $scripts,
YEAR => (localtime time)[5] + 1900,
);
# binary spec files
@ -104,14 +92,7 @@ for my $flavor (sort keys(%flavor_archs)) {
SUMMARY => $summary,
DESCRIPTION => $description,
ARCHS => join(" ", arch2rpm(@{$flavor_archs{$flavor}})),
PROVIDES_OBSOLETES =>
provides_obsoletes($flavor, @{$flavor_archs{$flavor}}),
PROVIDES_OBSOLETES_BASE =>
provides_obsoletes("$flavor-base", @{$flavor_archs{$flavor}}),
PROVIDES_OBSOLETES_EXTRA =>
provides_obsoletes("$flavor-extra", @{$flavor_archs{$flavor}}),
PROVIDES_OBSOLETES_DEVEL =>
provides_obsoletes("$flavor-devel", @{$flavor_archs{$flavor}}),
PROVIDES_OBSOLETES => provides_obsoletes($flavor, @{$flavor_archs{$flavor}}),
);
}
# kernel-source.spec
@ -124,7 +105,6 @@ do_spec('docs', "kernel-docs$variant.spec", %macros);
{
my $requires = "";
my %all_archs;
my $all_archs;
for my $flavor (sort keys(%syms_flavor_archs)) {
next if $flavor eq "vanilla";
my @archs = arch2rpm(@{$syms_flavor_archs{$flavor}});
@ -134,42 +114,9 @@ do_spec('docs', "kernel-docs$variant.spec", %macros);
$requires .= "%endif\n";
}
chomp $requires;
$all_archs = join(" ", sort(keys(%all_archs)));
if (keys(%all_archs)) {
do_spec('syms', "kernel-syms$variant.spec", %macros,
REQUIRES => $requires,
ARCHS => $all_archs);
}
}
# kernel-obs-*.spec
{
my $default_archs = join(" ", arch2rpm(@{$flavor_archs{default}}));
my $xen_archs = join(" ", arch2rpm(@{$flavor_archs{xen} || []}));
if (!$variant) {
do_spec('obs-build', "kernel-obs-build.spec", %macros,
ARCHS => $default_archs);
do_spec('obs-qa', "kernel-obs-qa.spec", %macros,
ARCHS => $default_archs,
NAME => "kernel-obs-qa",
FLAVOR => "default");
}
if ($xen_archs) {
do_spec('obs-qa', "kernel-obs-qa-xen.spec", %macros,
ARCHS => $xen_archs,
NAME => "kernel-obs-qa-xen",
FLAVOR => "xen");
}
}
copy_changes();
# _constraints
{
my @packages = map { "<package>kernel-$_</package>" } sort keys(%flavor_archs);
my $packages = join("\n", @packages);
do_spec('constraints', "_constraints",
BINARY_PACKAGES_XML => $packages);
do_spec('syms', "kernel-syms$variant.spec", %macros,
REQUIRES => $requires,
ARCHS => join(" ", sort(keys(%all_archs))));
}
exit 0;
@ -200,18 +147,12 @@ sub parse_config_conf {
sub read_spec_templates {
my %res;
for my $template (qw(binary source syms docs obs-build obs-qa)) {
for my $template qw(binary source syms docs) {
xopen(my $fh, '<', "$dir/kernel-$template.spec.in");
local $/ = undef;
$res{$template} = <$fh>;
close($fh);
}
{
xopen(my $fh, '<', "$dir/constraints.in");
local $/ = undef;
$res{constraints} = <$fh>;
close($fh);
}
return %res;
}
@ -230,6 +171,25 @@ sub parse_config_sh {
return %res;
}
# convert kernel-source.changes to rpm changelog
sub convert_changes {
my $res = "\%changelog\n";
my @progs = qw(/usr/lib/build/changelog2spec
/work/src/bin/tools/convert_changes_to_rpm_changelog);
my $changesfile = "$dir/kernel-source$variant.changes";
if (-e $changesfile) {
for my $prog (@progs) {
if (-x $prog) {
$res .= `$prog $changesfile`;
last;
}
}
}
chomp $res;
return $res;
}
sub parse_descriptions {
my %res;
my $current;
@ -279,28 +239,6 @@ sub parse_descriptions {
return %res;
}
sub parse_old_flavors{
my %res;
xopen(my $fh, '<', "$dir/old-flavors");
while (<$fh>) {
chomp;
next if /^\s*(#|$)/;
if (!m:^\s*(\w+)/([\w-]+)\s+([\w-]+)\s+([\w.-]+)\s*$:) {
print STDERR "$dir/old-flavors:$.: expected arch/flavor <old flavor> <old version>\n";
next;
}
my ($arch, $flavor, $old_flavor, $old_version) = ($1, $2, $3, $4);
$res{$arch} ||= {};
$res{$arch}{$flavor} ||= [];
push(@{$res{$arch}{$flavor}},
["kernel-$old_flavor", $old_version]);
}
close($fh);
return %res;
}
sub is_script {
my $script = shift;
@ -323,85 +261,57 @@ sub arch2rpm {
sub _arch2rpm {
my $arch = shift;
return "\%ix86" if $arch eq "i386";
return "aarch64" if $arch eq "arm64";
return $arch;
}
sub append_changelog {
my $changelog = $_[1];
if ($_[0] =~ s/\%changelog$/$changelog/) {
return;
}
$_[0] .= $changelog;
}
sub provides_obsoletes {
my $flavor = shift;
my @archs = @_;
my $res = "";
for my $arch (@archs) {
my @packs = @{$obsolete_packages{$arch}{$flavor} || []};
my @packs = `$dir/guards $arch $flavor <$dir/old-packages.conf`;
chomp @packs;
next if (!@packs);
my $rpmarch = arch2rpm($arch);
chomp $rpmarch;
$res .= "\%ifarch $rpmarch\n";
for my $pack (@packs) {
my $name = $pack->[0];
my $version = $pack->[1];
$res .= "Provides: $name = $version\n";
$res .= "Obsoletes: $name <= $version\n";
}
$res .= "Provides: @packs\n";
$res .= "Obsoletes: @packs\n";
$res .= "\%endif\n";
}
chomp $res;
return $res;
}
sub get_commit {
my ($commit, $fh);
if (!open($fh, '<', "source-timestamp")) {
print STDERR "warning: source-timestamp: $!\n";
print STDERR "warning: Cannot determine commit id\n";
return "0000000";
}
while (<$fh>) {
if (/^GIT Revision: ([0-9a-f]{7})/) {
$commit = $1;
}
}
close($fh);
if (!$commit) {
print STDERR "warning: Commit id missing in source-timestamp file\n";
return "0000000";
}
return $commit;
}
sub do_spec {
my $template = shift;
my $specfile = shift;
my %macros = @_;
my $text = $templates{$template};
my $prev_text;
do {
$prev_text = $text;
for my $m (keys %macros) {
$text =~ s/\@$m\@/$macros{$m}/g;
}
} while ($prev_text ne $text);
for my $m (keys %macros) {
$text =~ s/\@$m\@/$macros{$m}/g;
}
append_changelog($text, $changelog);
print "$specfile\n";
xopen(my $fh, '>', "$dir/$specfile");
print $fh $text;
close($fh);
}
sub copy_changes {
opendir(my $dh, $dir) or die "$dir: $!\n";
while (my $name = readdir $dh) {
next unless $name =~ /\.spec$/;
next if $name eq "kernel-source$variant.spec";
$name =~ s/\.spec$/.changes/;
copy("$dir/kernel-source$variant.changes", "$dir/$name");
}
closedir($dh);
return if $specfile eq "kernel-source$variant.spec";
my $changesfile = $specfile;
$changesfile =~ s/\.spec$//;
$changesfile .= ".changes";
copy("$dir/kernel-source$variant.changes", $changesfile);
}
sub xopen {

View File

@ -7,8 +7,7 @@ use Getopt::Long;
use strict;
my %symbol_type_name = (
n => 'normal', t => 'typedef', e => 'enum', s => 'struct', u => 'union',
E => 'enum constant'
n => 'normal', t => 'typedef', e => 'enum', s => 'struct', u => 'union'
);
my %definitions;

View File

@ -1,45 +0,0 @@
# List of obsolete kernel flavors
# <arch>/<new flavor> <old flavor> <upper bound of shipped versions>
# SLES 9
ia64/default sn2 2.6.6
ppc/ppc64 pmac64 2.6.6
ppc/ppc64 pseries64 2.6.6
# SLES 10
i386/default smp 2.6.17
i386/pae bigsmp 2.6.17
i386/xen xenpae 2.6.17
x86_64/default smp 2.6.17
ppc/ppc64 iseries64 2.6.17
ppc/ppc64 kdump 2.6.17
# SLES 11 GA only
# FIXME: more architectures had kdump in SLES 10
ppc64/debug kdump 2.6.28
ppc64/default kdump 2.6.28
ppc64/ppc64 kdump 2.6.28
ppc64/trace kdump 2.6.28
# SLES 11 GA only / 11.4
i386/pae vmi 2.6.38
i386/pae-base vmi-base 2.6.38
# SLES 11 SP3 / openSUSE 13.1
i386/default trace 3.13
i386/default trace-base 3.13
i386/default-extra trace-extra 3.13
i386/default-devel trace-devel 3.13
x86_64/default trace 3.13
x86_64/default trace-base 3.13
x86_64/default-extra trace-extra 3.13
x86_64/default-devel trace-devel 3.13
s390x/default trace 3.13
s390x/default trace-base 3.13
s390x/default-extra trace-extra 3.13
s390x/default-devel trace-devel 3.13

36
old-packages.conf Normal file
View File

@ -0,0 +1,36 @@
# Defines which package names to include in the Provides and
# Obsoletes tags of spec files.
#
# When generating Provides, `p' is defined. When generating
# Obsoletes, `o' is defined.
#
# +ARCH: include only for this architecture.
# -!symbol: exclude unless symbol is also defined.
#
# Guards are always evaluated from left to right; the last
# guard that matches determines whether a line is included
# or not.
#
# For testing this file, run scripts/old-config.sh.
#
# i386 =================================================================
+i386 -!default smp kernel-smp
+i386 -!pae kernel-bigsmp
# x86_64 ===============================================================
+x86_64 -!default smp kernel-smp
# ia64 =================================================================
+ia64 -!default kernel-sn2
# ppc/ppc64 ============================================================
+ppc -!ppc64 kernel-pmac64 kernel-pseries64 kernel-iseries64
+ppc64 -vanilla kernel-kdump
# s390/s390x ===========================================================
+s390 -!s390 kernel-32bit
+s390x -!s390x kernel-64bit

View File

@ -38,6 +38,21 @@ non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory.
%endif
=== kernel-kdump ===
kernel for kdump
This kernel is intended for kdump. It can not be booted with a normal
bootloader, the kexec tool has to be used to load it. Once the system
crashes, the loaded kernel will be started to grab debug info from the
crashed kernel.
=== kernel-net ===
Minimal kernel with disk and net support
This kernel carries only networking and disk drivers to fit into the
standard Sun OpenBoot download buffer, and is intended for the
initial install and rescue mode only.
=== kernel-pae ===
Kernel with PAE Support
@ -50,6 +65,36 @@ PAE is not only more physical address space but also important for the
non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory.
=== kernel-ppc64 ===
Kernel for ppc64 Systems
This package contains the kernel for:
IBM pSeries 64bit machines IBM iSeries 64bit machines Apple G5 machines
Sony Playstation 3
The boot file is /boot/vmlinux.
The home page of the ppc64 project is http://www.penguinppc.org/
=== kernel-ps3 ===
kernel for ps3 bootloader
This package contains the kernel for the PS3 bootloader. PS3 systems
only have 4MB of flash memory for the bootloader, so this kernel needs
to be as small as possible and is _not_ meant to be installed in the
final system.
=== kernel-s390 ===
The Standard Kernel
The standard kernel.
=== kernel-trace ===
The Standard Kernel with Tracing Features
This kernel has different tracing features enabled (e.g. utrace, ftrace).
=== kernel-vanilla ===
The Standard Kernel - without any SUSE patches
@ -71,24 +116,8 @@ The Linux kernel for Xen paravirtualization.
This kernel can only be used both as an unprivileged ("xenU")
kernel (for Amazon EC2).
=== kernel-lpae ===
Kernel for LPAE enabled systems
=== kernel-vmi ===
VMI-enabled kernel
The kernel for all 32-bit ARM platforms that support LPAE. This includes all
Cortex A15 based SoCs, like the Exynos5, OMAP5 or Calxeda ECX-2000.
=== kernel-cubox ===
Kernel for SolidRun Cubox
The standard kernel for Marvell Dove SoC, as found in
the SolidRun Cubox.
=== kernel-exynos ===
Kernel for Samsung's Exynos SoC
The standard kernel for Samsung's Exynos 4 & 5 SoC, as found in the Origen board.
=== kernel-versatile ===
Kernel for Versatile SoC
The standard kernel for Versatile SoC, or for emulation with QEMU.
The Linux Kernel designed to run on top of a virtual machine
interface layer (VMI).

BIN
patches.addon.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ceb66c80b2f09f5134931e1080bf77f6db663200c0ab5ccbc3130732fb5874e
size 5138
oid sha256:617e8ded93369cfd273f43f10dc35f29d951a7199fb42b2e14bbf260425dfaf5
size 7972

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:37b789b17497b0afdeb0516811844d04569b06407d8440a5679e57948c4faba6
size 154794
oid sha256:d9de9918d63cc89a0340be5e6027f6bbd874794a752fc44fe26ef5cac234e3c1
size 76858

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:64f02618264275483687b983d58a98e69eff25ce8a416a9420d12116f0ce552d
size 3132
oid sha256:c27d3f7a770028cd6e5a0c50a2153011babad13489f257c8338a53c36c7d7244
size 136516

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4f40194f7b71d7ab96ec9de86f8fd25d935431eac6e6e195f6a9521a6ec0fd4e
size 13719
oid sha256:cd0d015d356c6571b401af57802c49e7acbeccd3dd878d5199ea41ef4c2e4b27
size 97405

BIN
patches.kabi.tar.bz2 (Stored with Git LFS)

Binary file not shown.

BIN
patches.kernel.org.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ce6ee9a79fa54017522db28e5212e27de3fd69b866819ae2128697c64ff5bee
size 3119
oid sha256:2778b85fc99bbe4d416b43762c3c1c28da12c2a0c40a33bd020435fe0c3c427c
size 3341

BIN
patches.rt.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:db8aea6a3ddd9777b2f2279a9efd325172b3066558911e756a24ef7a97ef03b0
size 83211
oid sha256:ce8c53525525db871d330944199f0f19d5c8209a2ff0cb0ab42a721b4811c924
size 283768

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dda78fdf5558cbaca9b9d55b993c519a179084ee2ff93a518daca64dedd8d250
size 131
oid sha256:aecf2590357a2ba554937d6f6a818dfa21c4b75ecd2d14c3fa8c3048e11c1dae
size 31209

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f3c093466b0607b843fa287dbe9235dc575fe36a07f9e1bf354214ff53e1dfba
size 2112663
oid sha256:850fb9cda08484037ffdd6f5a0f22445f01707f807cafad36f30393a266033c3
size 2023639

37
post.sh
View File

@ -1,9 +1,32 @@
# Flag to trigger /etc/init.d/purge-kernels on next reboot (fate#312018)
touch /boot/do_purge_kernels
# It must be possible to install different kernel.rpm packages in parallel.
# But in this post install script, the /boot/vmlinux symlink is replaced.
# On powerpc, the different kernels are for different board/firmware types
# They are not compatible.
wrong_boardtype() {
echo "This kernel-@FLAVOR@.@RPM_TARGET_CPU@.rpm is for $1, it will not boot on this system."
echo "The /boot/vmlinux symlink will not be created or updated."
exit 0
}
if [ -f /proc/cpuinfo ]; then
case "@FLAVOR@-@RPM_TARGET_CPU@" in
vanilla-ppc64|default-ppc64|ps3-ppc64|ppc64-ppc64|kdump-ppc64|ps3-ppc|ppc64-ppc|kdump-ppc)
if [ -d /proc/iSeries -o ! -d /proc/ppc64 ]; then
wrong_boardtype "OpenFirmware based 64bit machines"
fi
;;
vanilla-ppc|default-ppc)
if [ -d /proc/ppc64 -o -d /proc/iSeries ]; then
wrong_boardtype "32bit systems"
fi
;;
*)
;;
esac
fi
suffix=
case @FLAVOR@ in
xen*|ec2|vanilla)
kdump|ps3|xen*|ec2|vanilla)
suffix=-@FLAVOR@
;;
esac
@ -36,8 +59,7 @@ run_bootloader () {
[ -f /boot/grub/menu.lst -o \
-f /etc/lilo.conf -o \
-f /etc/elilo.conf -o \
-f /etc/zipl.conf -o \
-f /etc/default/grub ]
-f /etc/zipl.conf ]
then
return 0
else
@ -45,6 +67,11 @@ run_bootloader () {
fi
}
# exit out early for Moblin as we don't want to touch the bootloader menu
if [ -f /etc/SuSE-moblin-release ] ; then
exit 0
fi
if [ -f /etc/fstab -a ! -e /.buildenv ] ; then
# only run the bootloader if the usual bootloader configuration
# files are there -- this is different on every architecture

View File

@ -1,8 +1,3 @@
# If a kernel package is removed before the next reboot, we assume that the
# multiversion variable in /etc/zypp/zypp.conf is not configured and we delete
# the flag again (fate#312018)
rm -f /boot/do_purge_kernels
wm2=/usr/lib/module-init-tools/weak-modules2
nvr=@SUBPACKAGE@-@RPM_VERSION_RELEASE@
@ -26,6 +21,11 @@ if [ -x $wm2 ]; then
/bin/bash -${-/e/} $wm2 --remove-kernel @KERNELRELEASE@-@FLAVOR@
fi
# exit out early for Moblin as we don't want to touch the bootloader menu
if [ -f /etc/SuSE-moblin-release ] ; then
exit 0
fi
# remove fstab check once perl-Bootloader can cope with it
if [ -f /etc/fstab ]; then
if [ -x /usr/lib/bootloader/bootloader_entry ]; then

View File

@ -27,14 +27,16 @@
# DO NOT MODIFY THEM!
# Send separate patches upstream if you find a problem...
########################################################
patches.kernel.org/patch-2.6.36.1
########################################################
# Build fixes that apply to the vanilla kernel too.
# Patches in patches.rpmify are applied to both -vanilla
# and patched flavors.
########################################################
patches.rpmify/chipidea-clean-up-dependencies
patches.rpmify/lustre-lloop-dont-change-logical-size
patches.rpmify/tioca-fix-assignment-from-incompatible-pointer-warnings
patches.rpmify/ia64-mca-fix-cast-from-integer-to-pointer-warning
patches.rpmify/qla4xx-missing-readq-definition
########################################################
# kABI consistency patches
@ -50,22 +52,28 @@
# will be included in the vanilla package.
########################################################
patches.rpmify/firmware-path
patches.rpmify/rpm-kernel-config
patches.rpmify/split-package
patches.rpmify/buildhost
patches.rpmify/cloneconfig.diff
########################################################
# kbuild/module infrastructure fixes
########################################################
patches.suse/supported-flag
patches.suse/supported-flag-underscores
patches.suse/supported-flag-wildcards
patches.suse/supported-flag-enterprise
+36 patches.fixes/kbuild-fix-generating-of-.symtypes-files
patches.suse/genksyms-add-override-flag.diff
patches.suse/kconfig-automate-kernel-desktop
########################################################
# Simple export additions/removals
########################################################
patches.suse/reiser4-exports
patches.suse/export-release_open_intent
patches.suse/export-security_inode_permission
+still_needed-33? patches.suse/export-sync_page_range
########################################################
# Bug workarounds for binutils
@ -75,6 +83,23 @@
# Scheduler / Core
########################################################
patches.suse/setuid-dumpable-wrongdir
patches.fixes/seccomp-disable-tsc-option
patches.suse/hung_task_timeout-configurable-default
+needs_update-33 patches.suse/sched-revert-latency-defaults
patches.fixes/make-note_interrupt-fast.diff
patches.fixes/twl6030-fix-note_interrupt-call
patches.fixes/res-0001-resources-add-a-default-alignf-to-simplify-find_reso.patch
patches.fixes/res-0002-resources-factor-out-resource_clip-to-simplify-find_.patch
patches.fixes/res-0003-resources-ensure-callback-doesn-t-allocate-outside-a.patch
patches.fixes/res-0004-resources-handle-overflow-when-aligning-start-of-ava.patch
patches.fixes/res-0005-resources-support-allocating-space-within-a-region-f.patch
patches.fixes/res-0006-PCI-allocate-bus-resources-from-the-top-down.patch
patches.fixes/res-0007-x86-PCI-allocate-space-from-the-end-of-a-region-not-.patch
patches.fixes/res-0008-x86-update-iomem_resource-end-based-on-CPU-physical-.patch
patches.fixes/res-0009-x86-allocate-space-within-a-region-top-down.patch
patches.fixes/res-0010-PCI-fix-pci_bus_alloc_resource-hang-prefer-positive-.patch
########################################################
# Architecture-specific patches. These used to be all
@ -83,6 +108,15 @@
########################################################
########################################################
# ia64
########################################################
patches.fixes/ia64-sparse-fixes.diff
patches.arch/mm-avoid-bad-page-on-lru
patches.arch/ia64-page-migration
patches.arch/ia64-page-migration.fix
patches.fixes/taskstats-alignment
########################################################
# i386
########################################################
@ -98,17 +132,28 @@
########################################################
# x86_64/i386 biarch
########################################################
patches.arch/x86_64-hpet-64bit-timer.patch
patches.arch/x86-hpet-pre-read
+needs_update-33 patches.arch/x86_64-hpet-64bit-timer.patch
+needs_update patches.arch/kvm-split-paravirt-ops-by-functionality
+needs_update patches.arch/kvm-only-export-selected-pv-ops-feature-structs
+needs_update patches.arch/kvm-split-the-KVM-pv-ops-support-by-feature
+needs_update patches.arch/kvm-replace-kvm-io-delay-pv-ops-with-linux-magic
patches.arch/x86-mcp51-no-dac
patches.arch/kvm-split-paravirt-ops-by-functionality
patches.arch/kvm-only-export-selected-pv-ops-feature-structs
patches.arch/kvm-split-the-KVM-pv-ops-support-by-feature
patches.arch/kvm-replace-kvm-io-delay-pv-ops-with-linux-magic
patches.suse/x86-mark_rodata_rw.patch
########################################################
# x86 MCE/MCA (Machine Check Error/Architecture) extensions
########################################################
# Needed on Boxboro/Westmere-EX to correctly decode the physical
# address of correctable errors
patches.arch/x86_mce_intel_decode_physical_address.patch
patches.arch/x86_mce_intel_decode_physical_address_rename_fix.patch
patches.arch/x86_mce_intel_decode_physical_address_compile_fix.patch
patches.arch/x86_mce_intel_decode_physical_fix_dynamic_debug.patch
########################################################
# x86_64/4096CPUS - from SGI
@ -126,55 +171,56 @@
########################################################
# powerpc/generic
########################################################
patches.suse/led_classdev.sysfs-name.patch
patches.suse/radeon-monitor-jsxx-quirk.patch
patches.suse/8250-sysrq-ctrl_o.patch
+needs_update? patches.suse/ppc-no-LDFLAGS_MODULE.patch
patches.arch/ppc-pegasos-console-autodetection.patch
patches.suse/ppc-powerbook-usb-fn-key-default.patch
patches.drivers/ppc64-adb
patches.suse/suse-ppc64-branding
+needs_update patches.arch/ppc64-xmon-dmesg-printing.patch
patches.arch/ppc64-xmon-dmesg-printing.patch
patches.arch/ppc-prom-nodisplay.patch
+needs_update patches.fixes/ptrace-getsiginfo
########################################################
# powerpc/little endian
########################################################
patches.arch/ppc64le-build-vmlinux.patch
patches.arch/ppc64le-ile-0001-powerpc-Add-global-exports-for-all-interrupt-vectors.patch
patches.arch/ppc64le-ile-0002-powerpc-Add-relocation-code-for-fixups.patch
patches.arch/ppc64le-ile-0003-powerpc-Add-hack-to-make-ppc64le-work-on-hosts-witho.patch
patches.arch/ppc64le-ile-0004-powerpc-Don-t-return-to-BE-mode-when-we-are-already-.patch
patches.fixes/ptrace-getsiginfo
patches.arch/ppc-ipic-suspend-without-83xx-fix
########################################################
# PS3
########################################################
########################################################
# ARM
########################################################
patches.arch/cubox-configuration.patch
patches.arch/arm-OMAP-Fix-missing-cm3xxx.h-include.patch
patches.arch/arm-OMAP-Fix-missing-usb.h-include.patch
# Compile fix for Xen on ARM with our Xen patches applied
patches.arch/arm-xen-fixup.patch
patches.arch/arm-refresh-mach-types.diff
patches.arch/arm-arndale-usb.patch
patches.arch/arm-arndale-dma.patch
patches.arch/arm-arndale-usb-phy.patch
patches.arch/arm-exynos-dwmmc-modalias.patch
########################################################
# S/390
########################################################
patches.arch/s390-add-FREE_PTE_NR
patches.suse/s390-System.map.diff
patches.arch/s390-message-catalog.diff
patches.arch/s390-message-catalog-fix.diff
patches.arch/kmsg-fix-parameter-limitations
patches.suse/s390-Kerntypes.diff
########################################################
# VM/FS patches
########################################################
patches.suse/unmap_vmas-lat
patches.fixes/oom-warning
patches.suse/shmall-bigger
patches.fixes/grab-swap-token-oops
+needs_update-32 patches.suse/osync-error
patches.fixes/remount-no-shrink-dcache
patches.suse/reiser4-set_page_dirty_notag
patches.suse/file-capabilities-disable-by-default.diff
+npiggin patches.suse/files-slab-rcu.patch
patches.suse/mm-tune-dirty-limits.patch
patches.suse/mm-devzero-optimisation.patch
+36 patches.fixes/aggressive-zone-reclaim.patch
patches.suse/readahead-request-tunables.patch
patches.fixes/mm-Fix-assertion-mapping-nrpages-0-in-end_writeback.patch
########################################################
# IPC patches
@ -183,6 +229,8 @@
########################################################
# nfsacl protocol (agruen)
########################################################
+agruen patches.suse/nfsacl-client-cache-CHECK.diff
+agruen patches.fixes/nfs-acl-caching.diff
########################################################
# misc small fixes
@ -195,27 +243,64 @@
# ACPI patches
#
########################################################
# Check resource conflicts between hwmon and ACPI OpRegs
patches.arch/acpi_thinkpad_introduce_acpi_root_table_boot_param.patch
patches.arch/acpi_thermal_passive_blacklist.patch
+trenn patches.suse/acpi-dsdt-initrd-v0.9a-2.6.25.patch
+jeffm patches.suse/add-initramfs-file_read_write
+jeffm patches.suse/init-move-populate_rootfs-back-to-start_kernel
+jeffm patches.suse/acpi-generic-initramfs-table-override-support
+jeffm patches.suse/acpi-don-t-preempt-until-the-system-is-up
patches.arch/acpi_thermal_passive_blacklist.patch
patches.arch/acpi-export-hotplug_execute
patches.arch/acpi_fix_fadt_32_bit_zero_length.patch
+needs_update-32 patches.arch/acpi_ec_provide_non_interrupt_mode_boot_param.patch
# Adjust this patch for every new product (at least Enterprise
# level) to provide OEMs a safety break so that they can add
# for example SLE11 specific BIOS updates (if there is no other
# way to safely solve an ACPI issue).
+trenn patches.suse/acpi_osi_sle11_ident.patch
patches.arch/acpi_srat-pxm-rev-store.patch
patches.arch/acpi_srat-pxm-rev-ia64.patch
patches.arch/acpi_srat-pxm-rev-x86-64.patch
# Queued for 2.6.36 -> just revert after some time
patches.fixes/acpi_ec_sys_access_user_space_with_get_user.patch
patches.arch/acpi_ec_delay_param.patch
########################################################
# CPUFREQ
########################################################
+trenn patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch
## cpuidle feature patch set still not consistent.
# patches.suse/cpuidle-cleanup
# patches.suse/cpuidle-implement-list
# patches.suse/cpuidle-cleanup-x86
# patches.suse/cpuidle-enable-pseries
# patches.suse/cpuidle-cleanup-pseries
# patches.suse/cpuidle-add-default-idle-ppc
# patches.suse/cpuidle-pseries-proc-idle
# patches.suse/cpuidle-eliminate-ppcmdpowersave1
# patches.suse/cpuidle-documentation
patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch
## cpuidle perf events cleanups and related
patches.arch/perf_timechart_fix_zero_timestamps.patch
########################################################
# AGP, graphics related stuff
########################################################
patches.arch/x86_agpgart-g33-stoeln-fix-2.patch
########################################################
# Suse specific stuff
########################################################
patches.suse/suse-hv-guest-os-id.patch
# TIOCGDEV - suse special
patches.fixes/tiocgdev
+still_needed? patches.suse/mm-increase-dirty-limits.patch
+needs_to_die-33 patches.suse/panic-on-io-nmi-SLE11-user-space-api.patch
########################################################
# Networking, IPv6
@ -225,8 +310,12 @@
########################################################
# NFS
########################################################
patches.fixes/nfs-nfs3_list_one_acl-check-get_acl-result-with-is_err_or_null
patches.fixes/nfs-slot-table-alloc
patches.fixes/nfsd-05-sunrpc-cache-allow-thread-to-block-while-waiting-for.patch
patches.fixes/nfsd-06-sunrpc-cache-retry-cache-lookups-that-return-ETIMEDO.patch
patches.fixes/nfsd-07-nfsd-idmap-drop-special-request-deferal-in-favour-of.patch
patches.fixes/sunrpc-monotonic-expiry
########################################################
# lockd + statd
@ -239,7 +328,9 @@
########################################################
# ext2/ext3
########################################################
patches.suse/ext3-barrier-default
# patches.suse/ext2-fsync-err
patches.fixes/ext3-mark-super-uptodate
########################################################
# ext4
@ -248,13 +339,12 @@
########################################################
# btrfs
########################################################
patches.suse/btrfs-use-correct-device-for-maps.patch
patches.suse/btrfs-check-index-in-extent_buffer_page
########################################################
# Reiserfs Patches
########################################################
patches.fixes/reiserfs-fix-corruption-introduced-by-balance_leaf-refactor
patches.suse/reiserfs-barrier-default
patches.fixes/reiserfs-remove-2-tb-file-size-limit
########################################################
# dlm
@ -272,6 +362,30 @@
# xfs
########################################################
########################################################
# novfs
########################################################
patches.suse/novfs-client-module
patches.suse/novfs-fix-debug-message.patch
patches.suse/novfs-2.6.35-api-changes
patches.fixes/novfs-err_ptr-fix.diff
patches.fixes/novfs-fix-inode-uid
patches.fixes/novfs-incorrect-filesize-fix
patches.fixes/novfs-truncate-fix
patches.fixes/novfs-fix-oops-in-scope-finding
patches.fixes/novfs-dentry-cache-limit.patch
patches.fixes/novfs-return-ENOTEMPTY-when-deleting-nonempty-dir
patches.fixes/novfs-LFS-initialization
patches.fixes/novfs-overflow-fixes
patches.fixes/novfs-bdi-init.diff
patches.fixes/novfs-xattr-memleak
patches.fixes/novfs-xattr-errcode-cleanup
patches.fixes/novfs-xattr-errcode-cleanup2
patches.fixes/novfs-lindent
patches.suse/novfs-fix-ioctl-usage
patches.suse/novfs-use-evict_inode
patches.fixes/novfs-unlink-oops
########################################################
# other filesystem stuff: richacls
########################################################
@ -289,41 +403,54 @@
patches.suse/0012-richacl-Automatic-Inheritance.patch
patches.suse/0013-richacl-Restrict-access-check-algorithm.patch
patches.suse/0014-richacl-xattr-mapping-functions.patch
# The RICHACL name index was used for system xattrs. This needs
# to be sorted out upstream.
patches.suse/0015-ext4-Use-IS_POSIXACL-to-check-for-POSIX-ACL-support.patch
patches.suse/0016-ext4-Implement-richacl-support-in-ext4.patch
########################################################
# other filesystem stuff
########################################################
patches.drivers/pstore_disable_efi_backend_by_default.patch
patches.suse/pstore-backend-autoaction
########################################################
# Overlayfs
########################################################
patches.suse/ovl01-vfs-add-i_op-dentry_open.patch
patches.suse/ovl02-vfs-export-do_splice_direct-to-modules.patch
patches.suse/ovl03-vfs-export-inode_permission-to-modules.patch
patches.suse/ovl04-vfs-introduce-clone_private_mount.patch
patches.suse/ovl05-overlay-filesystem.patch
patches.suse/ovl06-overlayfs-add-statfs-support.patch
patches.suse/ovl07-overlayfs-implement-show_options.patch
patches.suse/ovl08-overlay-overlay-filesystem-documentation.patch
patches.suse/ovl09-fs-limit-filesystem-stacking-depth.patch
########################################################
# Swap-over-NFS
########################################################
patches.suse/SoN-01-mm-setup_per_zone_wmarks.patch
patches.suse/SoN-02-doc.patch
patches.suse/SoN-03-mm-gfp-to-alloc_flags-expose.patch
patches.suse/SoN-04-page_alloc-reserve.patch
patches.suse/SoN-05-reserve-slub.patch
patches.suse/SoN-06-mm-kmem_estimate_pages.patch
patches.suse/SoN-07-mm-PF_MEMALLOC-softirq.patch
patches.suse/SoN-08-mm-page_alloc-emerg.patch
patches.suse/SoN-09-global-ALLOC_NO_WATERMARKS.patch
patches.suse/SoN-10-mm-page_alloc-GFP_EMERGENCY.patch
patches.suse/SoN-11-mm-reserve.patch
patches.suse/SoN-12-mm-selinux-emergency.patch
patches.suse/SoN-13-net-ps_rx.patch
patches.suse/SoN-14-net-sk_allocation.patch
patches.suse/SoN-15-netvm-reserve.patch
patches.suse/SoN-16-netvm-reserve-inet.patch
patches.suse/SoN-17-netvm-reserve-inet.patch-fix
patches.suse/SoN-18-netvm-skbuff-reserve.patch
patches.suse/SoN-19-netvm-sk_filter.patch
patches.suse/SoN-20-netvm-tcp-deadlock.patch
patches.suse/SoN-21-emergency-nf_queue.patch
patches.suse/SoN-22-netvm.patch
patches.suse/SoN-23-mm-swapfile.patch
patches.suse/SoN-24-mm-page_file_methods.patch
patches.suse/SoN-25-nfs-swapcache.patch
patches.suse/SoN-26-nfs-swapper.patch
patches.suse/SoN-27-nfs-swap_ops.patch
patches.suse/SoN-28-nfs-alloc-recursions.patch
patches.suse/SoN-29-fix-swap_sync_page-race
patches.suse/SoN-30-fix-uninitialized-var.patch
patches.suse/SoN-31-fix-null-pointer-dereference
patches.suse/SoN-32-fix-kernel-bug-with-multiple-swapfiles
# don't want to rediff SoN until this gets more testing
patches.suse/slab-handle-memoryless-nodes-v2a.patch
########################################################
# Netfilter
########################################################
patches.suse/netfilter-ip_conntrack_slp.patch
patches.fixes/fix-nf_conntrack_slp
########################################################
#
@ -331,54 +458,87 @@
#
########################################################
patches.drivers/disable-catas_reset-by-default-to-avoid-problems-with-eeh.patch
# Queued for 2.6.37 -> just revert after some time
patches.drivers/dynamic_debug_1.patch
patches.drivers/dynamic_debug_2.patch
patches.drivers/dynamic_debug_3.patch
patches.drivers/dynamic_debug_4.patch
patches.drivers/dynamic_debug_5.patch
patches.drivers/dynamic_debug_6.patch
patches.drivers/dynamic_debug_7.patch
patches.fixes/tty-restore-tty_ldisc_wait_idle.patch
########################################################
# Storage
########################################################
# libata
patches.drivers/libata-unlock-hpa-by-default
# Block layer fixes
patches.fixes/scsi-inquiry-too-short-ratelimit
patches.suse/scsi-netlink-ml
+needs_update patches.drivers/mpt-fusion-4.22.00.00-update
patches.fixes/scsi-dh-queuedata-accessors
patches.fixes/scsi-dh-alua-retry-UA
patches.fixes/scsi-add-tgps-setting
patches.fixes/scsi-dh-alua-send-stpg
patches.fixes/scsi-dh-rdac-add-stk
patches.fixes/scsi-retry-alua-transition-in-progress
patches.fixes/scsi-dh-queuedata-accessors
patches.fixes/scsi-check-host-lookup-failure
patches.drivers/megaraid-mbox-fix-SG_IO
+needs_update-35 patches.drivers/qla4xxx-5.01.00-k9-5.01.00.00.11.01-k10.patch
# Remaining SCSI patches (garloff)
patches.suse/scsi-error-test-unit-ready-timeout
patches.fixes/scsi-scan-blist-update
patches.fixes/proc-scsi-scsi-fix.diff
patches.fixes/scsi-ibmvscsi-show-config.patch
# bnc#362850
patches.fixes/sd_liberal_28_sense_invalid.diff
patches.fixes/scsi-ibmvscsi-module_alias.patch
patches.suse/sd_init.mark_majors_busy.patch
patches.drivers/SCSI-aha152x-enable-PCMCIA-on-64bit.patch
########################################################
# DRM/Video
########################################################
patches.drivers/drm-cirrus-Use-16bpp-as-default
patches.fixes/nouveau-fix-race-with-fence-signaling
########################################################
# video4linux
########################################################
########################################################
# Network
########################################################
patches.fixes/tulip-quad-NIC-ifdown
patches.suse/nameif-track-rename.patch
patches.fixes/tg3-fix-default-wol.patch
patches.drivers/ehea-modinfo.patch
patches.fixes/tehuti-firmware-name
# entropy FATE##307517
patches.drivers/bnx2-entropy-source.patch
patches.drivers/e1000-entropy-source.patch
patches.drivers/e1000e-entropy-source.patch
patches.drivers/igb-entropy-source.patch
patches.drivers/ixgbe-entropy-source.patch
patches.drivers/tg3-entropy-source.patch
patches.drivers/tg3-5785-and-57780-asic-revs-not-working.patch
patches.fixes/net-Limit-socket-I-O-iovec-total-length.patch
########################################################
# Wireless Networking
########################################################
patches.suse/wireless-no-aes-select
patches.suse/b43-missing-firmware-info.patch
########################################################
# ISDN
########################################################
patches.fixes/misdn-add-support-for-group-membership-check
patches.fixes/iwlwifi-fix-tx-power-configuration-on-3945-and-4965-devices
patches.fixes/rt2x00-Fix-channel-configuration-for-RF3052.patch
patches.fixes/rt2x00-Fix-max-TX-power-settings.patch
########################################################
# iSCSI
@ -403,24 +563,35 @@
########################################################
# Input & Console
########################################################
# patches.suse/SUSE-bootsplash
# patches.suse/SUSE-bootsplash-mgadrmfb-workaround
patches.suse/bootsplash
patches.suse/Cleanup-and-make-boot-splash-work-with-KMS.patch
patches.suse/bootsplash-keep-multiple-data
patches.suse/bootsplash-scaler
patches.suse/bootsplash-console-fix
patches.drivers/elousb.patch
patches.suse/elousb-2.6.35-api-changes
patches.fixes/input-add-acer-aspire-5710-to-nomux.patch
patches.drivers/input-Add-LED-support-to-Synaptics-device
##########################################################
# Sound
##########################################################
########################################################
# Char / serial
########################################################
patches.drivers/alsa-hda-01-Fix-wrong-SPDIF-NID-assignment-for-CA0110
patches.drivers/alsa-hda-02-Add-some-workarounds-for-Creative-IBG
patches.drivers/alsa-hda-03-Add-workarounds-for-CT-IBG-controllers
########################################################
# Other driver fixes
########################################################
patches.fixes/ieee1394-sbp2_long_sysfs_ieee1394_id.patch
patches.fixes/parport-mutex
# Needs updating WRT d27769ec (block: add GENHD_FL_NO_PART_SCAN)
+hare patches.suse/no-partition-scan
# suse-2.4 compatible crypto loop driver
patches.suse/twofish-2.6
# Allow setting maximum number of raw devices
patches.suse/raw_device_max_minors_param.diff
patches.suse/no-partition-scan
patches.fixes/hpet-unmap-unused-I-O-space.patch
########################################################
# Other drivers we have added to the tree
@ -434,15 +605,20 @@
# device-mapper
########################################################
patches.suse/dm-emulate-blkrrpart-ioctl
patches.suse/dm-raid45-26-Nov-2009.patch
patches.suse/dmraid45-dm_dirty_log_create-api-fix
patches.suse/dmraid45-dm_get_device-takes-fewer-arguments
patches.suse/dm-raid45-api-update-remove-dm_put-after-dm_table_get_md
patches.fixes/dm-mpath-reattach-dh
patches.suse/dm-mpath-leastpending-path-update
+needs_update patches.suse/dm-mpath-accept-failed-paths
+needs_update patches.suse/dm-mpath-detach-existing-hardware-handler
patches.suse/dm-mpath-accept-failed-paths
patches.suse/dm-mpath-detach-existing-hardware-handler
patches.suse/dm-mpath-null-pgs
patches.fixes/dm-table-switch-to-readonly
+needs_update patches.fixes/dm-release-map_lock-before-set_disk_ro
patches.suse/dm-mpath-evaluate-request-result-and-sense
patches.fixes/dm-release-map_lock-before-set_disk_ro
patches.suse/dm-mpath-no-activate-for-offlined-paths
patches.suse/dm-mpath-no-partitions-feature
patches.suse/mpath-fix
########################################################
# md
@ -462,7 +638,9 @@
# AppArmor
##########################################################
patches.apparmor/apparmor-compatibility-patch-for-v5-network-control
# patches.apparmor/apparmor-profiles-seq_file
patches.apparmor/apparmor-compatibility-patch-for-v5-interface
patches.apparmor/apparmor-allow-dfa-backward-compatibility-with-broken-userspace
########################################################
# Address space layout randomization
@ -472,20 +650,32 @@
# KDB v4.4
########################################################
# patches.suse/kdb-common
# patches.suse/kdb-x86
# patches.suse/kdb-ia64
# patches.suse/kdb-build-fixes
# patches.suse/kdb-x86-build-fixes
# patches.suse/kdb-usb-rework
# patches.suse/kdb_fix_ia64_build.patch
# patches.suse/kdb_dont_touch_i8042_early.patch
# patches.suse/kdb-fix-assignment-from-incompatible-pointer-warnings
# patches.suse/kdb-handle-nonexistance-keyboard-controller
# patches.suse/kdb-fix-kdb_cmds-to-include-the-arch-common-macro
# patches.suse/kdb-vm-api-changes-for-2-6-34
########################################################
# Other patches for debugging
########################################################
patches.suse/crasher-26.diff
patches.suse/stack-unwind
patches.suse/revert-x86-remove-warning-and-warning_symbol-from-struct-stacktrace_ops
patches.suse/unwind-remove-check-for-vdso32-compat-range
patches.suse/no-frame-pointer-select
patches.arch/i386-unwind-annotations
patches.arch/x86_64-unwind-annotations
patches.arch/stack-unwind-cfi_ignore-takes-more-arguments
########################################################
# Kdump
########################################################
+needs_update-33 patches.suse/kdump-dump_after_notifier.patch
########################################################
# cgroups
@ -494,20 +684,45 @@
########################################################
# audit subsystem
########################################################
patches.suse/audit-export-logging.patch
########################################################
# Performance Monitoring, Tracing etc
########################################################
patches.fixes/oprofile_bios_ctr.patch
patches.trace/utrace-core
patches.fixes/ia64-configure-HAVE_UNSTABLE_SCHED_CLOCK-for-SGI_SN.patch
########################################################
# KVM patches
########################################################
patches.fixes/kvm-ioapic.patch
patches.fixes/kvm-macos.patch
########################################################
# Staging tree patches
# new drivers that are going upstream
########################################################
########################################################
# "fastboot" patches
# These should all be upstream, we took them from
# moblin to try to speed up the boot process
########################################################
patches.suse/linux-2.6.29-dont-wait-for-mouse.patch
- patches.suse/linux-2.6.29-even-faster-kms.patch
patches.suse/linux-2.6.29-silence-acer-message.patch
patches.suse/linux-2.6.29-kms-after-sata.patch
patches.suse/linux-2.6.29-jbd-longer-commit-interval.patch
# some driver patches, should move up in the series...
patches.suse/linux-2.6.29-touchkit.patch
patches.suse/uvcvideo-ignore-hue-control-for-5986-0241.patch
########################################################
# You'd better have a good reason for adding a patch
# below here.
@ -525,18 +740,25 @@
# on top of them instead. This reduces workload when
# re-basing to a newer xen tree.
#
### both uml framebuffer and xen need this one.
patches.xen/add-console-use-vt
# split out patches
patches.xen/kexec-move-segment-code-i386.patch
patches.xen/kexec-move-segment-code-x86_64.patch
patches.xen/linux-2.6.19-rc1-kexec-move_segment_code-i386.patch
patches.xen/linux-2.6.19-rc1-kexec-move_segment_code-x86_64.patch
patches.xen/ipv6-no-autoconf
patches.xen/pci-guestdev
patches.xen/pci-reserve
+needs_update-33 patches.xen/sfc-driverlink
+needs_update-33 patches.xen/sfc-resource-driver
+needs_update-33 patches.xen/sfc-driverlink-conditional
+needs_update-33 patches.xen/sfc-external-sram
patches.xen/tmem
# bulk stuff, new files for xen
patches.xen/xen3-auto-xen-arch.diff
patches.xen/xen3-auto-xen-drivers.diff
patches.xen/xen3-auto-include-xen-interface.diff
patches.xen/xen3-auto-blktap2-pvops.diff
# kconfig bits for xen
patches.xen/xen3-auto-xen-kconfig.diff
@ -550,15 +772,17 @@
# fixups due to upstream Xen parts
patches.xen/xen3-fixup-xen
+needs_update-33 patches.xen/sfc-set-arch
+needs_update-33 patches.xen/sfc-endianness
# newer changeset backports
# changes outside arch/{i386,x86_64}/xen
patches.xen/xen3-fixup-kconfig
patches.xen/xen3-fixup-common
patches.xen/xen3-fixup-arch-x86
patches.xen/xen3-fixup-blktap2-pvops
# ports of upstream patches
# ports of other patches
patches.xen/xen3-patch-2.6.18
patches.xen/xen3-patch-2.6.19
patches.xen/xen3-patch-2.6.20
@ -578,84 +802,59 @@
patches.xen/xen3-patch-2.6.34
patches.xen/xen3-patch-2.6.35
patches.xen/xen3-patch-2.6.36
patches.xen/xen3-patch-2.6.37
patches.xen/xen3-patch-2.6.38
patches.xen/xen3-patch-2.6.39
patches.xen/xen3-patch-3.0
patches.xen/xen3-patch-3.1
patches.xen/xen3-patch-3.2
patches.xen/xen3-patch-3.3
patches.xen/xen3-patch-3.4
patches.xen/xen3-patch-3.5
patches.xen/xen3-patch-3.6
patches.xen/xen3-patch-3.7
patches.xen/xen3-patch-3.8
patches.xen/xen3-patch-3.9
patches.xen/xen3-patch-3.10
patches.xen/xen3-patch-3.11
patches.xen/xen3-patch-3.12
patches.xen/xen3-patch-3.13
patches.xen/xen3-patch-3.14
patches.xen/xen3-patch-3.15
patches.xen/xen3-patch-3.16
# ports of other patches
patches.xen/xen3-seccomp-disable-tsc-option
patches.xen/xen3-x86-mcp51-no-dac
patches.xen/xen3-x86-mark_rodata_rw.patch
patches.xen/xen3-acpi_processor_check_maxcpus.patch
# patches.xen/xen3-kdb-x86
patches.xen/xen3-stack-unwind
patches.xen/xen3-i386-unwind-annotations
patches.xen/xen3-x86_64-unwind-annotations
# bugfixes and enhancements
patches.xen/xen-hypercall-symbols
patches.xen/xen-sys-suspend
patches.xen/xen-balloon-max-target
patches.xen/xen-modular-blktap
patches.xen/xen-blkback-bimodal-suse
patches.xen/xen-blkif-protocol-fallback-hack
patches.xen/xen-blkback-cdrom
patches.xen/xen-blktap-write-barriers
patches.xen/xen-op-packet
patches.xen/xen-blkfront-cdrom
patches.xen/xen-sections
patches.xen/xen-swiotlb-heuristics
patches.xen/xen-kconfig-compat
patches.xen/xen-cpufreq-report
patches.xen/xen-staging-build
patches.xen/xen-sysdev-suspend
patches.xen/xen-ipi-per-cpu-irq
patches.xen/xen-virq-per-cpu-irq
patches.xen/xen-clockevents
patches.xen/xen-spinlock-poll-early
patches.xen/xen-pcpu
patches.xen/xen-pcpu-hotplug-kexec
patches.xen/xen-mem-hotplug
patches.xen/xen-configurable-guest-devices
patches.xen/xen-setup-gsi
patches.xen/xen-privcmd-hcall-preemption
patches.xen/xen-privcmd-truly-batch
patches.xen/xen-unpriv-build
patches.xen/xen-cpufreq-report
patches.xen/xen-multi-page-ring
patches.xen/xen-balloon-max-target
patches.xen/xen-blkback-multi-page-ring
patches.xen/xen-blkback-indirect
patches.xen/xen-blkback-cdrom
patches.xen/xen-blkif-protocol-fallback-hack
patches.xen/xen-blkfront-multi-page-ring
patches.xen/xen-blkfront-indirect
patches.xen/xen-blkif-op-packet
patches.xen/xen-blkfront-cdrom
patches.xen/xen-blkfront-hvm-no-cdrom
patches.xen/xen-blktap-modular
patches.xen/xen-blktap-write-barriers
patches.xen/xen-blktap2-configurable-nr-devs
patches.xen/xen-netback-defer-netdev-destruction
patches.xen/xen-netback-nr-irqs
patches.xen/xen-netback-notify-multi
patches.xen/xen-netback-sched-list-remove
patches.xen/xen-netback-generalize
patches.xen/xen-netback-multiple-tasklets
patches.xen/xen-netback-kernel-threads
patches.xen/xen-netback-tx-queue-len
patches.xen/xen-vscsi-large-requests
patches.xen/xen-cxgb3
patches.xen/xen-netback-extend-pull
patches.xen/xen-netback-allow-large-mtu
patches.xen/xen-tmem-v1
patches.xen/xen-dcdbas
patches.xen/xen-pv-on-hvm-skip-initialization-of-emulated-devices
patches.xen/xen-floppy
patches.xen/xen-kzalloc
patches.xen/xen-unpriv-build
patches.xen/xen-setup-gsi
patches.xen/xen-x86-panic-no-reboot
patches.xen/xen-x86-dcr-fallback
patches.xen/xen-x86-consistent-nmi
patches.xen/xen-x86-no-lapic
patches.xen/xen-x86-pmd-handling
patches.xen/xen-x86-bigmem
patches.xen/xen-x86-machphys-prediction
patches.xen/xen-x86-exit-mmap
patches.xen/xen-x86-per-cpu-vcpu-info
patches.xen/xen-x86-pcpu
patches.xen/xen-x86-EFI
patches.xen/xen-x86-bzImage
patches.xen/xen-x86_64-pgd-pin
patches.xen/xen-x86_64-pgd-alloc-order
patches.xen/xen-x86_64-dump-user-pgt
patches.xen/xen-x86_64-note-init-p2m
patches.xen/xen-x86_64-unmapped-initrd
patches.xen/xen-x86_64-vread-pvclock

View File

@ -1,3 +1,3 @@
2014-08-06 15:37:49 +0200
GIT Revision: 0e31675b91f2087bc1b543ca380779d32dc821ed
GIT Branch: master
2010-11-29 14:22:02 +0100
GIT Revision: 11bcaf3e5860559f093fcb554f756ef1ff77e26d
GIT Branch: stable

View File

@ -1,6 +1,6 @@
#!/bin/bash
#
# given a Module.base and modules.dep, generate list
# given a Module.supported, Module.base and modules.dep, generate list
# of base / supported / unsupported modules
set -e
@ -8,41 +8,39 @@ export LC_COLLATE=C
usage()
{
echo "Usage: ${0##*/} -b Module.base [-d dir] [-i] [-e] [-o outdir]"
echo " -i Ignore supported.conf errors"
echo " -e Create the -extra filelist (otherwise, treat all modules as supported)"
echo "Usage: ${0##*/} -b Module.base -s Module.supported [-d dir] [-i] [-o outdir]"
}
options=$(getopt -o b:d:o:ie -- "$@")
options=$(getopt -o b:s:d:o:i -- "$@")
if test $? -ne 0; then
usage >&2
exit 1
fi
eval set -- "$options"
opt_base=
opt_supp=
opt_out=.
opt_dir=.
opt_ignore_errors=false
opt_extra=false
while test $# -gt 0; do
opt=$1
shift
case "$opt" in
-b | -d | -o)
-b | -s | -d | -o | -D)
arg=$1
shift
esac
case "$opt" in
-b)
opt_base=$arg ;;
-s)
opt_supp=$arg ;;
-d)
opt_dir=$arg ;;
-o)
opt_out=$arg ;;
-i)
opt_ignore_errors=true ;;
-e)
opt_extra=true ;;
--)
break ;;
*)
@ -50,7 +48,7 @@ while test $# -gt 0; do
exit 1
esac
done
if test -z "$opt_base"; then
if test -z "$opt_base" -o -z "$opt_supp"; then
usage >&2
exit 1
fi
@ -63,32 +61,6 @@ find "$opt_dir" -type f -name '*.ko' -printf '/%P\n' | \
awk -F/ '{ n=$NF; gsub(/-/, "_", n); sub(/\.ko$/, "", n); print n " " $0; }' | \
sort >"$tmp/all"
err=false
while read mod path; do
if $opt_extra; then
support=$(/sbin/modinfo -F supported "$opt_dir/$path")
else
support=yes
fi
case "$support" in
yes | external)
echo "$mod"
;;
no)
;;
"")
echo "warning: ${path#/lib/modules/*/kernel/} not listed in supported.conf" >&2
;;
*)
echo "error: invalid support flag for $mod: $support" >&2
err=true
;;
esac
done <"$tmp/all" | sort -u >"$tmp/supp"
if $err; then
exit 1
fi
modules_dep=$(find "$opt_dir" -type f -name modules.dep)
if test -z "$modules_dep"; then
echo "Cannot find modules.dep in $opt_dir" >&2
@ -114,6 +86,7 @@ sed 'y/-/_/' <"$opt_base" | add_dependent_modules >"$tmp/base"
join -j 1 -o 2.2 "$tmp/base" "$tmp/all" >"$opt_out/base-modules"
# main
sed 's/ .*//; y/-/_/' "$opt_supp" | sort -u >"$tmp/supp"
add_dependent_modules "$tmp/supp-explain" <"$tmp/supp" >"$tmp/supp-all"
if ! cmp -s "$tmp/supp" "$tmp/supp-all"; then
echo "The following unsupported modules are used by supported modules:" >&2

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4f52f53a399072b4b65065e3e6a7d8644e7b6d7cec0d95ce99c25498d5211210
size 870

View File

@ -1,79 +0,0 @@
#!/bin/bash
#############################################################################
# Copyright (c) 2011 Novell, Inc.
# All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, contact Novell, Inc.
#
# To contact Novell about this file by physical or electronic mail,
# you may find current contact information at www.novell.com
#############################################################################
# If make fails, check if it happened due to a staging driver and disable it.
# That way, staging does not spoil automatic package building and we also
# do not need to worry about forgetting to reenable manually disabled drivers.
if test -L source; then
source="source"
else
source="."
fi
makefile="$source/drivers/staging/Makefile"
skipped_options=staging-skipped-options
logfile=$1
if test -z "$logfile"; then
echo "Usage: $0 logfile" >&2
exit 1
fi
if ! test -f "$logfile"; then
echo "$logfile not found" >&2
exit 1
fi
# safety precaution
if test "0$(wc -l "$skipped_options" 2>/dev/null)" -gt 20; then
echo "Possible loop detected in $0, exiting after 20 attempts" >&2
exit 1
fi
# find out if the error happened in drivers/staging
dir=$(sed -rn 's@.*/drivers/staging/([^/]*)/.*: error: .*@\1@p; T; q' "$logfile")
if test -z "$dir"; then
exit 1
else
echo "Build failed due to drivers/staging/$dir"
fi
option=$(sed -n 's/obj-\$(\(.*\))[[:space:]]*+=[[:space:]]*'"$dir"'\//\1/p' "$makefile")
if test -z "$option"; then
echo "Cannot determine config option to skip drivers/staging/$dir" >&2
exit 1
fi
# we need to be carefull not to loop endlessly
if grep -qsFx "$option" "$skipped_options"; then
echo "$option has already been disabled, but drivers/staging/$dir is still failing" >&2
exit 1
fi
echo "Trying to disable $option"
"$source/scripts/config" --disable "$option"
if ! make silentoldconfig $MAKE_ARGS || grep "^$option" .config; then
echo "Could not disable $option" >&2
exit 1
fi
echo "$option" >>"$skipped_options"
exit 0