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

Re: Intent to help with making packages cross-buildable



Hi Nilesh,

On Tue, Feb 16, 2021 at 01:22:39PM +0530, Nilesh Patra wrote:
> Since this looks like a pretty good effort also in order to improve the
> quality of the package, I'd like to help in any way I can.

Awesome.

> I hope that's okay.

It is more than welcome.

> I found a wiki page for cross compiling here[1] but I do not see a sort of
> "getting started" page to find tasks or to learn about common problem with
> failing to cross build packages.

I've not invested much in documenting issue types indeed. Are you sure
that documenting common problems is useful? That's not the way I
approach it. I start from the fact that a package isn't cross buildable
and work from there. The underlying problem may be common or not.
Keeping a list of problems up to date is a difficult thing to do as what
is common shifts over time. For instance, when I reread an earlier
interaction[2], I find that a number of aspects are obsolete already,
but some still apply.

Can I propose a different approach? Pick your pet package and try to fix
it.  Sometimes, it is easy to figure out, sometimes it is a never ending
rabbit hole. When it is easy, you can file a bug with your patch right
away.  Otherwise, I invite you to describe your problem and your
analysis here for discussion. The latter will not produce wiki-like
organized documentation, but the list archives are still searchable. If
questions get repeated, that likely is the point to add them to a wiki.

That said, I think the most common problems are:
 * Running make instead of dh_auto_build
 * Running ./configure instead of dh_auto_configure
 * Running meson instead of dh_auto_configure
 * Running cmake instead of dh_auto_configure
 * Running qmake instead of dh_auto_configure
 * Confusing the terms build and host
 * Installing pkg-config .pc files to /usr/lib/pkgconfig
 * Missing Multi-Arch: foreign
 * Test dependencies not annotated <!nocheck>
 * Using help2man
 * Hard coding build tools such as gcc
However, there are also quite fundamental problems affecting very many
packages. Often, these are language-specific.

There is one thing we likely should note on some wiki page. When you
file cross build bugs, you should set a usertag to avoid duplication of
work. The user is debian-cross@lists.debian.org (this list) and there
are two usertags. "ftcbfs" shall be issued when build dependencies can
be installed, but the build fails or it produces obviously unusable
packages (e.g.  build arch binaries or using the build arch libdir).
"cross-satisfiability" shall be used when build dependencies cannot be
installed. Properly tagged bugs are displayed on crossqa.debian.net.
cross-satisfiability bugs are also displayed on
https://bootstrap.debian.net/cross_all.html. Any suggestions where we
should include this?

I recommend copying your first few patches to this list (e.g. via
X-Debbugs-Cc).

If you use irc, join #debian-bootstrap to get quick responses.

> (I only see just a few handful failures on http://crossqa.debian.net)

It only displays the last ten failed builds. You can check any package
you via http://crossqa.debian.net/src/<yourpackage>. Do you need
anything else from the service?

> It'd be great if I could get more information/links/wiki/something else
> about this.

Hmm. How about just asking for specific things? I.e. what you did. :)

[2] https://lists.debian.org/debian-cross/2018/06/msg00000.html

Helmut


Reply to: