-#
-# $Id$
-#
-%define url $URL$
-
Summary: The Linux kernel (the core of the Linux operating system)
# What parts do we want to build? We must build at least one kernel.
%define builddoc 0
%define headers 1
-# 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}
+%{!?pldistro:%global pldistro planetlab}
+
+# 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 0
+%define taglevel 36
#
# Polite request for people who spin their own kernel rpms:
# adding some text to the end of the version number.
#
%define sublevel 27
-%define patchlevel 14
+%define patchlevel 57
%define kversion 2.6.%{sublevel}
%define rpmversion 2.6.%{sublevel}%{?patchlevel:.%{patchlevel}}
# updated every time the PL kernel is updated.
%define vini_pl_patch 561
-%define release vs%{vsversion}.%{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
-
-%{!?pldistro:%global pldistro planetlab}
+%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
%define signmodules 0
%define make_target bzImage
-%define KVERREL %{PACKAGE_VERSION}-%{PACKAGE_RELEASE}
+%define KVERREL %{version}-%{release}
# Override generic defaults with per-arch defaults
# Packages that need to be installed before the kernel is, because the %post
# scripts use them.
#
-%define kernel_prereq fileutils, module-init-tools, initscripts >= 5.83, mkinitrd >= 3.5.5
+%define kernel_requires fileutils, module-init-tools, initscripts >= 5.83, mkinitrd >= 3.5.5
Vendor: PlanetLab
Packager: PlanetLab Central <support@planet-lab.org>
Distribution: PlanetLab %{plrelease}
-URL: %(echo %{url} | cut -d ' ' -f 2)
+URL: %{SCMURL}
Name: kernel
Group: System Environment/Kernel
Version: %{rpmversion}
Release: %{release}
ExclusiveOS: Linux
+
+%if "%{distro}" == "Fedora" && %{distrorelease} >= 12
+# this is a big and dirty work around for plymouth's dependencies on
+# Fedora 12. we don't even need plymouth on nodes.
+Provides: kernel = 2.6.29.1
+%else
+Provides: kernel = %{version}
+%endif
+
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}
-Prereq: %{kernel_prereq}
+Requires: %{kernel_requires}
Conflicts: %{kernel_dot_org_conflicts}
Conflicts: %{package_conflicts}
Conflicts: %{nptl_conflicts}
#
# List the packages used during the kernel build
#
-BuildPreReq: module-init-tools, patch >= 2.5.4, bash >= 2.03, sh-utils, tar
-BuildPreReq: bzip2, findutils, gzip, m4, perl, make >= 3.78, gnupg, diffutils
+BuildRequires: module-init-tools, patch >= 2.5.4, bash >= 2.03, sh-utils, tar
+BuildRequires: bzip2, findutils, gzip, m4, perl, make >= 3.78, gnupg, diffutils
BuildRequires: gcc >= 3.3.3, binutils >= 2.12, redhat-rpm-config
BuildConflicts: rhbuildsys(DiskFree) < 500Mb
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
Patch000: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-%{rpmversion}.bz2
%endif
+Patch010: linux-2.6-010-e1000e-ich10lan.patch
+#Patch011: linux-2.6-011-e1000e-82574L.patch
+Patch017: linux-2.6-017-bnx2.patch
+
+Patch100: linux-2.6-100-build-nonintconfig.patch
+
# Linux-VServer
Patch200: patch-%{rpmversion}-vs%{vsversion}.diff
+Patch220: delta-ptrace-fix01.diff
+Patch230: delta-pivot-fix01.diff
+Patch240: delta-killperm-fix01.diff
+Patch241: delta-vx_rss_avail.patch
# IP sets
Patch250: linux-2.6-250-ipsets.patch
Patch523: linux-2.6-523-raw-sockets.patch
Patch524: linux-2.6-524-peercred.patch
Patch525: linux-2.6-525-sknid-elevator.patch
-Patch526: linux-2.6-526-tun-tap.patch
Patch527: linux-2.6-527-iptables-classify-add-mark.patch
Patch530: linux-2.6-530-built-by-support.patch
Patch540: linux-2.6-540-oom-kill.patch
Patch560: linux-2.6-560-mmconf.patch
Patch570: linux-2.6-570-tagxid.patch
Patch580: linux-2.6-580-show-proc-virt.patch
-# Patch590: linux-2.6-590-chopstix-intern.patch
-# Patch630: linux-2.6-630-sched-fix.patch
+Patch590: linux-2.6-590-dcookies-mm.patch
+Patch591: linux-2.6-591-chopstix-intern.patch
Patch640: linux-2.6-640-netlink-audit-hack.patch
Patch650: linux-2.6-650-hangcheck-reboot.patch
Patch660: linux-2.6-660-nmi-watchdog-default.patch
Patch680: linux-2.6-680-htb-hysteresis-tso.patch
-Patch690: linux-2.6-690-web100.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}
-%define mac80211_version 10.0.4
-Patch600: http://intellinuxwireless.org/mac80211/downloads/mac80211-%{mac80211_version}.tgz
-%define iwlwifi_version 1.2.25
-Patch601: http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-%{iwlwifi_version}.tgz
-%endif
+# Patch690: linux-2.6-690-web100.patch
+Patch700: linux-2.6-700-egre.patch
+Patch710: linux-2.6-710-avoid-64bits-addr-pcmcia.patch
+
+# Ext4
+Patch800: linux-2.6-800-rename-ext4dev-to-ext4.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
+Patch911: linux-2.6-911-linux-2.6-911-perftools-f8-build.patch
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
Linux operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device
input and output, etc.
+Configured with kernelconfig=%{kernelconfig}
%package devel
Summary: Development package for building kernel modules to match the kernel.
Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}
Provides: kernel-smp-devel = %{rpmversion}-%{release}
Provides: kernel-smp-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Prereq: /usr/bin/find
+Requires: /usr/bin/find
%description devel
This package provides kernel headers and makefiles sufficient to build modules
Group: System Environment/Kernel
Provides: kernel = %{version}
Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}xenU
-Prereq: %{kernel_prereq}
+Requires: %{kernel_requires}
Conflicts: %{kernel_dot_org_conflicts}
Conflicts: %{package_conflicts}
Conflicts: %{nptl_conflicts}
Provides: kernel-xenU-devel-%{_target_cpu} = %{rpmversion}-%{release}
Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}xenU
Provides: kernel-devel = %{rpmversion}-%{release}xenU
-Prereq: /usr/sbin/hardlink, /usr/bin/find
+Requires: /usr/sbin/hardlink, /usr/bin/find
%description xenU-devel
This package provides kernel headers and makefiles sufficient to build modules
Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}smp
Provides: kernel-devel = %{rpmversion}-%{release}smp
AutoReqProv: no
-Prereq: /usr/sbin/hardlink, /usr/bin/find
+Requires: /usr/sbin/hardlink, /usr/bin/find
%description uml-devel
This package provides kernel headers and makefiles sufficient to build modules
%ApplyPatch 0
%endif
-# NetNS patch for VINI
+%ApplyPatch 10
+%if 0
+%ApplyPatch 11
+%endif
+%ApplyPatch 17
+
+%ApplyPatch 100
+# vserver patch
%ApplyPatch 200
+%ApplyPatch 220
+%ApplyPatch 230
+%ApplyPatch 240
+%ApplyPatch 241
%ApplyPatch 250
%ApplyPatch 523
%ApplyPatch 524
%ApplyPatch 525
-%ApplyPatch 526
%ApplyPatch 527
%ApplyPatch 530
%ApplyPatch 560
%ApplyPatch 570
%ApplyPatch 580
+%ApplyPatch 590
+%ApplyPatch 591
%ApplyPatch 640
%ApplyPatch 650
%ApplyPatch 660
+%ApplyPatch 680
+%ApplyPatch 700
+%ApplyPatch 710
+%ApplyPatch 800
+
+%if 0
+%ApplyPatch 900
+%ApplyPatch 910
+%endif
# 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}
-# Run the mac80211 stuff in the kernel tree holding the last patch
-tar -xzf %{PATCH600}
-pushd mac80211-%{mac80211_version}
-mac80211_makeflags="KSRC=../$KERNEL_PREVIOUS"
-make $mac80211_makeflags modified
-make $mac80211_makeflags source
-make $mac80211_makeflags patch_kernel
-popd
-
-# Untar iwlwifi in the same place - needs to be compiled later
-tar -xzf %{PATCH601}
-# the install target is broken: first it does not pass the right -b flag to depmod
-# second we do not need to invoke depmod at this stage anyway
-# let's add our own patch/stuff in this Makefile for manual install later on
-pushd iwlwifi-%{iwlwifi_version}
-cat >> Makefile <<EOF
-module-list:
- @echo \$(addprefix \$(DIR),\$(addsuffix .ko,\$(list-m)))
-EOF
-popd
-%endif
-
rm -fr linux-%{kversion}
ln -sf $KERNEL_PREVIOUS linux-%{kversion}
cd linux-%{kversion}
# 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
#Arch=`head -1 .config | cut -b 3-`
echo USING ARCH=$Arch
- make -s ARCH=$Arch oldconfig < /dev/null > /dev/null
+ make -s ARCH=$Arch nonint_oldconfig < /dev/null > /dev/null
make -s ARCH=$Arch %{?_smp_mflags} $MakeTarget
make -s ARCH=$Arch %{?_smp_mflags} modules || exit 1
%if %{headers}
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}*
%endif
-%if %{build_iwlwifi}
- # build the iwlwifi driver
- make -C %{_builddir}/kernel-%{kversion}/iwlwifi-%{iwlwifi_version} ARCH=$Arch \
- KSRC=%{_builddir}/kernel-%{kversion}/linux-%{_target_cpu}-%{kversion}$Flavour
-%endif
-
# Start installing the results
%if "%{_enable_debug_packages}" == "1"
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}
- # install iwlwifi
-# make -C %{_builddir}/kernel-%{kversion}/iwlwifi-%{iwlwifi_version} ARCH=$Arch \
-# KSRC=%{_builddir}/kernel-%{kversion}/linux-%{_target_cpu}-%{kversion}$Flavour \
-# KMISC=$RPM_BUILD_ROOT/lib/modules/$KernelVer/kernel/drivers/net/wireless install
- pushd %{_builddir}/kernel-%{kversion}/iwlwifi-%{iwlwifi_version}
- iwlwifi_dest=$RPM_BUILD_ROOT/lib/modules/$KernelVer/kernel/drivers/net/wireless
- # get the list and location of modules to install - no need to pass KSRC nor anything, let's keep it simple
- iwlwifi_modules=$(make --no-print-directory module-list)
- install -d $iwlwifi_dest
- install -m 644 -c $iwlwifi_modules $iwlwifi_dest
- popd
-%endif
-
# And save the headers/makefiles etc for building modules against
#
# This all looks scary, but the end result is supposed to be:
%endif
%changelog
+* Thu Jul 21 2011 Sapan Bhatia <sapanb@cs.princeton.edu> - linux-2.6-27-36
+- This patch fixes an issue that causes Build to fail on f8.
+
+* Sat Mar 26 2011 S.Çağlar Onur <caglar@verivue.com> - linux-2.6-27-35
+- Use build-planetlab.prg
+
+* Mon Jan 24 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-27-34
+- no semantic change - just fixed specfile for git URL
+
+* Fri Dec 10 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-33
+- Bump to 2.6.27.57
+
+* Thu Dec 02 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-27-32
+- harmless changes in specfile to build on fedora14
+
+* Tue Nov 23 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-31
+- Bump to 2.6.27.56
+
+* Thu Nov 18 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-30
+- Boot on Dell R410
+- Enable some config options
+
+* Fri Oct 29 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-29
+- bump to 2.6.27.55
+
+* Tue Oct 05 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-28
+- bump to 2.6.27.54
+
+* Fri Sep 24 2010 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - linux-2.6-27-27
+- f12 workaround
+
+* Sun Aug 29 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-26
+- the check_stack_guard_page() has, under certain circumstances, side-effects which can not easily be undone in case the vx_rss_avail() fails
+
+* Fri Aug 27 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-25
+- Bump to 2.6.27.53
+
+* Fri Aug 20 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-24
+- Bump to 2.6.27.52
+
+* Wed Aug 18 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-23
+- Pick d7824370e26325c881b665350ce64fb0a4fde24a and 11ac552477e32835cb6970bf0a70c210807f5673 from Linus's tree
+
+* Sun Aug 15 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-22
+- Test 52-rc2
+
+* Fri Aug 13 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-21
+- Bump to 2.6.27.51 and include 2.6.27.51-rc1 patchset to test
+
+* Wed Aug 11 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-20
+- Fix wrong hash
+
+* Tue Aug 10 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-19
+- bump to 2.6.27.50
+
+* Mon Aug 02 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-18
+- bump to 2.6.27.49
+
+* Wed Jul 14 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-17
+- Enable CONFIG_CGROUP_SCHED instead of CONFIG_USER_SCHED for 64bit kernels
+
+* Fri Jul 09 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-16
+- support other Broadcom NetXtreme II BCM 5709 dual GbE variants
+
+* Mon Jul 05 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-15
+- Bump to 2.6.27.48
+
+* Tue Jun 15 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-14
+- fix softlock problems that causes kernel panics
+
+* Thu May 27 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-13
+- Bump to 2.6.27.47
+
+* Wed May 05 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-12
+- support 82567LM-3 Gigabit Network devices
+
+* Wed May 05 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-11
+- Drop VServer version string from package name otherwise RPM refuses to upgrade to newer tagged version saying that 0.36.8.9 > 0.36.4.10
+
+* Tue May 04 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-10
+- Revert to vs2.3.0.36.4
+
+* Tue Apr 27 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-27-9
+- config for wextoolbox OK
+- upgrade to patch-2.6.27.46-vs2.3.0.36.8
+- turn off delta-pivot-fix01.diff (which was tweaked btw)
+
+* Wed Apr 07 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-8
+- chopstix fixes & cleanups
+
+* Fri Apr 02 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-7
+- Update to 2.6.27.46
+
+* Mon Feb 15 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-6
+- support Ext4 in order to boot f12
+- fix "vcontext: pivot_root(): Invalid argument errors" while creating a guest with f12
+
+* Mon Feb 15 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-5
+- Update to 2.6.27.45
+
+* Mon Feb 15 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - linux-2.6-27-4
+- Tagging trunk
+
+* Tue May 12 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-27-3
+- new tuntap patch available but not enabled
+- mac80211 and iwlwifi are now mainstream, no ext. sources anymore
+- new egre patch
+- various changes in the config about netns and scheduler ...
+- gnuradio gets a specific config
+- enable patch about 64bits adresses and cardbus
+
+* Tue Mar 24 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-27-2
+- cleaned up obsolete (2.6.22) configs
+- added gnuradio config links
+- fix for building headers package (remove .cmd files)
+
+* Tue Mar 10 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-27-1
+- untested feature-complete version, but for the scheduler that is still missing
+
* Thu Jan 08 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-22-32
- support building on fedora 10