diff options
Diffstat (limited to 'kernel.spec')
-rw-r--r-- | kernel.spec | 83 |
1 files changed, 81 insertions, 2 deletions
diff --git a/kernel.spec b/kernel.spec index 445da3db8..5245c3250 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -546,6 +546,7 @@ Source0: ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-%{kversion}.tar.bz2 Source1: compat-wireless-%{cwversion}.tar.bz2 Source15: merge.pl +Source16: mod-extra.list Source19: Makefile.release Source20: Makefile.config @@ -896,6 +897,24 @@ against the %{?2:%{2} }kernel package.\ %{nil} # +# This macro creates a kernel-<subpackage>-modules-extra package. +# %%kernel_modules-extra_package <subpackage> <pretty-name> +# +%define kernel_modules-extra_package() \ +%package %{?1:%{1}-}modules-extra\ +Summary: Extra kernel modules to match the %{?2:%{2} }kernel\ +Group: System Environment/Kernel\ +Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}\ +Provides: kernel-modules-extra-%{_target_cpu} = %{version}-%{release}%{?1:.%{1}}\ +Provides: kernel-modules-extra = %{version}-%{release}%{?1:.%{1}}\ +Provides: kernel-modules-extra-uname-r = %{KVERREL}%{?1:.%{1}}\ +Requires: kernel%{?1:-%{1}}-%{_target_cpu} = %{version}-%{release}%{?1:.%{1}}\ +AutoReqProv: no\ +%description -n kernel%{?variant}%{?1:-%{1}}-modules-extra\ +This package provides less commonly used kernel modules for the %{?2:%{2} }kernel package.\ +%{nil} + +# # This macro creates a kernel-<subpackage> and its -devel and -debuginfo too. # %%define variant_summary The Linux kernel compiled for <configuration> # %%kernel_variant_package [-n <pretty-name>] <subpackage> @@ -906,12 +925,14 @@ Summary: %{variant_summary}\ Group: System Environment/Kernel\ %kernel_reqprovconf\ %{expand:%%kernel_devel_package %1 %{!?-n:%1}%{?-n:%{-n*}}}\ +%{expand:%%kernel_modules-extra_package %1 %{!?-n:%1}%{?-n:%{-n*}}}\ %{expand:%%kernel_debuginfo_package %1}\ %{nil} # First the auxiliary packages of the main kernel package. %kernel_devel_package +%kernel_modules-extra_package %kernel_debuginfo_package @@ -1635,6 +1656,50 @@ BuildKernel() { rm -f modinfo modnames + pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/ + rm -rf modnames + find . -name "*.ko" -type f > modnames + # Look through all of the modules, and throw any that have a dependency in + # our list into the list as well. + rm -rf dep.list dep2.list + cp %{SOURCE16} . + for dep in `cat modnames` + do + depends=`modinfo $dep | grep depends| cut -f2 -d":" | sed -e 's/^[ \t]*//'` + [ -z "$depends" ] && continue; + for mod in `echo $depends | sed -e 's/,/ /g'` + do + match=`grep "^$mod.ko" mod-extra.list` ||: + if [ -z "$match" ] + then + continue + else + echo $dep >> dep.list + fi + done + done + + for mod in `cat mod-extra.list` + do + # get the path for the module + modpath=`grep /$mod modnames` + [ -z "$modpath" ] && continue; + echo $modpath >> dep.list + done + + sort -u dep.list > dep2.list + + # now move the modules into the extra/ directory + for mod in `cat dep2.list` + do + newpath=`dirname $mod | sed -e 's/kernel\//extra\//'` + mkdir -p $newpath + mv $mod $newpath + done + + rm modnames mod-extra.list dep.list dep2.list + popd + # remove files that will be auto generated by depmod at rpm -i time for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap do @@ -1892,6 +1957,14 @@ then\ fi\ %{nil} +# +# This macro defines a %%post script for a kernel*-modules-extra package. +# %%kernel_modules-extra_post [<subpackage>] +# +%define kernel_modules_extra_post() \ +%{expand:%%post %{?1:%{1}-}modules-extra}\ +/sbin/depmod -a %{KVERREL}%{?1:.%{1}}\ +%{nil} # This macro defines a %%posttrans script for a kernel package. # %%kernel_variant_posttrans [<subpackage>] @@ -1910,6 +1983,7 @@ fi\ # %define kernel_variant_post(v:r:) \ %{expand:%%kernel_devel_post %{?-v*}}\ +%{expand:%%kernel_modules_extra_post %{?-v*}}\ %{expand:%%kernel_variant_posttrans %{?-v*}}\ %{expand:%%post %{?-v*}}\ %{-r:\ @@ -2051,7 +2125,6 @@ fi /lib/modules/%{KVERREL}%{?2:.%{2}}/kernel\ /lib/modules/%{KVERREL}%{?2:.%{2}}/build\ /lib/modules/%{KVERREL}%{?2:.%{2}}/source\ -/lib/modules/%{KVERREL}%{?2:.%{2}}/extra\ /lib/modules/%{KVERREL}%{?2:.%{2}}/updates\ %if %{with_backports}\ /lib/modules/%{KVERREL}%{?2:.%{2}}/backports\ @@ -2065,6 +2138,9 @@ fi %{expand:%%files %{?2:%{2}-}devel}\ %defattr(-,root,root)\ /usr/src/kernels/%{KVERREL}%{?2:.%{2}}\ +%{expand:%%files %{?2:%{2}-}modules-extra}\ +%defattr(-,root,root)\ +/lib/modules/%{KVERREL}%{?2:.%{2}}/extra\ %if %{with_debuginfo}\ %ifnarch noarch\ %{expand:%%files -f debuginfo%{?2}.list %{?2:%{2}-}debuginfo}\ @@ -2096,6 +2172,9 @@ fi # ||----w | # || || %changelog +* Tue Nov 29 2011 Josh Boyer <jwboyer@redhat.com> +- Add modules-extra subpackage + * Tue Nov 29 2011 Josh Boyer <jwboyer@redhat.com> 3.2.0-0.rc3.git1.1 - Linux 3.2-rc3-git1 |