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

Re: Binary blobs in source packages

On Di, Dez 13, 2011 at 13:23:25 (CET), Thomas Koch wrote:

> Hi,
> 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!

(line 41-56)

I'm pretty sure that this approach can be appleid to both the
'simple-build-tool' and 'scala' packages.


Reinhard Tartler, KeyID 945348A4

Reply to: