Make the branch compile with fixing following error:
[linux-2.6.git] / kernel-2.6.spec
index b6755eb..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 37
+%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
 
@@ -103,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}
@@ -145,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
@@ -170,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
@@ -188,8 +197,12 @@ Patch670: linux-2.6-670-gcc43.patch
 %endif
 Patch680: linux-2.6-680-htb-hysteresis-tso.patch
 Patch690: linux-2.6-690-web100.patch
 %endif
 Patch680: linux-2.6-680-htb-hysteresis-tso.patch
 Patch690: linux-2.6-690-web100.patch
-# this patch causes mysterious errors when building madwifi on this 2.6.22 kernel..
-#Patch710: linux-2.6-710-avoid-64bits-addr-pcmcia.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
@@ -213,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
@@ -240,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}
@@ -264,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
@@ -284,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
 
@@ -308,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
@@ -316,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.
@@ -331,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() \
@@ -356,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
@@ -363,6 +387,7 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 30
 %endif
 %ApplyPatch 40
 %ApplyPatch 30
 %endif
 %ApplyPatch 40
+%ApplyPatch 50
 
 %ApplyPatch 100
 
 
 %ApplyPatch 100
 
@@ -383,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
@@ -401,8 +427,11 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 670
 %endif
 %ApplyPatch 680
 %ApplyPatch 670
 %endif
 %ApplyPatch 680
-%ApplyPatch 690
-#%ApplyPatch 710
+%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
@@ -475,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
 
@@ -492,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
@@ -726,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}
@@ -749,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
@@ -864,7 +901,29 @@ 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
 
 * Tue May 12 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-22-37
 - enable patch about 64bits adresses and cardbus