Support full rebuild from source like Gentoo?

Matt Zimmerman mdz at ubuntu.com
Fri Jan 13 03:18:24 GMT 2006


On Thu, Jan 12, 2006 at 09:57:49PM -0500, Andrew Piskorski wrote:
> On Thu, Jan 12, 2006 at 05:29:04PM -0800, Matt Zimmerman wrote:
> > Subject: Re: Dropping pre-i686 from the archive
> 
> > I'm quite open to the idea of building certain heavyweight package sets (GNOME,
> > KDE, OpenOffice.org, etc.) for i686 if there is a demonstrable performance
> > benefit.  I'm much less convinced about the idea of doing this universally,
> > especially considering thin client deployments.
> 
> The whole "Dropping pre-i686" thread has been making me think, why
> should I have to choose only one or the other?  Why can't I have BOTH?
> 
> Support i486 in the default binary packages if you like, and if I
> don't like, I will flip one switch, and rebuild all the packages I use
> in my own site-wide apt repository.  (And on request from apt-get
> clients, my local repository will automatically download from the
> official Ubuntu repository, cache the binary debs, and then later
> optionally recompile from source according to my build instructions.)
> 
> Why can't I have that?  What would it take to get there?

It would be possible to write a tool to do this, but I don't think you'd be
happy with the result on an ongoing basis.  For example, you'd eventually
want to get security updates onto your system, which means you'd want to
rebuild those too.  Having multiple builds of every package around is fairly
awkward to manage.

That said, I'd be very glad for someone to do this as an experiment.  It
would be very useful to have parallel package pools which could be
meaningfully compared on a per-package basis, giving us the data we would
need to decide whether this is worthwhile.  The experiment wouldn't need to
be done for the entire archive, but the packages I named above would be
interesting.

> On other Linux distributions, I have often been frustrated because Red
> Hat or whomever else compiled a whole bunch of library packages with
> "-O2" rather than "-g -O2" (VERY common).  (Trying to debug or profile
> without symbols is very frustrating...)  Or they built Tcl with
> threads support turned off when I needed it turned on, or any number
> of similar build issues.  Yet there was never any easy way for me to
> simply flip a "-g" switch and rebuild, not on rpm-based distrubtions
> and not on Debian either.  Why not?

The use of compiler flags in Debian packages is not standardized; the method
for changing the flags used will differ from one package to another
(sometimes due to the packaging, sometimes due to upstream).  This is not a
very complex problem to solve, but fixing it would involve touching EVERY
package in the archive, which is a maintenance nightmare.

> How could we get there?  I am not yet volunteering to do the work, but
> could someone explain please what the major steps and obstacles would
> be, how best to approach the problem, etc.?

The very first thing which needs to be done is, as I described in an
adjacent mail, a controlled test.  If the results are compelling, then that
will motivate developers to work on the problem.  To do this right is too
much work to do on a whim without knowing whether the benefits would justify
the effort.

-- 
 - mdz



More information about the ubuntu-devel mailing list