Re: Reproducible, precompiled .o files: what say policy+gpl?
On Tue, Oct 19, 2004 at 12:37:45AM +0200, Wouter Verhelst wrote:
> On Mon, Oct 18, 2004 at 07:51:00PM +0200, Josselin Mouette wrote:
> > Le lundi 18 octobre 2004 à 19:22 +0200, Wesley W. Terpstra a écrit :
> > > So, when it comes time to release this and include it in a .deb, I ask
> > > myself: what would happen if I included (with the C source and ocaml
> > > compiler) some precompiled object files for i386? As long as the build
> > > target is i386, these object files could be linked in instead of using
> > > gcc to produce (slower) object files. This would mean a 2* speedup for
> > > users, which is vital in order to reach line-speed. Other platforms
> > > recompile as normal.
> > >
> > > On the other hand, is this still open source?
> > > Is this allowed by policy?
> > > Can this go into main?
> > Main must be built with only packages from main.
> No, that's not true.
> In addition, the packages in _main_
> * must not require a package outside of _main_ for compilation or
> execution (thus, the package must not declare a "Depends",
> "Recommends", or "Build-Depends" relationship on a non-_main_
> There's a difference, which is crucial. ICC may not be Free Software,
> policy does not say you must only use Free Software to build a package;
> it says you must not /require/ a package outside main to build it.
> The difference is subtle, but crucial.
> Wesley's software can be built using software in main. It will not be as
> fast, but it will still do its job, flawlessly, without loss of
> features, with the ability to modify the software to better meet one's
> needs if so required.
"The package must not require a outside of main for compilation".
You can't take the source, compile it with a proprietary compiler and
upload the result to main, because in order to create that package,
you need a non-free compiler. The fact that you can also compile the
sources with a free compiler is irrelevant; non-free tools are still
required to create the package actually in main. Policy doesn't say
"you must be be able to build a package similar to the one in main using
tools in main"; it says "the package in main must be buildable with
tools in main".