Hi Folks,
not sure if this is the right list to send to, but attached are a couple
of patches to allow for rpmbuild based building instead of OBS for
kernel-dev.
The two diff files are from osc diff
and applies on devel:kernel/kernel-dev-n900
offline build can be done (for e.g. on ubuntu:)
rpmbuild -ba --target="armv7l" --define="CROSS_COMPILE
arm-none-linux-gnueabi-" kernel-dev-n900.spec
This probably might be especially helpful for chipset packagers before
they upload their set into obs for a full build.
--
Regards,
Nishanth Menon
Index: kernel-dev.spec.in
===================================================================
--- kernel-dev.spec.in (revision e82edeba18d791eb50d893da90e51f49)
+++ kernel-dev.spec.in (working copy)
@@ -39,11 +39,11 @@
%if 0%{?rcrev}
-%define rctag ~rc%rcrev
+%define rctag .rc%rcrev
%endif
%if !0%{?rcrev}
-%define rctag ~rc0
+%define rctag .rc0
%endif
# Set rpm version accordingly
@@ -90,11 +90,23 @@
@@A ExclusiveArch: %{all_x86}
@@I ExclusiveArch: %{all_x86}
@@S ExclusiveArch: %{all_x86} %{all_arm}
+
+
+# Common handling
+%if "%{?CROSS_COMPILE}"
+%define _CROSS %{CROSS_COMPILE}
+%else
+%define _CROSS " "
+%endif
+
#
# Packages that need to be installed before the kernel is, because the %post
# scripts use them.
#
+%if "%{?CROSS_COMPILE}"
+%else
%define kernel_prereq fileutils, module-init-tools, fastinit, mkinitrd >= 6.0.39-1
+%endif
#
# This macro does requires, provides, conflicts, obsoletes for a kernel package.
@@ -130,15 +142,18 @@
Version: %{rpmversion}
Release: 6
+
+#
+# List the packages used during the kernel build
+#
+%if "%{?CROSS_COMPILE}"
+%else
%kernel_reqprovconf
-
-#
-# List the packages used during the kernel build
-#
BuildRequires: module-init-tools, bash >= 2.03, sh-utils
BuildRequires: findutils, make >= 3.78
BuildRequires: linux-firmware
BuildRequires: elfutils-libelf-devel binutils-devel newt-devel
+%endif
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-%{kversion}.tar.bz2
Source1: series
@@ -402,7 +417,7 @@
if [ "$Arch" = "$TargetArch" ]; then
echo BUILDING A KERNEL FOR ${Flavour} %{_target_cpu}... ${KernelVer}
- echo USING ARCH=$Arch
+ echo USING ARCH=$Arch CROSS_COMPILE=%{_CROSS}
# make sure EXTRAVERSION says what we want it to say
perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = ${ExtraVer}/" Makefile
@@ -413,8 +428,8 @@
cp configs/$Config .config
make -s ARCH=$Arch oldconfig > /dev/null
- make -s CONFIG_DEBUG_SECTION_MISMATCH=y ARCH=$Arch %{?_smp_mflags} $MakeTarget %{?sparse_mflags}
- make -s CONFIG_DEBUG_SECTION_MISMATCH=y ARCH=$Arch %{?_smp_mflags} modules %{?sparse_mflags} || exit 1
+ make -s CONFIG_DEBUG_SECTION_MISMATCH=y CROSS_COMPILE=%{_CROSS} ARCH=$Arch %{?_smp_mflags} $MakeTarget %{?sparse_mflags}
+ make -s CONFIG_DEBUG_SECTION_MISMATCH=y CROSS_COMPILE=%{_CROSS} ARCH=$Arch %{?_smp_mflags} modules %{?sparse_mflags} || exit 1
# Start installing the results
mkdir -p $RPM_BUILD_ROOT/%{image_install_path}
@@ -429,9 +444,9 @@
chmod 755 $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
- make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer
+ make -s CROSS_COMPILE=%{_CROSS} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer
%ifnarch %{all_arm}
- make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
+ make -s CROSS_COMPILE=%{_CROSS} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
%endif
# And save the headers/makefiles etc for building modules against
Index: kernel-dev.spec
===================================================================
--- kernel-dev.spec.in (revision e82edeba18d791eb50d893da90e51f49)
+++ kernel-dev.spec.in (working copy)
@@ -798,7 +798,7 @@
make ARCH=$Arch listnewconfig &> /tmp/configs
export conf=`cat /tmp/configs | grep CONFIG | wc -l`
- if [$conf -gt 0 ]; then
+ if [ $conf -gt 0 ]; then
make ARCH=$Arch listnewconfig
exit 1
fi
_______________________________________________
MeeGo-packaging mailing list
[email protected]
http://lists.meego.com/listinfo/meego-packaging