%{?debug:%define with_verbose 1}
%define _basever 3.2
-%define _postver .4
-%define _rel 0.1
+%define _postver .58
+%define _rel 1
%define _enable_debug_packages 0
-%define alt_kernel vanilla
+%define alt_kernel 3.2-vanilla
# kernel release (used in filesystem and eventually in uname -r)
# modules will be looked from /lib/modules/%{kernel_release}
Epoch: 3
License: GPL v2
Group: Base/Kernel
-Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{_basever}.tar.bz2
-# Source0-md5: 7ceb61f87c097fc17509844b71268935
+Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{_basever}.tar.xz
+# Source0-md5: 364066fa18767ec0ae5f4e4abcf9dc51
%if "%{_postver}" != "%{nil}"
-Source1: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
-# Source1-md5: 02adf3e0450969dec6219ca52ff2a68a
+Source1: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz
+# Source1-md5: 9e12ea40dbb74dc35bdd7b6b62ab3c85
%endif
Source2: kernel-vanilla-autoconf.h
Source3: kernel-vanilla-config.h
Source4: kernel-vanilla-module-build.pl
+Source5: kernel.sysconfig
Source10: kernel-vanilla-x86.config
Source11: kernel-vanilla-x86_64.config
# for hostname command
BuildRequires: net-tools
BuildRequires: perl-base
-BuildRequires: rpm-build >= 4.4.9-56
-BuildRequires: rpmbuild(macros) >= 1.217
+BuildRequires: rpm >= 4.5-74
+BuildRequires: rpmbuild(macros) >= 1.652
+BuildRequires: xz >= 1:4.999.7
Autoreqprov: no
Requires(post): coreutils
-Requires(post): geninitrd >= 2.57
-Requires(post): module-init-tools >= 0.9.9
+Requires(post): geninitrd >= 12639-1
+Requires(post): virtual(module-tools)
Requires: /sbin/depmod
Requires: coreutils
-Requires: geninitrd >= 2.57
-Requires: module-init-tools >= 0.9.9
+Requires: geninitrd >= 12639-1
+Requires: virtual(module-tools)
Obsoletes: kernel%{_alt_kernel}-firmware
Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
Obsoletes: kernel-misc-acer_acpi
Conflicts: e2fsprogs < 1.29
Conflicts: isdn4k-utils < 3.1pre1
Conflicts: jfsutils < 1.1.3
-Conflicts: module-init-tools < 0.9.10
+Conflicts: module-init-tools < 3.16
Conflicts: nfs-utils < 1.0.5
Conflicts: oprofile < 0.9
Conflicts: ppp < 1:2.4.0
Conflicts: udev < 1:071
Conflicts: util-linux < 2.10o
Conflicts: xfsprogs < 2.6.0
-ExclusiveArch: i586 i686 x86_64
+ExclusiveArch: i686 x86_64
ExclusiveOS: Linux
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%ifarch i586 i686 x86_64
+%ifarch i686 x86_64
%define target_arch_dir x86
%else
%define target_arch_dir %{_target_base_arch}
%endif
-%ifarch i586 i686
+%ifarch i686
%define kernel_config x86
%else
%define kernel_config %{_target_base_arch}
%define _kernelsrcdir /usr/src/linux-%{version}-%{alt_kernel}
%if "%{_target_base_arch}" != "%{_arch}"
- %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
+ %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
%define DepMod /bin/true
%if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
%define DepMod /sbin/depmod
%endif
-%define Features %(echo "%{__features}" | sed '/^$/d')
-
%description
This package contains the Linux kernel that is used to boot and run
your system. It contains few device drivers for specific hardware.
Most hardware is instead supported by modules loaded after booting.
-%{Features}
-
%description -l de.UTF-8
Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
Linux-Betriebssystems. Der Kernel ist für grundliegende
Systemfunktionen verantwortlich: Speicherreservierung,
Prozeß-Management, Geräte Ein- und Ausgaben, usw.
-%{Features}
-
%description -l fr.UTF-8
Le package kernel contient le kernel linux (vmlinuz), la partie
centrale d'un système d'exploitation Linux. Le noyau traite les
fonctions basiques d'un système d'exploitation: allocation mémoire,
allocation de process, entrée/sortie de peripheriques, etc.
-%{Features}
-
%description -l pl.UTF-8
Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
się w komputerze, takiego jak sterowniki dysków itp.
-%{Features}
-
%package vmlinux
Summary: vmlinux - uncompressed kernel image
Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
%setup -q -n linux-%{_basever}
%if "%{_postver}" != "%{nil}"
-%{__bzip2} -dc %{SOURCE1} | patch -p1 -s
+%{__xz} -dc %{SOURCE1} | patch -p1 -s
%endif
%patch0 -p1
# Fix EXTRAVERSION in main Makefile
-sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{_postver}-%{alt_kernel}#g' Makefile
+sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = -%{alt_kernel}#g' Makefile
# cleanup backups after patching
find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
%build
-TuneUpConfigForIX86 () {
- set -x
-%ifarch i586 i686
- %ifarch i586
- sed -i "s:# CONFIG_HIGHMEM4G is not set:CONFIG_HIGHMEM4G=y:" $1
- sed -i "s:CONFIG_HIGHMEM64G=y:# CONFIG_HIGHMEM64G is not set:" $1
- sed -i ":CONFIG_X86_PAE=y:d" $1
- %else
- sed -i 's:CONFIG_M586=y# CONFIG_M586 is not set::' $1
- sed -i 's:# CONFIG_M686 is not set:CONFIG_M686=y:' $1
- %endif
- return 0
-%endif
-}
-
BuildConfig() {
%{?debug:set -x}
# is this a special kernel we want to build?
KernelVer=%{kernel_release}
echo "Building config file using $Config.conf..."
cat $RPM_SOURCE_DIR/kernel-vanilla-$Config.config > %{defconfig}
- TuneUpConfigForIX86 %{defconfig}
%{?debug:sed -i "s:# CONFIG_DEBUG_SLAB is not set:CONFIG_DEBUG_SLAB=y:" %{defconfig}}
%{?debug:sed -i "s:# CONFIG_DEBUG_PREEMPT is not set:CONFIG_DEBUG_PREEMPT=y:" %{defconfig}}
perl %{SOURCE4} %{_kernelsrcdir} $KERNEL_BUILD_DIR
# ghosted initrd
-touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
+touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.img
+touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
# rpm obeys filelinkto checks for ghosted symlinks, convert to files
rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
# remove unnecessary dir with dead symlink
rm -rf $RPM_BUILD_ROOT/arch/i386
+install -d $RPM_BUILD_ROOT/etc/sysconfig
+install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/kernel
+
%clean
rm -rf $RPM_BUILD_ROOT
fi
%post
-mv -f /boot/vmlinuz-%{alt_kernel} /boot/vmlinuz-%{alt_kernel}.old 2> /dev/null > /dev/null
-ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz-%{alt_kernel}
-mv -f /boot/System.map-%{alt_kernel} /boot/System.map-%{alt_kernel}.old 2> /dev/null > /dev/null
-ln -sf System.map-%{kernel_release} /boot/System.map-%{alt_kernel}
-
%depmod %{kernel_release}
-/sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
-mv -f %{initrd_dir}/initrd-%{alt_kernel} %{initrd_dir}/initrd-%{alt_kernel}.old 2> /dev/null > /dev/null
-ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd-%{alt_kernel}
+%posttrans
+[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
+# generate simple initramfs/initrd image
+if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
+ /sbin/geninitrd -f %{initrd_dir}/initrd-%{kernel_release}.img %{kernel_release}
+fi
-if [ -x /sbin/new-kernel-pkg ]; then
- if [ -f /etc/pld-release ]; then
- title=$(sed 's/^[0-9.]\+ //' < /etc/pld-release)
- else
- title='PLD Linux'
- fi
+# if dracut is present then generate full-featured initramfs
+if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
+ /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
+fi
- title="$title %{alt_kernel}"
+# update boot loader
+if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
+ if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then
+ /sbin/update-grub >/dev/null
+ fi
+fi
+if [ -x /sbin/new-kernel-pkg ]; then
+ /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.img --install %{kernel_release} --banner "TLD Linux %{alt_kernel}"
+fi
- /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "$title"
-elif [ -x /sbin/rc-boot ]; then
+if [ -x /sbin/rc-boot ]; then
/sbin/rc-boot 1>&2 || :
fi
-%post vmlinux
-mv -f /boot/vmlinux-%{alt_kernel} /boot/vmlinux-%{alt_kernel}.old 2> /dev/null > /dev/null
-ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
-
%post drm
%depmod %{kernel_release}
%files
%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
/boot/vmlinuz-%{kernel_release}
/boot/System.map-%{kernel_release}
-%ghost %{initrd_dir}/initrd-%{kernel_release}.gz
+%ghost %{initrd_dir}/initrd-%{kernel_release}.img
+%ghost %{initrd_dir}/initramfs-%{kernel_release}.img
/lib/firmware/%{kernel_release}
%dir /lib/modules/%{kernel_release}
%dir /lib/modules/%{kernel_release}/kernel
%exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
/lib/modules/%{kernel_release}/kernel/fs
-# this directory will be removed after disabling rcutorture mod. in 2.6.20.
/lib/modules/%{kernel_release}/kernel/kernel
/lib/modules/%{kernel_release}/kernel/lib
%{_kernelsrcdir}/localversion
%{_kernelsrcdir}/arch/*/kernel/asm-offsets*
%{_kernelsrcdir}/arch/*/kernel/sigframe*.h
+%{_kernelsrcdir}/arch/x86/tools/relocs.c
%{_kernelsrcdir}/drivers/lguest/lg.h
%{_kernelsrcdir}/kernel/bounds.c
%dir %{_kernelsrcdir}/scripts