Re: Binary blobs in source packages
On Di, Dez 13, 2011 at 13:23:25 (CET), Thomas Koch wrote:
> I just made a fool of myself on the simple-build-tool list by claiming that
> Debian would build scala without scala. I only checked debian/rules and
> debian/control and since scala is in main, I assumed that I must be right.
> However scala comes with a bytecode-compiled scala compiler in lib/ which is
> required only during build but not installed in the binary packages.
> I already opened reportbug to fill a serious Debian Policy violation, but
> actually I couldn't find anything in the policy about it.
> So is it ok to ship binaries in the source package that are only required
> during build? Can I do the same with simple-build-tool, which requires itself
> to build?
I had a similar situation in the aspectc++ package, which is a
source-to-source compiler (from AspectC++ to C++).
Background: AspectC++ requires a library called Puma for parsing C/C++
Code. While Puma itself is written in C++, the Visual C++ and Gnu
Extensions to the C++ language are written with aspects. This means that
you need the 'ac++' compiler to "weave" Puma.
Solution: Upstream provides so-called "woven" sources, which includes a
"pre-woven" Puma library. In the Debian package I use these sources to
compile a "boostrap" ac++ binary, then start over from start, weave Puma
with the "bootstrap" ac++ binary, recompile Puma, throw away the
boostrap ac++ binary, and finally compile ac++.
Additional benefit: I have now tested that the ac++ compiler actually
works on all architectures!
I'm pretty sure that this approach can be appleid to both the
'simple-build-tool' and 'scala' packages.
Reinhard Tartler, KeyID 945348A4