%define builddoc 0
%define headers 1
+%{!?pldistro:%global pldistro planetlab}
+
# default is to not build this - to override, use something like
# kernel-SPECVARS := iwlwifi=1
# rpm does not seem to have a syntax for defining overridable defaults
# any better solution would be more than welcome.
-%define build_iwlwifi %{?iwlwifi:1}%{!?iwlwifi:0}
+%{!?iwlwifi:%global iwlwifi 0}
+
+# default is to search the config file after pldistro
+# e.g. set
+# kernel-SPECVARS := kernelconfig=planetlab
+# to use the planetlab config from another pldistro
+# without having to manage symlinks
+%{!?kernelconfig:%global kernelconfig %{pldistro}}
# Versions of various parts
# for module-tag.py - sublevel is used for the version (middle) part of tag names
%define name linux-2.6
%define module_version_varname sublevel
-%define taglevel 42
+%define taglevel 48
#
# Polite request for people who spin their own kernel rpms:
# updated every time the PL kernel is updated.
%define vini_pl_patch 561
-%define release vs%{vsversion}.%{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+%define requiresreboot 0
-%{!?pldistro:%global pldistro planetlab}
+%define kernelrelease vs%{vsversion}.%{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+%define packagerelease %{kernelrelease}
%define signmodules 0
%define make_target bzImage
-%define KVERREL %{PACKAGE_VERSION}-%{PACKAGE_RELEASE}
+
+%if "%{distro}" == "Fedora" && %{distrorelease} >= 13
+%define KVERREL %{version}-%{kernelrelease}
+%else
+%define KVERREL %{PACKAGE_VERSION}-%{kernelrelease}
+%endif
# Override generic defaults with per-arch defaults
Group: System Environment/Kernel
License: GPLv2
Version: %{rpmversion}
-Release: %{release}
+Release: %{packagerelease}
ExclusiveOS: Linux
Provides: kernel = %{version}
Provides: kernel-drm = 4.3.0
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-smp = %{rpmversion}-%{release}
-Provides: kernel-smp-%{_target_cpu} = %{rpmversion}-%{release}
+Provides: kernel-%{_target_cpu} = %{rpmversion}-%{kernelrelease}
+Provides: kernel-smp = %{rpmversion}-%{kernelrelease}
+Provides: kernel-smp-%{_target_cpu} = %{rpmversion}-%{kernelrelease}
Prereq: %{kernel_prereq}
Conflicts: %{kernel_dot_org_conflicts}
Conflicts: %{package_conflicts}
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-%{kversion}.tar.bz2
-Source11: %{pldistro}-%{kversion}-i686.config
-Source12: %{pldistro}-%{kversion}-x86_64.config
+Source11: %{kernelconfig}-%{kversion}-i686.config
+Source12: %{kernelconfig}-%{kversion}-x86_64.config
%if %{builduml}
-Source20: %{pldistro}-%{kversion}-i686-uml.config
+Source20: %{kernelconfig}-%{kversion}-i686-uml.config
%endif
%if %{buildxen}
-Source30: %{pldistro}-%{kversion}-i686-xenU.config
+Source30: %{kernelconfig}-%{kversion}-i686-xenU.config
%endif
# Mainline patches
%endif
Patch010: linux-2.6-010-e1000e.patch
+Patch015: linux-2.6-015-igb.patch
+# disabled
+#Patch016: linux-2.6-016-bnx2x.patch
Patch020: linux-2.6-020-build-id.patch
Patch030: linux-2.6-030-netns.patch
Patch040: linux-2.6-040-i_mutex-check.patch
+Patch050: linux-2.6-050-getline.patch
# These are patches picked up from Fedora/RHEL
Patch100: linux-2.6-100-build-nonintconfig.patch
+Patch150: linux-2.6-150-cciss-allow-kexec-to-work.patch
+Patch151: linux-2.6-151-cciss-SAS.patch
+
# Linux-VServer
Patch200: patch-%{rpmversion}-vs%{vsversion}.diff
Patch210: linux-2.6-210-vserver-cpu-sched.patch
Patch721: linux-2.6-721-bonding-layer3.patch
Patch722: linux-2.6-722-bonding-rr.patch
+Patch800: linux-2.6-800-fix-4-bit-apicid-assumption.patch
+
+Patch810: linux-2.6-810-ich10.patch
+
+Patch900: linux-2.6-900-ext3_mount_default_to_barrier.patch
+Patch910: linux-2.6-910-support_barriers_on_single_device_dm_devices.patch
+
+Patch950: linux-2.6.950-ext3_backports.patch
+
# See also the file named 'sources' here for the related checksums
# NOTE. iwlwifi should be in-kernel starting from 2.6.24
# see http://bughost.org/bugzilla/show_bug.cgi?id=1584
-%if %{build_iwlwifi}
+%if %{iwlwifi}
%define mac80211_version 10.0.4
Patch600: http://intellinuxwireless.org/mac80211/downloads/mac80211-%{mac80211_version}.tgz
%define iwlwifi_version 1.2.25
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device
-input and output, etc.
+input and output, etc.
+Configured with kernelconfig=%{kernelconfig} and iwlwifi=%{iwlwifi}
%package devel
Summary: Development package for building kernel modules to match the kernel.
Group: System Environment/Kernel
AutoReqProv: no
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-smp-devel = %{rpmversion}-%{release}
-Provides: kernel-smp-devel-%{_target_cpu} = %{rpmversion}-%{release}
+Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{kernelrelease}
+Provides: kernel-smp-devel = %{rpmversion}-%{kernelrelease}
+Provides: kernel-smp-devel-%{_target_cpu} = %{rpmversion}-%{kernelrelease}
Prereq: /usr/bin/find
%description devel
Group: System Environment/Kernel
Provides: kernel = %{version}
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}xenU
+Provides: kernel-%{_target_cpu} = %{rpmversion}-%{kernelrelease}xenU
Prereq: %{kernel_prereq}
Conflicts: %{kernel_dot_org_conflicts}
Conflicts: %{package_conflicts}
Summary: Development package for building kernel modules to match the kernel.
Group: System Environment/Kernel
AutoReqProv: no
-Provides: kernel-xenU-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}xenU
-Provides: kernel-devel = %{rpmversion}-%{release}xenU
+Provides: kernel-xenU-devel-%{_target_cpu} = %{rpmversion}-%{kernelrelease}
+Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{kernelrelease}xenU
+Provides: kernel-devel = %{rpmversion}-%{kernelrelease}xenU
Prereq: /usr/sbin/hardlink, /usr/bin/find
%description xenU-devel
%package uml-devel
Summary: Development package for building kernel modules to match the UML kernel.
Group: System Environment/Kernel
-Provides: kernel-uml-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}smp
-Provides: kernel-devel = %{rpmversion}-%{release}smp
+Provides: kernel-uml-devel-%{_target_cpu} = %{rpmversion}-%{kernelrelease}
+Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{kernelrelease}smp
+Provides: kernel-devel = %{rpmversion}-%{kernelrelease}smp
AutoReqProv: no
Prereq: /usr/sbin/hardlink, /usr/bin/find
Group: System Environment/Kernel
Provides: kernel = %{version}
Provides: kernel-drm = 4.3.0
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}
+Provides: kernel-%{_target_cpu} = %{rpmversion}-%{kernelrelease}
%description vserver
VServers do not require and cannot use kernels, but some RPMs have
cd kernel-%{kversion}
fi
+%if %{requiresreboot}
+echo "This is a trivial maintenance update. There will be no reboot following installation."
+%endif
+
KERNEL_PREVIOUS=vanilla
# Dark RPM-magic to apply each patch to a hardlinked copy of the tree.
%define ApplyPatch() \
%endif
%ApplyPatch 10
+%ApplyPatch 15
+%if 0
+%ApplyPatch 16
+%endif
%ApplyPatch 20
# NetNS patch for VINI
%ApplyPatch 30
%endif
%ApplyPatch 40
+%ApplyPatch 50
%ApplyPatch 100
+%ApplyPatch 150
+%ApplyPatch 151
+
%ApplyPatch 200
%ApplyPatch 210
%ApplyPatch 220
%ApplyPatch 670
%endif
%ApplyPatch 680
-%ApplyPatch 690
%ApplyPatch 700
%ApplyPatch 710
%ApplyPatch 720
%ApplyPatch 721
%ApplyPatch 722
+%ApplyPatch 800
+%ApplyPatch 810
+
+%ApplyPatch 900
+%ApplyPatch 910
+%ApplyPatch 950
# NetNS conflict-resolving patch for VINI. Will work with patch vini_pl_patch-1 but may
# break with later patches.
%ApplyPatch %vini_pl_patch
%endif
-%if %{build_iwlwifi}
+%if %{iwlwifi}
# Run the mac80211 stuff in the kernel tree holding the last patch
tar -xzf %{PATCH600}
pushd mac80211-%{mac80211_version}
# Pick the right config file for the kernel we're building
if [ -n "$Flavour" ] ; then
- Config=%{pldistro}-%{kversion}-%{_target_cpu}-$Flavour.config
+ Config=%{kernelconfig}-%{kversion}-%{_target_cpu}-$Flavour.config
DevelDir=/usr/src/kernels/%{KVERREL}-$Flavour-%{_target_cpu}
DevelLink=/usr/src/kernels/%{KVERREL}$Flavour-%{_target_cpu}
else
- Config=%{pldistro}-%{kversion}-%{_target_cpu}.config
+ Config=%{kernelconfig}-%{kversion}-%{_target_cpu}.config
DevelDir=/usr/src/kernels/%{KVERREL}-%{_target_cpu}
DevelLink=
fi
- KernelVer=%{version}-%{release}$Flavour
+ KernelVer=%{version}-%{kernelrelease}$Flavour
echo BUILDING A KERNEL FOR $Flavour %{_target_cpu}...
# make sure EXTRAVERSION says what we want it to say
- perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{?patchlevel:.%{patchlevel}}-%{release}$Flavour/" Makefile
+ perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{?patchlevel:.%{patchlevel}}-%{kernelrelease}$Flavour/" Makefile
# and now to start the build process
make -s ARCH=$Arch INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr
find $RPM_BUILD_ROOT/%{_includedir} -name \*.cmd -delete
rm -f $RPM_BUILD_ROOT/%{_includedir}/{..,.}{check,install}*
+ rm -rf $RPM_BUILD_ROOT/usr/include/scsi
%endif
-%if %{build_iwlwifi}
+%if %{iwlwifi}
# build the iwlwifi driver
make -C %{_builddir}/kernel-%{kversion}/iwlwifi-%{iwlwifi_version} ARCH=$Arch \
KSRC=%{_builddir}/kernel-%{kversion}/linux-%{_target_cpu}-%{kversion}$Flavour
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer
-%if %{build_iwlwifi}
+%if %{iwlwifi}
# install iwlwifi
# make -C %{_builddir}/kernel-%{kversion}/iwlwifi-%{iwlwifi_version} ARCH=$Arch \
# KSRC=%{_builddir}/kernel-%{kversion}/linux-%{_target_cpu}-%{kversion}$Flavour \
fi
fi
-[ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade %{rpmversion}-%{release}
+[ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade %{rpmversion}-%{kernelrelease}
#/sbin/new-kernel-pkg --package kernel --mkinitrd --depmod --install %{KVERREL}
# Older modutils do not support --package option
/sbin/new-kernel-pkg --mkinitrd --depmod --install %{KVERREL}
}
popd > /dev/null
+%if %{requiresreboot}
# ask for a reboot
mkdir -p /etc/planetlab
touch /etc/planetlab/update-reboot
+%endif
%post devel
[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
%endif
%changelog
+* Fri May 07 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-22-48
+- Support next generation of HP Smart Array SAS/SATA controllers
+
+* Thu Apr 15 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-22-47
+- Tagging 22 branch with following changes;
+- * Make barrier=1 for ext3 filesystem,
+- * Support barriers on single device dm devices,
+- * Introduce various ext3 related fixes,
+- * Fix conflict between glibc-headers kernel-headers packages
+
+* Tue Mar 16 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-22-46
+- every released package should have a tag in svn, so remove updatelevel from naming scheme and also change the variable name
+
+* Tue Mar 16 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-22-45
+- add support for ICH10
+
+* Fri Feb 19 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-22-44
+- Disable rebooting
+
+* Fri Feb 05 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-22-43
+- Tagging 22 branch with following changes;
+- * new e1000 driver,
+- * VXC_PROC_WRITE support,
+- * Bonding and multipath support,
+- * IGB driver support,
+- * Boot fix for the HP DL320 G6 boxes,
+- * Kexec fix for CCISS controllers,
+
* Fri Jun 26 2009 Daniel Hokka Zakrisson <daniel@hozac.com> - linux-2.6-22-42
- Bonding and multipath things.