Bug#794538: systemd / cross-building / failure in dpkg-gencontrol
Johannes Schauer
josch at debian.org
Mon Aug 31 13:41:35 BST 2015
Hi,
Quoting James McCoy (2015-08-29 04:09:43)
> On Mon, Aug 24, 2015 at 12:49:58PM +0200, Johannes Schauer wrote:
> > Quoting Michael Biebl (2015-08-24 09:56:02)
> > > Am 24.08.2015 um 08:21 schrieb Johannes Schauer:
> > > > This is fixable. It has to be because building a binary package to
> > > > satisfy dependencies already works in other situations while still
> > > > being cross-aware, most notably in sbuild.
> > > >
> > > > Namely, what mk-build-deps should do is to copy the sbuild behaviour:
> > > >
> > > > - use libdpkg-perl to parse and process the Build-{Depends,Conflicts}* fields
> > > > and filter architecture and profile restrictions correctly
> > > > - change the meaning of its --arch option (this currently does some magic
> > > > depending on whether the source package has architecture specific build
> > > > dependencies or not):
>
> No, --arch shouldn't be repurposed to mean "produce a deb that satisfies
> cross-build requirements". If you want to add new functionality, that's
> fine. Just don't break existing functionality while you're at it.
>
> Something like "mk-build-deps --cross --arch $hostarch" would be
> acceptable.
attached patch should address your concerns.
As a summary, here the new --help output:
-a *foo*, --arch *foo*
Set the architecture of the produced binary package to *foo*. If
this option is not given, fall back to the value given by
--host-arch. If neither this option nor --host-arch are given but
the Build-Depends contain architecture restrictions, use the value
printed by `dpkg-architecture -qDEB_HOST_ARCH`. Otherwise, use
*all*.
The package architecture must be equal to the host architecture
except if the package architecture is *all*.
The package architecture cannot be *all* if the build and host
architecture differ.
--host-arch *foo*
Set the host architecture the binary package is built for. This
defaults to the value printed by `dpkg-architecture
-qDEB_HOST_ARCH`. Use this option to create a binary package that is
able to satisfy crossbuild dependencies.
If this option is used together with --arch, then they must be equal
except if the value of --arch is *all*.
If --arch is not given, then this option also sets the package
architecture.
--build-arch *foo*
Set the build architecture the binary package is built for. This
defaults to the value printed by `dpkg-architecture
-qDEB_BUILD_ARCH`. Use this option to create a binary package that
is able to satisfy crossbuild dependencies.
Thanks!
cheers, josch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-scripts-mk-build-deps.pl-support-crossbuild-dependen.patch
Type: text/x-diff
Size: 6847 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-systemd-maintainers/attachments/20150831/bcf8251a/attachment-0002.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-systemd-maintainers/attachments/20150831/bcf8251a/attachment-0002.sig>
More information about the Pkg-systemd-maintainers
mailing list