change the ordering for now, I'll alter vserver patch later
[linux-2.6.git] / kernel-2.6.spec
index 6e8c275..c99eadc 100644 (file)
@@ -12,19 +12,23 @@ Summary: The Linux kernel (the core of the Linux operating system)
 %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 
-# 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 30
+%define taglevel 22
 
 #
 # Polite request for people who spin their own kernel rpms:
@@ -32,24 +36,26 @@ Summary: The Linux kernel (the core of the Linux operating system)
 # that the kernel isn't the stock distribution kernel, for example by
 # adding some text to the end of the version number.
 #
-%define sublevel 22
-%define patchlevel 19
+%define sublevel 27
+%define patchlevel 51
 %define kversion 2.6.%{sublevel}
 %define rpmversion 2.6.%{sublevel}%{?patchlevel:.%{patchlevel}}
 
-%define vsversion 2.3.0.34
+%define vsversion 2.3.0.36.4
 
 # Will go away when VServer supports NetNS in mainline. Currently, it must be 
 # 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
+#%if "%{distro}" == "Fedora" && %{distrorelease} >= 13
+#%define KVERREL %{version}-%{release}
+#%else
 %define KVERREL %{PACKAGE_VERSION}-%{PACKAGE_RELEASE}
+#%endif
 
 # Override generic defaults with per-arch defaults
 
@@ -85,7 +91,7 @@ Summary: The Linux kernel (the core of the Linux operating system)
 #
 
 # MEF commented out
-# %define xen_conflicts glibc < 2.3.5-1
+#define xen_conflicts glibc < 2.3.5-1
 
 #
 # Packages that need to be installed before the kernel is, because the %post
@@ -129,13 +135,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
@@ -143,18 +149,18 @@ Source30: %{pldistro}-%{kversion}-i686-xenU.config
 Patch000: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-%{rpmversion}.bz2
 %endif
 
-Patch010: linux-2.6-010-e1000e.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
+Patch010: linux-2.6-010-e1000e-ich10lan.patch
+Patch017: linux-2.6-017-bnx2.patch
 
-# These are patches picked up from Fedora/RHEL
 Patch100: linux-2.6-100-build-nonintconfig.patch
 
 # Linux-VServer
 Patch200: patch-%{rpmversion}-vs%{vsversion}.diff
-Patch210: linux-2.6-210-vserver-cpu-sched.patch
 Patch220: delta-ptrace-fix01.diff
+Patch230: delta-pivot-fix01.diff
+Patch240: delta-killperm-fix01.diff
+
+Patch241: 52.patch
 
 # IP sets
 Patch250: linux-2.6-250-ipsets.patch
@@ -167,7 +173,6 @@ Patch522: linux-2.6-522-iptables-connection-tagging.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
@@ -175,26 +180,21 @@ Patch550: linux-2.6-550-raise-default-nfile-ulimit.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
-Patch620: linux-2.6-620-kdb.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
-%if "%{distroname}" == "f9"
-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-egre.patch
+Patch710: linux-2.6-710-avoid-64bits-addr-pcmcia.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
+# 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
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
 
@@ -203,6 +203,7 @@ 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.
+Configured with kernelconfig=%{kernelconfig}
 
 %package devel
 Summary: Development package for building kernel modules to match the kernel.
@@ -311,6 +312,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.
@@ -351,19 +358,17 @@ KERNEL_PREVIOUS=vanilla
 %endif
 
 %ApplyPatch 10
-%ApplyPatch 20
-
-# NetNS patch for VINI
-%if 0%{?with_netns}
-%ApplyPatch 30
-%endif
-%ApplyPatch 40
+%ApplyPatch 17
 
 %ApplyPatch 100
 
+# vserver patch
 %ApplyPatch 200
-%ApplyPatch 210
 %ApplyPatch 220
+%ApplyPatch 230
+%ApplyPatch 240
+
+%ApplyPatch 241
 
 %ApplyPatch 250
 
@@ -376,7 +381,6 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 523
 %ApplyPatch 524
 %ApplyPatch 525
-%ApplyPatch 526
 %ApplyPatch 527
 
 %ApplyPatch 530
@@ -386,16 +390,20 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 570
 %ApplyPatch 580
 %ApplyPatch 590
-%ApplyPatch 620
-%ApplyPatch 630
+%ApplyPatch 591
 %ApplyPatch 640
 %ApplyPatch 650
 %ApplyPatch 660
-%if "%{distroname}" == "f9"
-%ApplyPatch 670
-%endif
 %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.
@@ -404,29 +412,6 @@ KERNEL_PREVIOUS=vanilla
 %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}
@@ -458,11 +443,11 @@ 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
@@ -481,14 +466,13 @@ BuildKernel() {
     #Arch=`head -1 .config | cut -b 3-`
     echo USING ARCH=$Arch
 
-    make -s ARCH=$Arch nonint_oldconfig > /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 %{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
+%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
 
     # Start installing the results
@@ -512,20 +496,6 @@ 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}
-    # 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:
@@ -566,12 +536,12 @@ BuildKernel() {
     cp -a acpi config keys linux math-emu media mtd net pcmcia rdma rxrpc scsi sound video asm asm-generic $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     cp -a `readlink asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     if [ "$Arch" = "x86_64" ]; then
-      cp -a asm-i386 $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
+      cp -a asm-x86 $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     fi
 %if %{buildxen}
     if [ "$Flavour" = "xenU" ]; then
       cp -a xen $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
-      cp -a asm-i386 $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
+      cp -a asm-x86 $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     fi
 %endif
 %if %{builduml}
@@ -856,7 +826,96 @@ 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
+* 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
+
+* 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.
 
@@ -1081,3 +1140,5 @@ rm -f /lib/modules/%{KVERREL}uml/modules.*
 - Sync with FC5's 2.6.16 kernel.
 - Update Tux & Exec-shield to latest.
 
+
+%define module_current_branch 22