support new igb driver (based on igb-2.0.6)
[linux-2.6.git] / kernel-2.6.spec
index c60ee8a..5c6a155 100644 (file)
@@ -12,6 +12,7 @@ Summary: The Linux kernel (the core of the Linux operating system)
 %define builduml 0
 %define buildxen 0
 %define builddoc 0
 %define builduml 0
 %define buildxen 0
 %define builddoc 0
+%define headers 1
 
 # default is to not build this - to override, use something like
 # kernel-SPECVARS := iwlwifi=1 
 
 # default is to not build this - to override, use something like
 # kernel-SPECVARS := iwlwifi=1 
@@ -24,7 +25,7 @@ Summary: The Linux kernel (the core of the Linux operating system)
 # 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
 # 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 28
+%define taglevel 42
 
 #
 # Polite request for people who spin their own kernel rpms:
 
 #
 # Polite request for people who spin their own kernel rpms:
@@ -43,13 +44,18 @@ Summary: The Linux kernel (the core of the Linux operating system)
 # updated every time the PL kernel is updated.
 %define vini_pl_patch 561
 
 # updated every time the PL kernel is updated.
 %define vini_pl_patch 561
 
-%define release vs%{vsversion}.%{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+#%define updatelevel 1
+
+# Tweak for being able to issue updates with the same kernel version, but with
+# a different package version.
+%define kernelrelease vs%{vsversion}.%{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+%define packagerelease %{kernelrelease}%{?updatelevel:.%{updatelevel}}
 
 %{!?pldistro:%global pldistro planetlab}
 
 %define signmodules 0
 %define make_target bzImage
 
 %{!?pldistro:%global pldistro planetlab}
 
 %define signmodules 0
 %define make_target bzImage
-%define KVERREL %{PACKAGE_VERSION}-%{PACKAGE_RELEASE}
+%define KVERREL %{PACKAGE_VERSION}-%{kernelrelease}
 
 # Override generic defaults with per-arch defaults
 
 
 # Override generic defaults with per-arch defaults
 
@@ -92,6 +98,7 @@ Summary: The Linux kernel (the core of the Linux operating system)
 # scripts use them.
 #
 %define kernel_prereq  fileutils, module-init-tools, initscripts >= 5.83, mkinitrd >= 3.5.5
 # scripts use them.
 #
 %define kernel_prereq  fileutils, module-init-tools, initscripts >= 5.83, mkinitrd >= 3.5.5
+%define _unpackaged_files_terminate_build 0
 
 Vendor: PlanetLab
 Packager: PlanetLab Central <support@planet-lab.org>
 
 Vendor: PlanetLab
 Packager: PlanetLab Central <support@planet-lab.org>
@@ -102,13 +109,13 @@ Name: kernel
 Group: System Environment/Kernel
 License: GPLv2
 Version: %{rpmversion}
 Group: System Environment/Kernel
 License: GPLv2
 Version: %{rpmversion}
-Release: %{release}
+Release: %{packagerelease}
 ExclusiveOS: Linux
 Provides: kernel = %{version}
 Provides: kernel-drm = 4.3.0
 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}
 Prereq: %{kernel_prereq}
 Conflicts: %{kernel_dot_org_conflicts}
 Conflicts: %{package_conflicts}
@@ -144,9 +151,11 @@ Patch000: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-%{rpmversion}.bz2
 %endif
 
 Patch010: linux-2.6-010-e1000e.patch
 %endif
 
 Patch010: linux-2.6-010-e1000e.patch
+Patch015: linux-2.6-015-igb.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
 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
 
 # These are patches picked up from Fedora/RHEL
 Patch100: linux-2.6-100-build-nonintconfig.patch
@@ -169,6 +178,7 @@ 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
 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
+Patch528: linux-2.6-528-enable-stdtun.patch
 Patch530: linux-2.6-530-built-by-support.patch
 Patch540: linux-2.6-540-oom-kill.patch
 Patch550: linux-2.6-550-raise-default-nfile-ulimit.patch
 Patch530: linux-2.6-530-built-by-support.patch
 Patch540: linux-2.6-540-oom-kill.patch
 Patch550: linux-2.6-550-raise-default-nfile-ulimit.patch
@@ -176,14 +186,23 @@ 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
 Patch570: linux-2.6-570-tagxid.patch
 Patch580: linux-2.6-580-show-proc-virt.patch
 Patch590: linux-2.6-590-chopstix-intern.patch
+Patch592: linux-2.6-592-GC-dcookies-nosleep.patch
 Patch620: linux-2.6-620-kdb.patch
 Patch630: linux-2.6-630-sched-fix.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
 Patch620: linux-2.6-620-kdb.patch
 Patch630: linux-2.6-630-sched-fix.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
-%if "%{distroname}" == "f9"
+%if "%{distroname}" == "f9" || "%{distroname}" == "f10"
 Patch670: linux-2.6-670-gcc43.patch
 %endif
 Patch670: linux-2.6-670-gcc43.patch
 %endif
+Patch680: linux-2.6-680-htb-hysteresis-tso.patch
+Patch690: linux-2.6-690-web100.patch
+Patch700: linux-2.6-700-fperm.patch
+Patch710: linux-2.6-710-avoid-64bits-addr-pcmcia.patch
+# This one is a backport from usptream.
+Patch720: linux-2.6-720-bonding-layer23.patch
+Patch721: linux-2.6-721-bonding-layer3.patch
+Patch722: linux-2.6-722-bonding-rr.patch
 
 # See also the file named 'sources' here for the related checksums
 # NOTE. iwlwifi should be in-kernel starting from 2.6.24
 
 # See also the file named 'sources' here for the related checksums
 # NOTE. iwlwifi should be in-kernel starting from 2.6.24
@@ -207,9 +226,9 @@ input and output, etc.
 Summary: Development package for building kernel modules to match the kernel.
 Group: System Environment/Kernel
 AutoReqProv: no
 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
 Prereq: /usr/bin/find
 
 %description devel
@@ -234,7 +253,7 @@ Summary: The Linux kernel compiled for unprivileged Xen guest VMs
 
 Group: System Environment/Kernel
 Provides: kernel = %{version}
 
 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}
 Prereq: %{kernel_prereq}
 Conflicts: %{kernel_dot_org_conflicts}
 Conflicts: %{package_conflicts}
@@ -258,9 +277,9 @@ the guest0 domain.
 Summary: Development package for building kernel modules to match the kernel.
 Group: System Environment/Kernel
 AutoReqProv: no
 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
 Prereq: /usr/sbin/hardlink, /usr/bin/find
 
 %description xenU-devel
@@ -278,9 +297,9 @@ This package includes a user mode version of the Linux kernel.
 %package uml-devel
 Summary: Development package for building kernel modules to match the UML kernel.
 Group: System Environment/Kernel
 %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
 
 AutoReqProv: no
 Prereq: /usr/sbin/hardlink, /usr/bin/find
 
@@ -302,7 +321,7 @@ Summary: A placeholder RPM that provides kernel and kernel-drm
 Group: System Environment/Kernel
 Provides: kernel = %{version}
 Provides: kernel-drm = 4.3.0
 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
 
 %description vserver
 VServers do not require and cannot use kernels, but some RPMs have
@@ -310,6 +329,12 @@ implicit or explicit dependencies on the "kernel" package
 (e.g. tcpdump). This package installs no files but provides the
 necessary dependencies to make rpm and yum happy.
 
 (e.g. tcpdump). This package installs no files but provides the
 necessary dependencies to make rpm and yum happy.
 
+%package headers
+Summary: Kernel header
+Group: System Environment/Kernel
+
+%description headers
+This package contains the sanitized kernel headers.
 
 %prep
 # First we unpack the kernel tarball.
 
 %prep
 # First we unpack the kernel tarball.
@@ -325,6 +350,10 @@ else
   cd kernel-%{kversion}
 fi
 
   cd kernel-%{kversion}
 fi
 
+%if "0%{updatelevel}"
+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() \
 KERNEL_PREVIOUS=vanilla
 # Dark RPM-magic to apply each patch to a hardlinked copy of the tree.
 %define ApplyPatch() \
@@ -350,6 +379,7 @@ KERNEL_PREVIOUS=vanilla
 %endif
 
 %ApplyPatch 10
 %endif
 
 %ApplyPatch 10
+%ApplyPatch 15
 %ApplyPatch 20
 
 # NetNS patch for VINI
 %ApplyPatch 20
 
 # NetNS patch for VINI
@@ -357,6 +387,7 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 30
 %endif
 %ApplyPatch 40
 %ApplyPatch 30
 %endif
 %ApplyPatch 40
+%ApplyPatch 50
 
 %ApplyPatch 100
 
 
 %ApplyPatch 100
 
@@ -377,6 +408,7 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 525
 %ApplyPatch 526
 %ApplyPatch 527
 %ApplyPatch 525
 %ApplyPatch 526
 %ApplyPatch 527
+%ApplyPatch 528
 
 %ApplyPatch 530
 %ApplyPatch 540
 
 %ApplyPatch 530
 %ApplyPatch 540
@@ -385,14 +417,21 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 570
 %ApplyPatch 580
 %ApplyPatch 590
 %ApplyPatch 570
 %ApplyPatch 580
 %ApplyPatch 590
+%ApplyPatch 592
 %ApplyPatch 620
 %ApplyPatch 630
 %ApplyPatch 640
 %ApplyPatch 650
 %ApplyPatch 660
 %ApplyPatch 620
 %ApplyPatch 630
 %ApplyPatch 640
 %ApplyPatch 650
 %ApplyPatch 660
