Web lists-archives.com

Re: Failed to create sbuild chroot for cross-compiling

On Sun, Aug 26, 2018 at 4:42 PM, Holger Wansing wrote:

> Raphael and you told me to not built the package here locally, but just
> do a source-only upload.

In general, one should build locally and do a source-only upload. This
is so that you confirm the build works and, by testing it manually,
that the resulting package works before wasting upload bandwidth and
buildd time and so that the package is built on the buildds, which
means it is built in a clean environment (regenerated every few days)
and that the build log is published on buildd.d.o.

sbuild supports doing both of these at once with the
--source-only-changes option or SOURCE_ONLY_CHANGES configuration

> But sbuild does not support this use case.

sbuild supports this with the option mentioned above, AFAICT the issue
here is cross-building.

You appear to have created an s390x chroot rather than an amd64 chroot
that builds packages for s390x.

In general, CPUs that can run amd64 binaries cannot run s390x. They
can be emulated by installing qemu-user-static but the result will be
much slower.

When building packages for arch s390x (the "host" arch or the arch
that will host your binaries), you generally want a chroot of the same
arch as your CPU (amd64) (the "build" arch, or the arch that you are
building on) but with cross-compilers installed that build for arch
s390x. When building compilers there can also be a "target" arch or
the arch that the compiler targets or builds binaries for.

The cross-compiling wiki page covers how to do cross-compiling with
Debian, I'm not sure the sbuild wiki page has cross-compiling added
yet. Some parts of both pages might be out of date and I personally
don't use sbuild but the cross-compiling page should be mostly
accurate. I'm not entirely sure but I think sbuild will auto-install
the correct crossbuild-essential packages these days.