%bcond_without pcmcia # don't build pcmcia
%bcond_with verbose # verbose build (V=1)
-%bcond_with reiser4 # support for reiser4 fs (experimental)
%bcond_with fbcondecor # build fbcondecor (disable FB_TILEBLITTING and affected fb modules)
%bcond_without pae # build PAE (HIGHMEM64G) support on 32bit i686 athlon pentium3 pentium4
%bcond_without ipv6 # ipv6 support
%bcond_with padmcrypt # parallel dm-crypt
-%bcond_without vserver # support for VServer (enabled by default)
+%bcond_with vserver # support for VServer
%bcond_with vanilla # don't include any patches
%bcond_with rescuecd # build kernel for our rescue
%{?debug:%define with_verbose 1}
%define have_drm 1
+%define have_ide 1
%define have_oss 1
%define have_sound 1
%define have_pcmcia 1
%if %{with myown}
%define have_drm 0
+%define have_ide 0
%define have_oss 0
%define have_sound 0
%define have_pcmcia 0
%define have_pcmcia 0
%endif
-%define rel 0.1
-%define basever 3.12
-%define postver .0
+%define rel 2
+%define basever 3.16
+%define postver .2
+
+# define this to '-%{basever}' for longterm branch
+%define versuffix %{nil}
# __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)
Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
Summary(pl.UTF-8): Jądro Linuksa
-Name: kernel%{_alt_kernel}
+Name: kernel%{versuffix}%{_alt_kernel}
Version: %{basever}%{postver}
Release: %{rel}
Epoch: 3
License: GPL v2
Group: Base/Kernel
-Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}-rc6.tar.xz
-# Source0-md5: 4f25cd5bec5f8d5a7d935b3f2ccb8481
+Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
+# Source0-md5: 5c569ed649a0c9711879f333e90c5386
%if "%{postver}" != ".0"
Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz
-# Patch0-md5: 8431ee4e2467fdfde47e31701813a265
+# Patch0-md5: 926e6e2ee0634ce53730701da749b040
%endif
Source1: kernel.sysconfig
Source43: kernel-vserver.config
Source55: kernel-imq.config
-Source56: kernel-reiser4.config
Source58: kernel-inittmpfs.config
# http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
Patch3: kernel-fbcondecor.patch
Patch4: kernel-fbcon-margins.patch
-Patch5: linux-wistron-amilo8210.patch
+Patch6: linux-wistron-nx.patch
# netfilter related stuff mostly based on patch-o-matic-ng
# snapshot 20070806 with some fixes. Some modules
# http://www.linuximq.net
Patch50: kernel-imq.patch
-Patch51: http://downloads.sourceforge.net/project/reiser4/reiser4-for-linux-3.x/reiser4-for-3.11.1.patch.gz
-# Patch51-md5: 24a7d3711aadd26000d16eaac943a4ce
-
# http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
Patch53: kernel-esfq.patch
# http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
Patch85: kernel-hostap.patch
-# http://www.linuxtv.org/wiki/index.php/TechniSat_CableStar_Combo_HD_CI#Patch
-Patch90: kernel-technisat-combo-hd-ci.patch
-
-# http://vserver.13thfloor.at/Experimental/patch-3.10.9-vs2.3.6.6.diff
+%define vserver_patch 3.10.9-vs2.3.6.6
+# http://vserver.13thfloor.at/Experimental/patch-3.13.6-vs2.3.6.11.diff
# note there are additional patches from above url:
# - *fix* are real fixes (we want these)
# - *feat* are new features/tests (we don't want these)
# Patch creation:
# git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git
# cd aufs3-standalone
-# git checkout -b aufs3.10 origin/aufs3.10
-# cat aufs3-kbuild.patch aufs3-base.patch aufs3-standalone.patch > ~/rpm/packages/kernel/kernel-aufs3.patch
+# git checkout -b aufs3.15 origin/aufs3.15
+# cat aufs3-kbuild.patch aufs3-base.patch aufs3-mmap.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)
+# cat aufs3-loopback.patch >> ~/rpm/packages/kernel/kernel-aufs3.patch
#
Patch145: kernel-aufs3.patch
Patch146: kernel-aufs3+vserver.patch
Patch400: kernel-virtio-gl-accel.patch
# http://people.redhat.com/mpatocka/patches/kernel/dm-crypt-paralelizace/current/series.html
-Patch500: dm-crypt-remove-percpu.patch
-Patch501: dm-crypt-unbound-workqueue.patch
-Patch502: dm-crypt-dont-allocate-partial-pages.patch
-Patch503: dm-crypt-fix-allocation-deadlock.patch
-Patch504: dm-crypt-offload-writes-to-thread.patch
-Patch505: dm-crypt-sort-requests.patch
+Patch500: bio-kmalloc-align.patch
+Patch501: dm-crypt-per_bio_data.patch
+Patch502: dm-crypt-unbound-workqueue.patch
+Patch503: dm-crypt-dont-allocate-partial-pages.patch
+Patch504: dm-crypt-fix-allocation-deadlock.patch
+Patch505: dm-crypt-remove-io-pool.patch
+Patch506: dm-crypt-offload-writes-to-thread.patch
+Patch507: dm-crypt-sort-requests.patch
Patch2000: kernel-small_fixes.patch
Patch2001: kernel-pwc-uncompress.patch
#Patch50000: kernel-usb_reset.patch
URL: http://www.kernel.org/
+BuildRequires: bc
BuildRequires: binutils >= 3:2.18
%ifarch sparc sparc64
BuildRequires: elftoaout
Suggests: crda
Suggests: dracut
Suggests: keyutils
+Suggests: kernel%{versuffix}-ide = %{epoch}:%{version}-%{release}
Suggests: linux-firmware
Provides: %{name}(netfilter) = 20070806
Provides: %{name}(vermagic) = %{kernel_release}
Conflicts: e2fsprogs < 1.29
Conflicts: isdn4k-utils < 3.1pre1
Conflicts: jfsutils < 1.1.3
+Conflicts: libusb < 1.0.9
Conflicts: linux-firmware < 20120720
Conflicts: lvm2 < 2.02.40
Conflicts: module-init-tools < 3.16
Conflicts: ppp < 1:2.4.0
Conflicts: procps < 3.2.0
Conflicts: quota-tools < 3.09
-%{?with_reiserfs4:Conflicts: reiser4progs < 1.0.0}
Conflicts: reiserfsprogs < 3.6.3
Conflicts: rpm < 4.4.2-0.2
Conflicts: udev < 1:081
%define objdir %{topdir}/%{targetobj}
%define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion)
-%define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
+%define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version}
%if "%{_target_base_arch}" != "%{_host_base_arch}"
%define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
%endif
%define DepMod /sbin/depmod
%endif
-%define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
+# use 64-bit offsets for fixdeps to work with 64-bit inodes
+%define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
%define __features \
+%{?with_vserver:Vserver - enabled}\
+%{!?with_vserver:WARNING: VSERVER IS DISABLED IN THIS KERNEL BUILD!}\
%{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
%{?with_nfsroot:Root on NFS - enabled}\
+%{?with_vserver:Linux-VServer - %{vserver_patch}}\
%define Features %(echo "%{__features}" | sed '/^$/d')
%description drm -l pl.UTF-8
Sterowniki DRM.
+%package ide
+Summary: IDE kernel modules
+Summary(de.UTF-8): IDE Kernel Treiber
+Summary(pl.UTF-8): Sterowniki IDE
+Group: Base/Kernel
+Requires(postun): %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{epoch}:%{version}-%{release}
+AutoReqProv: no
+
+%description ide
+IDE kernel modules.
+
+%description ide -l de.UTF-8
+IDE Kernel Treiber.
+
+%description ide -l pl.UTF-8
+Sterowniki IDE.
+
%package pcmcia
Summary: PCMCIA modules
Summary(de.UTF-8): PCMCIA Module
Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
Group: Development/Building
Requires: %{name}-headers = %{epoch}:%{version}-%{release}
+Requires: make
Conflicts: rpmbuild(macros) < 1.652
AutoReqProv: no
%setup -qc
ln -s %{SOURCE7} kernel-module-build.pl
ln -s %{SOURCE10} Makefile
-mv linux-%{basever}-rc6 linux-%{basever}
cd linux-%{basever}
%if "%{postver}" != ".0"
%patch3 -p1
%endif
%patch4 -p1
-%patch5 -p1
+%patch6 -p1
## netfilter
#
%patch50 -p1
%endif
-# reiser4
-%if %{with reiser4}
-%patch51 -p1
-%endif
-
# esfq
%if %{with esfq}
%patch53 -p1
# hostap enhancements from/for aircrack-ng
%patch85 -p1
-# TechniSat_CableStar_Combo_HD_CI
-%patch90 -p1
-
# vserver
%if %{with vserver}
%patch100 -p1
%patch503 -p1
%patch504 -p1
%patch505 -p1
+%patch506 -p1
+%patch507 -p1
%endif
%endif # vanilla
ARCH := %{_target_base_arch}
Q := %{!?with_verbose:@}
MAKE_OPTS := %{MakeOpts}
-DEFCONFIG := %{defconfig}
+DEFCONFIG := %{defconfig}
EOF
RescueConfig() {
%endif
%ifarch i686 athlon pentium3 pentium4
- %if %{with pae}
+ %if %{with pae}
CONFIG_HIGHMEM4G=n
CONFIG_HIGHMEM64G=y
CONFIG_X86_PAE=y
CONFIG_NUMA=n
- %endif
+ %endif
%endif
%if %{without pcmcia}
rescue.config \
%endif
\
-%if %{with reiser4}
- %{SOURCE56} \
-%endif
%if %{with imq}
%{SOURCE55} \
%endif
%depmod %{kernel_release}
+%if %{without vserver}
+%banner -e -a kernel <<EOF
+
+WARNING: Vserver support is DISABLED in this kernel build!
+
+EOF
+%endif
+
%posttrans
# use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
# 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"
+ [ -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 [ -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
+ if [ -n "$initrd_file" ] ; then
+ ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
+ fi
%endif
fi
%postun drm
%depmod %{kernel_release}
+%post ide
+%depmod %{kernel_release}
+
+%postun ide
+%depmod %{kernel_release}
+
%post pcmcia
%depmod %{kernel_release}
%depmod %{kernel_release}
%post headers
-ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
+ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
%postun headers
if [ "$1" = "0" ]; then
- if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
- if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
- rm -f %{_prefix}/src/linux%{_alt_kernel}
+ if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
+ if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
+ rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
fi
fi
fi
%if %{have_drm}
%exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
%endif
+%if %{have_ide}
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/*
+%endif
/lib/modules/%{kernel_release}/kernel/fs
/lib/modules/%{kernel_release}/kernel/kernel
/lib/modules/%{kernel_release}/kernel/lib
/lib/modules/%{kernel_release}/kernel/drivers/gpu
%endif
+%if %{have_ide}
+%files ide
+%defattr(644,root,root,755)
+/lib/modules/%{kernel_release}/kernel/drivers/ide/*
+%if %{have_pcmcia}
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
+%endif
+%endif
+
%if %{have_pcmcia}
%files pcmcia
%defattr(644,root,root,755)
%{_kernelsrcdir}/scripts/module-common.lds
%attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
%{_kernelsrcdir}/scripts/*.c
+%{_kernelsrcdir}/scripts/*.h
%attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
%{_kernelsrcdir}/scripts/selinux/genheaders/*.c
%{_kernelsrcdir}/scripts/selinux/mdp/*.c
%exclude %{_kernelsrcdir}/scripts/module-common.lds
%exclude %{_kernelsrcdir}/scripts/setlocalversion
%exclude %{_kernelsrcdir}/scripts/*.c
+%exclude %{_kernelsrcdir}/scripts/*.h
%exclude %{_kernelsrcdir}/scripts/*.sh
%exclude %dir %{_kernelsrcdir}/scripts/selinux
%exclude %{_kernelsrcdir}/scripts/selinux/Makefile