X-Git-Url: http://git.onelab.eu/?p=linux-2.6.git;a=blobdiff_plain;f=kernel-2.6.spec;h=6f21d2855527169ee0cb50d32575f83d0bf4611d;hp=badd797b46e54a4488e78aa1930b9e58e08dffef;hb=refs%2Fheads%2F22;hpb=31db5e3b28607199209cf9663def531c265ef12f diff --git a/kernel-2.6.spec b/kernel-2.6.spec index badd797b4..6f21d2855 100644 --- a/kernel-2.6.spec +++ b/kernel-2.6.spec @@ -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 33 +%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 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,11 +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 +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 @@ -205,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 @@ -238,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} @@ -262,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 @@ -282,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 @@ -306,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 @@ -314,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. @@ -329,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() \ @@ -354,6 +398,8 @@ KERNEL_PREVIOUS=vanilla %endif %ApplyPatch 10 +%ApplyPatch 15 +%ApplyPatch 17 %ApplyPatch 20 # NetNS patch for VINI @@ -361,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 @@ -381,6 +431,7 @@ KERNEL_PREVIOUS=vanilla %ApplyPatch 525 %ApplyPatch 526 %ApplyPatch 527 +%ApplyPatch 528 %ApplyPatch 530 %ApplyPatch 540 @@ -389,6 +440,7 @@ KERNEL_PREVIOUS=vanilla %ApplyPatch 570 %ApplyPatch 580 %ApplyPatch 590 +%ApplyPatch 592 %ApplyPatch 620 %ApplyPatch 630 %ApplyPatch 640 @@ -398,8 +450,18 @@ KERNEL_PREVIOUS=vanilla %ApplyPatch 670 %endif %ApplyPatch 680 -%ApplyPatch 690 +%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. @@ -408,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} @@ -462,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 @@ -488,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 @@ -516,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 \ @@ -722,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} @@ -743,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 @@ -860,7 +930,72 @@ 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 - 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 - linux-2.6-22-48 +- Support next generation of HP Smart Array SAS/SATA controllers + +* Thu Apr 15 2010 S.Çağlar Onur - 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 - 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 - linux-2.6-22-45 +- add support for ICH10 + +* Fri Feb 19 2010 S.Çağlar Onur - linux-2.6-22-44 +- Disable rebooting + +* Fri Feb 05 2010 S.Çağlar Onur - 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 - linux-2.6-22-42 +- Bonding and multipath things. + +* Thu Jun 11 2009 Thierry Parmentelat - linux-2.6-22-41 +- configs for the embedemu pldistro + +* Wed Jun 03 2009 Sapan Bhatia - linux-2.6-22-40 +- Added patch 700, which implements VXC_PROC_WRITE support + +* Tue May 26 2009 Thierry Parmentelat - linux-2.6-22-39 +- outputs the kernel-headers rpm as backported from 2.6.27 + +* Fri May 15 2009 Thierry Parmentelat - linux-2.6-22-38 +- the pcmcia patch needed to be adapted to 2.6.22 + +* Tue May 12 2009 Thierry Parmentelat - linux-2.6-22-37 +- enable patch about 64bits adresses and cardbus + +* Thu Apr 09 2009 Sapan Bhatia - linux-2.6-22-36 +- Inserting this patch, which I missed in the previous tag. + +* Thu Apr 09 2009 Sapan Bhatia - linux-2.6-22-35 +- I missed this hunk in the previous tag. It's disabled by default. + +* Thu Apr 09 2009 Sapan Bhatia - 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 - linux-2.6-22-33 * Thu Jan 08 2009 Thierry Parmentelat - linux-2.6-22-32