-%if "%{distroname}" == "f9"
+%if "%{distroname}" == "f9" || "%{distroname}" == "f10"
 %ApplyPatch 670
 %endif
 %ApplyPatch 670
 %endif
+%ApplyPatch 680
+%ApplyPatch 700
+%ApplyPatch 710
+%ApplyPatch 720
+%ApplyPatch 721
+%ApplyPatch 722
 
 
 # NetNS conflict-resolving patch for VINI. Will work with patch vini_pl_patch-1 but may
 
 
 # NetNS conflict-resolving patch for VINI. Will work with patch vini_pl_patch-1 but may
@@ -465,11 +504,11 @@ BuildKernel() {
       DevelLink=
     fi
 
       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
     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
 
 
     # and now to start the build process
 
@@ -482,6 +521,11 @@ BuildKernel() {
     make -s ARCH=$Arch nonint_oldconfig > /dev/null
     make -s ARCH=$Arch %{?_smp_mflags} $MakeTarget
     make -s ARCH=$Arch %{?_smp_mflags} modules || exit 1
     make -s ARCH=$Arch nonint_oldconfig > /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
 
 %if %{build_iwlwifi}
     # build the iwlwifi driver
@@ -716,7 +760,7 @@ if echo $rootdev |grep -q /dev/mapper 2>/dev/null ; then
     fi
 fi
 
     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}
 #/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}
@@ -739,7 +783,10 @@ popd > /dev/null
 
 # ask for a reboot
 mkdir -p /etc/planetlab
 
 # ask for a reboot
 mkdir -p /etc/planetlab
+
+%if "%{updatelevel}"==""
 touch /etc/planetlab/update-reboot
 touch /etc/planetlab/update-reboot
+%endif
 
 %post devel
 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
 
 %post devel
 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
@@ -854,7 +901,56 @@ rm -f /lib/modules/%{KVERREL}uml/modules.*
 %dir %{_datadir}/doc/kernel-doc-%{kversion}
 %endif
 
 %dir %{_datadir}/doc/kernel-doc-%{kversion}
 %endif
 
+%if %{headers}
+%files headers
+%defattr(-,root,root)
+%dir %{_includedir}
+%{_includedir}/*
+%endif
+
 %changelog
 %changelog
+* Fri Jun 26 2009 Daniel Hokka Zakrisson <daniel@hozac.com> - linux-2.6-22-42
+- Bonding and multipath things.
+
+* Thu Jun 11 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-22-41
+- configs for the embedemu pldistro
+
+* Wed Jun 03 2009 Sapan Bhatia <sapanb@cs.princeton.edu> - linux-2.6-22-40
+- Added patch 700, which implements VXC_PROC_WRITE support
+
+* Tue May 26 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-22-39
+- outputs the kernel-headers rpm as backported from 2.6.27
+
+* Fri May 15 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-22-38
+- the pcmcia patch needed to be adapted to 2.6.22
+
+* Tue May 12 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-22-37
+- enable patch about 64bits adresses and cardbus
+
+* Thu Apr 09 2009 Sapan Bhatia <sapanb@cs.princeton.edu> - linux-2.6-22-36
+- Inserting this patch, which I missed in the previous tag.
+
+* Thu Apr 09 2009 Sapan Bhatia <sapanb@cs.princeton.edu> - linux-2.6-22-35
+- I missed this hunk in the previous tag. It's disabled by default.
+
+* Thu Apr 09 2009 Sapan Bhatia <sapanb@cs.princeton.edu> - linux-2.6-22-34
+- Tagging after having tested the latest kernel in branch for a couple of days.
+
+* Mon Feb 23 2009 Sapan Bhatia <sapanb@cs.princeton.edu> - linux-2.6-22-33
+
+* Thu Jan 08 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-22-32
+- support building on fedora 10
+
+* Tue Dec 02 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - linux-2.6-22-31
+- add patches for m-lab and drl
+
+* Tue Nov 11 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - linux-2.6-22-30
+- Use Intel's e1000e driver.
+
+* Thu Oct 02 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-22-29
+- added drivers for OPTION's globetrotter (gt 3g+ emea) umts cards
+- + cleanup outdated configs
+
 * Wed Sep 17 2008 Sapan Bhatia <sapanb@cs.princeton.edu> - linux-2.6-22-28
 - Recovering a hunk that I accidentally ommited out of the last commit. Should not entail retesting, because the commits
 - were unrelated.
 * Wed Sep 17 2008 Sapan Bhatia <sapanb@cs.princeton.edu> - linux-2.6-22-28
 - Recovering a hunk that I accidentally ommited out of the last commit. Should not entail retesting, because the commits
 - were unrelated.