[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [PATCH 1/2] deb-pkg: Fix cross-building linux-headers package



On Fri, 2013-12-06 at 11:29 +0800, Niew, Sh. wrote:
> On Fri, Dec 6, 2013 at 10:07 AM, Ben Hutchings <ben@decadent.org.uk> wrote:
> > On Fri, 2013-12-06 at 09:45 +0800, Niew, Sh. wrote:
> >> On Fri, Dec 6, 2013 at 9:40 AM, Ben Hutchings <ben@decadent.org.uk> wrote:
> >> > On Fri, 2013-12-06 at 09:35 +0800, Niew, Sh. wrote:
> >> >> On Thu, Dec 5, 2013 at 10:37 PM, Ben Hutchings <ben@decadent.org.uk> wrote:
> >> >> > builddeb generates a control file that says the linux-headers package
> >> >> > can only be built for the build system primary architecture.  This
> >> >> > breaks cross-building configurations.  We should use $debarch for this
> >> >> > instead.
> >> >> >
> >> >> > Since $debarch is not yet set when generating the control file, set
> >> >> > Architecture: any and use control file variables to fill in the
> >> >> > description.
> >> >> >
> >> >> > Fixes: cd8d60a20a45 ('kbuild: create linux-headers package in deb-pkg')
> >> >> > Reported-by: "Niew, Sh." <shniew@gmail.com>
> >> >> > Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
> >> > [...]
> >> >> I can't patch this to my linux-3.2.y tree which i clone from linux-stable
> >> >> I check that the patches number line are different...
> >> >> What i missed?
> >> >
> >> > This is for mainline; it should apply cleanly to 3.12.
> 
> What ever i try, is failed. Even with 3.12 tree of debian.
> I check the failure, the following part can't be patch:
> 
> @@ -62,7 +62,7 @@ create_package() {
>         fi
> 
>         # Create the package
> -       dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir"
> +       dpkg-gencontrol -isp $forcearch -Vkernel:debarch="${debarch:-$
> (dpkg --print-architecture)}" -p$pname -P"$pdir"
>         dpkg --build "$pdir" ..
>  }

I think this has been word-wrapped by your mail program.  Here is the
patch as an attachment; that should avoid the problem.

Ben.

> >> What if i want to test this to 3.2?
> >
> > Then you're on your own, sorry.

-- 
Ben Hutchings
Knowledge is power.  France is bacon.
From ed10ade229438f3f4ce563e609093fa6362ff0f0 Mon Sep 17 00:00:00 2001
From: Ben Hutchings <ben@decadent.org.uk>
Date: Thu, 5 Dec 2013 04:12:54 +0000
Subject: [PATCH] deb-pkg: Fix cross-building linux-headers package

builddeb generates a control file that says the linux-headers package
can only be built for the build system primary architecture.  This
breaks cross-building configurations.  We should use $debarch for this
instead.

Since $debarch is not yet set when generating the control file, set
Architecture: any and use control file variables to fill in the
description.

Fixes: cd8d60a20a45 ('kbuild: create linux-headers package in deb-pkg')
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 scripts/package/builddeb | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 90e521f..301acdc 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -62,7 +62,7 @@ create_package() {
 	fi
 
 	# Create the package
-	dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir"
+	dpkg-gencontrol -isp $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir"
 	dpkg --build "$pdir" ..
 }
 
@@ -288,15 +288,14 @@ mkdir -p "$destdir"
 (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be
 ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
 rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
-arch=$(dpkg --print-architecture)
 
 cat <<EOF >> debian/control
 
 Package: $kernel_headers_packagename
 Provides: linux-headers, linux-headers-2.6
-Architecture: $arch
-Description: Linux kernel headers for $KERNELRELEASE on $arch
- This package provides kernel header files for $KERNELRELEASE on $arch
+Architecture: any
+Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch}
+ This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch}
  .
  This is useful for people who need to build external modules
 EOF

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: