Re: Packaging a library that requires cross-compiled code
David Anderson writes ("Re: Packaging a library that requires cross-compiled code"):
> I'm not sure what you mean by detecting accidental breakage to the
> build machinery, but that means building a full cross-compiler each
> time the package is rebuilt. Currently, we have a set of rules that
> use the upstream blob by default, but enable a full rebuild (including
> cross-compiler) when a DEB_BUILD_OPTIONS flag is passed.
What I mean is that if you do what you describe above, you won't
notice if something causes the DEB_BUILD_OPTIONS flag not to work any
more. That is, your package could acquire a FTBFS bug - as in, it
doesn't really recompile from its actual source, and no-one would
Let me put it another way: people who deal specifically with your
particular package are able to set a special environment variable to
disable the full GCC build.
People who are treating your package as "just some Debian package" may
or may not actually need the full build, but I don't think it's safe
to assume that they don't.
There are quite a few automated systems that rebuild Debian packages -
the buildds, my autopkgtest system, various other testers, and they
are all situations where the work done to build the cross-compiler is
not wasted: we repeat that processing precisely so that we know that
it actually works.
So I think you should make the full build the default. And if you
worry that the full build might generate an incorrect binary lump, you
should have the package compare the results of the full build with the
prebuilt binary lump and die if they're not the same.