[Fedora-packaging] No pre-built applications rule

Ralf Corsepius rc040203 at freenet.de
Mon Sep 18 02:32:34 UTC 2006


On Sun, 2006-09-17 at 11:43 -0700, Toshio Kuratomi wrote:
> On Sun, 2006-09-17 at 07:53 +0200, Ralf Corsepius wrote:
> > On Sat, 2006-09-16 at 22:08 -0700, Toshio Kuratomi wrote:
> > > Hey guys,
> > > It's come to my attention that we don't have a "Packages must be built
> > > from source, no precompiled binaries" rule in the current guidelines.  I
> > > think this is an oversight as the Binary Firmware section:
> > > http://www.fedoraproject.org/wiki/Packaging/Guidelines#BinaryFirmware
> > > 
> > > implies this for the specific case of firmware.
> > > 
> > > How about something like:
> > > 
> > > "Packages must be built from source code.  Including pre-built programs
> > > or libraries is strictly forbidden.  A select few exceptions are made
> > > for binary firmware.  Please see
> > > http://www.fedoraproject.org/wiki/Packaging/Guidelines#BinaryFirmware
> > > for details."
> > > 
> > > And on ReviewGuidelines:
> > > "Must: The package must be built from source.  No pre-built programs or
> > > libraries are acceptable."
> > -1
> > 
> > > Thoughts, opinions welcome.
> > 
> > IMO, both rules above are a mistake.
> > 
> By both, do you mean the sections for Packaging/Guidelines and for
> Packaging/ReviewGuidelines or the new proposal and the pre-existing
> BinaryFirmware Guidelines?
I meant the old and the new version to be a mistake.

> > In my understanding the original intend was to force "rebuildability" on
> > LINUX code, i.e. all Linux code to be open-sourced.
> > 
> > I.e. you'd first have to define what you understand as "Linux code".
> > 
> > A native firmware to be applied by a running Linux kernel would
> > definitely qualify as such. But a firmware (as being applied by
> > emulators)
> 
> I'd place this under the BinaryFirmware Guidelines so it's not covered
> in this new guideline.
IMO, the BinaryFirmware Guideline is a special case from the more general case.

I don't see any sense in the BinaryFirmware Guideline to exist.

> >  or foreign libraries (as being required by cross compilers)
> > are cornercases.
> > 
> Meaning the libraries built for the foreign architecture?  So these do
> not execute on the host OS?
Yes, except when using emulators/simulators, they typically they are not
executed on the host.

An example for such a case is a (cross-) target's libc. In general, you
need it to be able to build a (cross-) GCC and to use this (cross-) GCC.
In some cases you can address this by bootstrapping the target
OS/kernel, libc and GCC at once, but this is magnitudes more difficult
than using (repackaging a target's binary files) a target's libc
binaries directly.

Consider building a i386-redhat-gcc -> ppc-redhat-GCC. Everything is
free, but building a ppc-glibc/GCC from scratch is magnitudes more
difficult and error-prone than repackaging Fedora's ppc-rpms for such
purposes.

The same applies to other opensource cross-GCC targets, such as
FreeBSDs, MinGW, Cygwin or other Linuxes. 

>   If that's the case, then it could be
> considered data for the cross-toolchain rather than a library or
> program.  I haven't thought about that case enough to know if that's a
> good idea or not, though.
> 
> If it's a special build of a library that the cross toolchain uses to
> run on the host OS, then I think it does need to be rebuilt from source.
ACK, but ... when to stop "requiring to build from source"? I don't have
an answer to this question.

If I think your proposal's and the current guidelines to an end,
* it is required each and every binary to be rebuild and NOT to use ANY
pre-built binary.
* you don't define what a binary is.

Ralf





More information about the Fedora-packaging mailing list