diff mbox

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

Message ID 1386254255.3000.20.camel@deadeye.wl.decadent.org.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Ben Hutchings Dec. 5, 2013, 2:37 p.m. UTC
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>
---
 scripts/package/builddeb | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Niew, Sh. Dec. 6, 2013, 1:35 a.m. UTC | #1
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>
> ---
>  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

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?


Sh. Niew
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ben Hutchings Dec. 6, 2013, 1:40 a.m. UTC | #2
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.

Ben.
Niew, Sh. Dec. 6, 2013, 1:45 a.m. UTC | #3
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 if i want to test this to 3.2?
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ben Hutchings Dec. 6, 2013, 2:07 a.m. UTC | #4
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 if i want to test this to 3.2?

Then you're on your own, sorry.

Ben.
Niew, Sh. Dec. 6, 2013, 3:29 a.m. UTC | #5
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" ..
 }

>> What if i want to test this to 3.2?
>
> Then you're on your own, sorry.
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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