[PATCH] build kernel-firmware rpms again

2009-07-09 Thread Martin Dengler
---
 olpc/SPECS/kernel-xo1.5.spec |   37 +++--
 olpc/SPECS/kernel-xo1.spec   |   37 +++--
 2 files changed, 70 insertions(+), 4 deletions(-)

diff --git a/olpc/SPECS/kernel-xo1.5.spec b/olpc/SPECS/kernel-xo1.5.spec
index 32f2c3f..67615ac 100644
--- a/olpc/SPECS/kernel-xo1.5.spec
+++ b/olpc/SPECS/kernel-xo1.5.spec
@@ -14,6 +14,8 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 %define builddoc 0
 %define buildkdump 0
 %define buildheaders 1
+# kernel-firmware
+%define with_firmware  %{?_with_firmware:  1} %{?!_with_firmware:  0}
 %define _enable_debug_packages 0
 
 # Versions of various parts
@@ -54,6 +56,7 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 %define buildxen 0
 %define buildkdump 0
 %define all_arch_configs $RPM_SOURCE_DIR/kernel-xo1.5-custom.config
+%define with_firmware 1
 %endif
 # Don't build 586 kernels for RHEL builds.
 %if 0%{?rhel}
@@ -73,6 +76,7 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 %define buildup 0
 %define buildheaders 0
 %define all_arch_configs $RPM_SOURCE_DIR/kernel-%{kversion}-*.config
+%define with_firmware 0
 %endif
 
 # kdump only builds on i686, x86_64, ppc64 ...
@@ -215,7 +219,7 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 # Packages that need to be installed before the kernel is, because the %post
 # scripts use them.
 #
-%define kernel_prereq  fileutils, module-init-tools, initscripts = 8.11.1-1, 
dracut, dracut-modules-olpc = 0.2.0
+%define kernel_prereq  fileutils, module-init-tools, initscripts = 8.11.1-1, 
kernel-firmware = %{rpmversion}-%{pkg_release}, dracut, dracut-modules-olpc = 
0.2.0
 
 Name: kernel
 Group: System Environment/Kernel
@@ -323,6 +327,21 @@ header files define structures and constants that are 
needed for
 building most standard programs and are also needed for rebuilding the
 glibc package.
 
+
+%package firmware
+Summary: Firmware files used by the Linux kernel
+Group: Development/System
+# This is... complicated.
+# Look at the WHENCE file.
+License: GPL+ and GPLv2+ and MIT and Redistributable, no modification permitted
+%if x%{?variant} != x
+Provides: kernel-firmware = %{rpmversion}-%{pkg_release}
+%endif
+%description firmware
+Kernel-firmware includes firmware files required for some devices to
+operate.
+
+
 %prep
 #if a rhel kernel, apply the rhel config options
 %if 0%{?rhel}
@@ -518,7 +537,9 @@ Config=kernel-xo1.5-custom.config
 fi
 
 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
-make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install 
KERNELRELEASE=$KernelVer
+# Override $(mod-fw) because we don't want it to install any firmware
+# We'll do that ourselves with 'make firmware_install'
+make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install 
KERNELRELEASE=$KernelVer mod-fw=
 
 # And save the headers/makefiles etc for building modules against
 #
@@ -805,6 +826,11 @@ rm -f $RPM_BUILD_ROOT/usr/include/asm*/atomic.h
 rm -f $RPM_BUILD_ROOT/usr/include/asm*/io.h
 rm -f $RPM_BUILD_ROOT/usr/include/asm*/irq.h
 %endif
+
+%if %{with_firmware}
+make INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware firmware_install
+%endif
+
 ###
 ### clean
 ###
@@ -888,6 +914,13 @@ fi
 /usr/include/*
 %endif
 
+%if %{with_firmware}
+%files firmware
+%defattr(-,root,root)
+/lib/firmware/*
+%doc linux-%{kversion}.%{_target_cpu}/firmware/WHENCE
+%endif
+
 # only some architecture builds need kernel-doc
 
 %if %{builddoc}
diff --git a/olpc/SPECS/kernel-xo1.spec b/olpc/SPECS/kernel-xo1.spec
index feb2b65..46b3f5d 100644
--- a/olpc/SPECS/kernel-xo1.spec
+++ b/olpc/SPECS/kernel-xo1.spec
@@ -14,6 +14,8 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 %define builddoc 0
 %define buildkdump 0
 %define buildheaders 1
+# kernel-firmware
+%define with_firmware  %{?_with_firmware:  1} %{?!_with_firmware:  0}
 %define _enable_debug_packages 0
 
 # Versions of various parts
@@ -54,6 +56,7 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 %define buildxen 0
 %define buildkdump 0
 %define all_arch_configs $RPM_SOURCE_DIR/kernel-xo1-custom.config
+%define with_firmware 1
 %endif
 # Don't build 586 kernels for RHEL builds.
 %if 0%{?rhel}
@@ -73,6 +76,7 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 %define buildup 0
 %define buildheaders 0
 %define all_arch_configs $RPM_SOURCE_DIR/kernel-%{kversion}-*.config
+%define with_firmware 0
 %endif
 
 # kdump only builds on i686, x86_64, ppc64 ...
@@ -215,7 +219,7 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 # Packages that need to be installed before the kernel is, because the %post
 # scripts use them.
 #
-%define kernel_prereq  fileutils, module-init-tools, initscripts = 8.11.1-1
+%define kernel_prereq  fileutils, module-init-tools, initscripts = 8.11.1-1, 
kernel-firmware = %{rpmversion}-%{pkg_release}
 
 Name: kernel
 

Re: [PATCH] build kernel-firmware rpms again

2009-07-09 Thread Deepak Saxena

applied, tnx.

~Deepak

On Jul 09 2009, at 17:17, Martin Dengler was caught saying:
 ---
  olpc/SPECS/kernel-xo1.5.spec |   37 +++--
  olpc/SPECS/kernel-xo1.spec   |   37 +++--
  2 files changed, 70 insertions(+), 4 deletions(-)
 
 diff --git a/olpc/SPECS/kernel-xo1.5.spec b/olpc/SPECS/kernel-xo1.5.spec
 index 32f2c3f..67615ac 100644
 --- a/olpc/SPECS/kernel-xo1.5.spec
 +++ b/olpc/SPECS/kernel-xo1.5.spec
 @@ -14,6 +14,8 @@ Summary: The Linux kernel (the core of the Linux operating 
 system)
  %define builddoc 0
  %define buildkdump 0
  %define buildheaders 1
 +# kernel-firmware
 +%define with_firmware  %{?_with_firmware:  1} %{?!_with_firmware:  0}
  %define _enable_debug_packages 0
  
  # Versions of various parts
 @@ -54,6 +56,7 @@ Summary: The Linux kernel (the core of the Linux operating 
 system)
  %define buildxen 0
  %define buildkdump 0
  %define all_arch_configs $RPM_SOURCE_DIR/kernel-xo1.5-custom.config
 +%define with_firmware 1
  %endif
  # Don't build 586 kernels for RHEL builds.
  %if 0%{?rhel}
 @@ -73,6 +76,7 @@ Summary: The Linux kernel (the core of the Linux operating 
 system)
  %define buildup 0
  %define buildheaders 0
  %define all_arch_configs $RPM_SOURCE_DIR/kernel-%{kversion}-*.config
 +%define with_firmware 0
  %endif
  
  # kdump only builds on i686, x86_64, ppc64 ...
 @@ -215,7 +219,7 @@ Summary: The Linux kernel (the core of the Linux 
 operating system)
  # Packages that need to be installed before the kernel is, because the %post
  # scripts use them.
  #
 -%define kernel_prereq  fileutils, module-init-tools, initscripts = 
 8.11.1-1, dracut, dracut-modules-olpc = 0.2.0
 +%define kernel_prereq  fileutils, module-init-tools, initscripts = 
 8.11.1-1, kernel-firmware = %{rpmversion}-%{pkg_release}, dracut, 
 dracut-modules-olpc = 0.2.0
  
  Name: kernel
  Group: System Environment/Kernel
 @@ -323,6 +327,21 @@ header files define structures and constants that are 
 needed for
  building most standard programs and are also needed for rebuilding the
  glibc package.
  
 +
 +%package firmware
 +Summary: Firmware files used by the Linux kernel
 +Group: Development/System
 +# This is... complicated.
 +# Look at the WHENCE file.
 +License: GPL+ and GPLv2+ and MIT and Redistributable, no modification 
 permitted
 +%if x%{?variant} != x
 +Provides: kernel-firmware = %{rpmversion}-%{pkg_release}
 +%endif
 +%description firmware
 +Kernel-firmware includes firmware files required for some devices to
 +operate.
 +
 +
  %prep
  #if a rhel kernel, apply the rhel config options
  %if 0%{?rhel}
 @@ -518,7 +537,9 @@ Config=kernel-xo1.5-custom.config
  fi
  
  mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
 -make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install 
 KERNELRELEASE=$KernelVer
 +# Override $(mod-fw) because we don't want it to install any firmware
 +# We'll do that ourselves with 'make firmware_install'
 +make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install 
 KERNELRELEASE=$KernelVer mod-fw=
  
  # And save the headers/makefiles etc for building modules against
  #
 @@ -805,6 +826,11 @@ rm -f $RPM_BUILD_ROOT/usr/include/asm*/atomic.h
  rm -f $RPM_BUILD_ROOT/usr/include/asm*/io.h
  rm -f $RPM_BUILD_ROOT/usr/include/asm*/irq.h
  %endif
 +
 +%if %{with_firmware}
 +make INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware firmware_install
 +%endif
 +
  ###
  ### clean
  ###
 @@ -888,6 +914,13 @@ fi
  /usr/include/*
  %endif
  
 +%if %{with_firmware}
 +%files firmware
 +%defattr(-,root,root)
 +/lib/firmware/*
 +%doc linux-%{kversion}.%{_target_cpu}/firmware/WHENCE
 +%endif
 +
  # only some architecture builds need kernel-doc
  
  %if %{builddoc}
 diff --git a/olpc/SPECS/kernel-xo1.spec b/olpc/SPECS/kernel-xo1.spec
 index feb2b65..46b3f5d 100644
 --- a/olpc/SPECS/kernel-xo1.spec
 +++ b/olpc/SPECS/kernel-xo1.spec
 @@ -14,6 +14,8 @@ Summary: The Linux kernel (the core of the Linux operating 
 system)
  %define builddoc 0
  %define buildkdump 0
  %define buildheaders 1
 +# kernel-firmware
 +%define with_firmware  %{?_with_firmware:  1} %{?!_with_firmware:  0}
  %define _enable_debug_packages 0
  
  # Versions of various parts
 @@ -54,6 +56,7 @@ Summary: The Linux kernel (the core of the Linux operating 
 system)
  %define buildxen 0
  %define buildkdump 0
  %define all_arch_configs $RPM_SOURCE_DIR/kernel-xo1-custom.config
 +%define with_firmware 1
  %endif
  # Don't build 586 kernels for RHEL builds.
  %if 0%{?rhel}
 @@ -73,6 +76,7 @@ Summary: The Linux kernel (the core of the Linux operating 
 system)
  %define buildup 0
  %define buildheaders 0
  %define all_arch_configs $RPM_SOURCE_DIR/kernel-%{kversion}-*.config
 +%define with_firmware 0
  %endif
  
  # kdump only builds on i686, x86_64, ppc64 ...
 @@ -215,7 +219,7 @@ Summary: The Linux kernel (the core of the Linux 
 operating system)
  # Packages that need to be installed before the kernel is, because the %post
  # scripts