%endif
%define rel 2
-%define basever 3.3
-%define postver .1
+%define basever 3.4
+%define postver .75
# __alt_kernel is list of features, empty string if none set
# _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
# alt_kernel should be defined if __alt_kernel has non-empty value (for %{?alt_kernel:foo} constructs)
-%define __alt_kernel %{?with_pax:pax}%{?with_grsecurity:grsecurity}
-
-%if "%{__alt_kernel}" != ""
-%define alt_kernel %{__alt_kernel}
-%endif
# these override whatever name was picked from bconds
-%if %{with myown} && "%{_alt_kernel}" == ""
+%if %{with myown}
+%if "%{_alt_kernel}" == ""
%define alt_kernel myown
%endif
-%if %{with rescuecd}
-%define alt_kernel rescuecd
-%endif
+%else # not myown:
%if %{with vanilla}
%define alt_kernel vanilla
+%else # not vanilla:
+%if %{with rescuecd}
+%define alt_kernel rescuecd
+%else # not rescuecd:
+%define __alt_kernel longterm%{?with_pax:pax}%{?with_grsecurity:grsecurity}
+%if "%{__alt_kernel}" != ""
+%define alt_kernel %{__alt_kernel}
%endif
+%endif # not rescuecd
+%endif # not vanilla
+%endif # not myown
# kernel release (used in filesystem and eventually in uname -r)
# modules will be looked from /lib/modules/%{kernel_release}
License: GPL v2
Group: Base/Kernel
Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
-# Source0-md5: 7133f5a2086a7d7ef97abac610c094f5
+# Source0-md5: 967f72983655e2479f951195953e8480
%if "%{postver}" != ".0"
-Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
-# Patch0-md5: b3fafb60dbf571aef9da6f12a774f02c
+Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz
+# Patch0-md5: 6df6a2c9b9fea40fc572da7138e94ac0
%endif
+Source1: kernel.sysconfig
Source3: kernel-autoconf.h
Source4: kernel-config.h
# http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
Patch85: kernel-hostap.patch
-# http://vserver.13thfloor.at/Experimental/patch-3.3.1-vs2.3.3.2.diff
+# http://vserver.13thfloor.at/Experimental/patch-3.4.22-vs2.3.3.9.diff
Patch100: kernel-vserver-2.3.patch
Patch101: kernel-vserver-fixes.patch
-# http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.11_for_3.2.2.diff.gz
+# http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.11_for_3.3.0-rc3.diff.gz
Patch140: kernel-unionfs.patch
# git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git, read README
# Patch creation:
# git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git
# cd aufs3-standalone
-# git checkout -b aufs3.2 origin/aufs3.2
+# git checkout -b aufs3.4 origin/aufs3.4
# cat aufs3-kbuild.patch aufs3-base.patch aufs3-standalone.patch > ~/rpm/packages/kernel/kernel-aufs3.patch
# mkdir linux
# cp -a Documentation fs include linux
# diff -urN /usr/share/empty linux >> ~/rpm/packages/kernel/kernel-aufs3.patch
+# drop hunk at the end of patch (hunk is patching include/linux/Kbuild with single line change)
#
Patch145: kernel-aufs3.patch
Patch146: kernel-aufs2-unionfs.patch
Patch2001: kernel-pwc-uncompress.patch
Patch2003: kernel-regressions.patch
-# 0001-AppArmor-compatibility-patch-for-v5-network-controll.patch
-# 0002-AppArmor-compatibility-patch-for-v5-interface.patch
-# from http://kernel.org/pub/linux/security/apparmor/apparmor-2.6.36-patches.tgz
+# http://git.kernel.org/?p=linux/kernel/git/jj/linux-apparmor.git;a=shortlog;h=refs/heads/v3.4-aa2.8
Patch5000: kernel-apparmor.patch
# for rescuecd
BuildRequires: xz >= 1:4.999.7
AutoReqProv: no
BuildRequires: hostname
-BuildRequires: virtual(module-tools)
+BuildRequires: kmod
BuildRequires: perl-base
BuildRequires: rpm-build >= 4.5-24
-BuildRequires: rpmbuild(macros) >= 1.217
+BuildRequires: rpmbuild(macros) >= 1.652
Requires(post): coreutils
Requires(post): geninitrd >= 10000-3
-Requires(post): virtual(module-tools)
+Requires(post): kmod >= 12-2
Requires: /sbin/depmod
Requires: coreutils
Requires: geninitrd >= 10000-3
-Requires: virtual(module-tools)
+Requires: kmod >= 12-2
%if %{with pae}
%ifarch i686 athlon pentium3 pentium4
Requires: cpuinfo(pae)
%endif
%endif
+Suggests: dracut
Suggests: keyutils
Suggests: linux-firmware
Provides: %{name}(netfilter) = 20070806
Conflicts: e2fsprogs < 1.29
Conflicts: isdn4k-utils < 3.1pre1
Conflicts: jfsutils < 1.1.3
+Conflicts: linux-firmware < 20120720
Conflicts: lvm2 < 2.02.40
Conflicts: module-init-tools < 3.16
Conflicts: nfs-utils < 1.0.5
%define topdir %{_builddir}/%{name}-%{version}
%define srcdir %{topdir}/linux-%{basever}
%define objdir %{topdir}/%{targetobj}
-%define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
+%define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion)
%define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
-%if "%{_target_base_arch}" != "%{_arch}"
+%if "%{_target_base_arch}" != "%{_host_base_arch}"
%define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
%define DepMod /bin/true
- %if "%{_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
+ %if "%{_host_base_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
%define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
%define DepMod /sbin/depmod
%endif
- %if "%{_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
+ %if "%{_host_base_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
%define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
%define DepMod /sbin/depmod
%endif
- %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
+ %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
%define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
%define DepMod /sbin/depmod
%endif
Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
Group: Development/Building
Requires: %{name}-headers = %{epoch}:%{version}-%{release}
-Conflicts: rpmbuild(macros) < 1.642
+Conflicts: rpmbuild(macros) < 1.652
AutoReqProv: no
%description module-build
%patch101 -p1
%endif
-# aufs2
+# aufs3
%if %{with reiser4}
%patch148 -p1
%endif
devname \
softdep \
symbols{,.bin} \
- {pci,usb,ccw,isapnp,input,ieee1394,serio,of}map \
; do
test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
> $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
# /boot
install -d $RPM_BUILD_ROOT/boot
cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
+cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
%ifarch %{ix86} %{x8664}
cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
# ghosted initrd
touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
+touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
-%if "%{_target_base_arch}" != "%{_arch}"
+%if "%{_target_base_arch}" != "%{_host_base_arch}"
touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
%endif
# /etc/modrobe.d
install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
+install -d $RPM_BUILD_ROOT/etc/sysconfig
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
+
# /usr/src/linux
install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
fi
%post
+[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
+if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
%ifarch ia64
-mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
-%{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
-ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
-%{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
-%endif
-mv -f /boot/vmlinuz{,.old} 2> /dev/null
-%{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
-mv -f /boot/System.map{,.old} 2> /dev/null
-%{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
-ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
-%{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
-ln -sf System.map-%{kernel_release} /boot/System.map
-%{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
+ mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
+%if 0%{?alt_kernel:1}
+ mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}
+%endif
+%endif
+ mv -f /boot/vmlinuz{,.old} 2> /dev/null
+ mv -f /boot/System.map{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
+ ln -sf System.map-%{kernel_release} /boot/System.map
+%if 0%{?alt_kernel:1}
+ mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
+ mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
+ ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
+%endif
+fi
%depmod %{kernel_release}
%posttrans
-# generate initrd after all dependant modules are installed
-/sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
-mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
-%{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
-ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
-%{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
+# use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
+[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
+initrd_file=""
+if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
+ /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release} || :
+ initrd_file="initrd-%{kernel_release}.gz"
+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}
+ [ -n "$initrd_file" ] || initrd_file="initramfs-%{kernel_release}.img"
+fi
+
+if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
+ mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
+ if [ -n "$initrd_file" ] ; then
+ ln -sf "$initrd_file" %{initrd_dir}/initrd
+ fi
+%if 0%{?alt_kernel:1}
+ mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
+ if [ -n "$initrd_file" ] ; then
+ ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
+ fi
+%endif
+fi
# update boot loaders when old package files are gone from filesystem
if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
if [ -x /sbin/rc-boot ]; then
/sbin/rc-boot 1>&2 || :
fi
+if [ -x /sbin/efi-boot-update ]; then
+ /sbin/efi-boot-update --auto || :
+fi
%post vmlinux
-mv -f /boot/vmlinux{,.old} 2> /dev/null
-%{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
-ln -sf vmlinux-%{kernel_release} /boot/vmlinux
-%{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
+[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
+if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
+ mv -f /boot/vmlinux{,.old} 2> /dev/null
+ ln -sf vmlinux-%{kernel_release} /boot/vmlinux
+%if 0%{?alt_kernel:1}
+ mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
+ ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
+%endif
+fi
%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
%ifarch sparc sparc64
/boot/vmlinux.aout-%{kernel_release}
%endif
%endif
/boot/vmlinuz-%{kernel_release}
/boot/System.map-%{kernel_release}
+/boot/config-%{kernel_release}
%ghost %{initrd_dir}/initrd-%{kernel_release}.gz
+%ghost %{initrd_dir}/initramfs-%{kernel_release}.img
/lib/firmware/%{kernel_release}
%dir /lib/modules/%{kernel_release}
%exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
%exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
%exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
%exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
%endif
%exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
# rest modules.* are ghost (regenerated by post depmod -a invocation)
%ghost /lib/modules/%{kernel_release}/modules.alias
%ghost /lib/modules/%{kernel_release}/modules.alias.bin
-%ghost /lib/modules/%{kernel_release}/modules.ccwmap
%ghost /lib/modules/%{kernel_release}/modules.dep
%ghost /lib/modules/%{kernel_release}/modules.dep.bin
%ghost /lib/modules/%{kernel_release}/modules.devname
-%ghost /lib/modules/%{kernel_release}/modules.ieee1394map
-%ghost /lib/modules/%{kernel_release}/modules.inputmap
-%ghost /lib/modules/%{kernel_release}/modules.isapnpmap
-%ghost /lib/modules/%{kernel_release}/modules.ofmap
-%ghost /lib/modules/%{kernel_release}/modules.pcimap
-%ghost /lib/modules/%{kernel_release}/modules.seriomap
%ghost /lib/modules/%{kernel_release}/modules.softdep
%ghost /lib/modules/%{kernel_release}/modules.symbols
%ghost /lib/modules/%{kernel_release}/modules.symbols.bin
-%ghost /lib/modules/%{kernel_release}/modules.usbmap
# symlinks pointing to kernelsrcdir
%ghost /lib/modules/%{kernel_release}/build
/lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
/lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
/lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
%endif
/lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
/lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*