Setting tag linux-2.6-22-50
[linux-2.6.git] / kernel-2.6.spec
index b6755eb..6f21d28 100644 (file)
@@ -1,8 +1,3 @@
-#
-# $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.
@@ -12,19 +7,29 @@ Summary: The Linux kernel (the core of the Linux operating system)
 %define builduml 0
 %define buildxen 0
 %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 37
+%define taglevel 50
 
 #
 # Polite request for people who spin their own kernel rpms:
@@ -43,13 +48,19 @@ Summary: The Linux kernel (the core of the Linux operating system)
 # 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
 
@@ -97,19 +108,19 @@ Summary: The Linux kernel (the core of the Linux operating system)
 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
 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}
@@ -130,13 +141,13 @@ 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
@@ -145,13 +156,19 @@ Patch000: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-%{rpmversion}.bz2
 %endif
 
 Patch010: linux-2.6-010-e1000e.patch
+Patch015: linux-2.6-015-igb.patch
+Patch017: linux-2.6-017-bnx2.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
@@ -170,6 +187,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
+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
@@ -188,13 +206,26 @@ Patch670: linux-2.6-670-gcc43.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
+
+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
@@ -207,15 +238,16 @@ BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
 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
@@ -240,7 +272,7 @@ Summary: The Linux kernel compiled for unprivileged Xen guest VMs
 
 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}
@@ -264,9 +296,9 @@ the guest0 domain.
 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
@@ -284,9 +316,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
-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
 
@@ -308,7 +340,7 @@ Summary: A placeholder RPM that provides kernel and kernel-drm
 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
@@ -316,6 +348,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.
 
+%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.
@@ -331,6 +369,10 @@ else
   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() \
@@ -356,6 +398,8 @@ KERNEL_PREVIOUS=vanilla
 %endif
 
 %ApplyPatch 10
+%ApplyPatch 15
+%ApplyPatch 17
 %ApplyPatch 20
 
 # NetNS patch for VINI
@@ -363,9 +407,13 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 30
 %endif
 %ApplyPatch 40
+%ApplyPatch 50
 
 %ApplyPatch 100
 
+%ApplyPatch 150
+%ApplyPatch 151
+
 %ApplyPatch 200
 %ApplyPatch 210
 %ApplyPatch 220
@@ -383,6 +431,7 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 525
 %ApplyPatch 526
 %ApplyPatch 527
+%ApplyPatch 528
 
 %ApplyPatch 530
 %ApplyPatch 540
@@ -401,9 +450,18 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 670
 %endif
 %ApplyPatch 680
-%ApplyPatch 690
-#%ApplyPatch 710
+%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.
@@ -412,7 +470,7 @@ KERNEL_PREVIOUS=vanilla
 %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}
@@ -466,20 +524,20 @@ BuildKernel() {
 
     # 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
 
@@ -492,8 +550,14 @@ 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
+%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}*
+    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
@@ -520,7 +584,7 @@ BuildKernel() {
     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 \
@@ -726,7 +790,7 @@ if echo $rootdev |grep -q /dev/mapper 2>/dev/null ; then
     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}
@@ -747,9 +811,11 @@ pushd /boot > /dev/null ; {
 }
 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
@@ -864,7 +930,60 @@ rm -f /lib/modules/%{KVERREL}uml/modules.*
 %dir %{_datadir}/doc/kernel-doc-%{kversion}
 %endif
 
+%if %{headers}
+%files headers
+%defattr(-,root,root)
+%dir %{_includedir}
+%{_includedir}/*
+%endif
+
 %changelog
+* Mon Jan 24 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - linux-2.6-22-50
+- no semantic change - just fixed specfile for git URL, and pull from onelab.eu
+
+* 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.
+
+* 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