Bug#782803: perl: DEB_BUILD_* vs. DEB_HOST_*

Niko Tyni ntyni at debian.org
Sat Apr 18 07:50:25 UTC 2015


Package: perl
Version: 5.20.2-3

debian/config.debian has this, dating from at least 5.8.4-8:

 arch_cpu=${DEB_BUILD_ARCH_CPU:-$(dpkg-architecture -qDEB_BUILD_ARCH_CPU)}
 gnu_type=${DEB_BUILD_GNU_TYPE:-$(dpkg-architecture -qDEB_BUILD_GNU_TYPE)}

These are used to choose a few build options and set
the archname Configure argument.

There's also this comment in debian/README.source:

  [...] To bootstrap a new architecture, use:
      DEB_BUILD_GNU_TYPE=<arch> debian/rules binary-arch

OTOH, the multiarch installation path for architecture dependent
modules and the like is determined by

 archtriplet=`dpkg-architecture -qDEB_HOST_MULTIARCH`

There seems to be a discrepancy here.

Now, as I understand this, DEB_BUILD_* give the properties of machine
we're building on, and DEB_HOST_* the properties of the machinge we're
building for (the target). These can differ when cross-compiling.
We don't really support cross-compiling atm, but there's no reason
to actually make it harder than necessary.

I think replacing the DEB_BUILD_* properties with corresponding DEB_HOST_*
ones is the right thing to do, but I'm not sure how the bootstrapping part
should read. I suppose it doesn't apply to a crosscompiling scenario,
but rather to a situation where a porter is building the perl package
on a mostly empty host where things like dpkg-architecture (which is
actually written in perl) and the like do not exist/work yet. So just
using DEB_HOST_* there will probably do.
-- 
Niko Tyni   ntyni at debian.org




More information about the Perl-maintainers mailing list