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

Re: compilers that self compile



On Thu, Oct 21, 2004 at 02:33:35PM -0300, Antonio S. de A. Terceiro wrote:
> Joel Baker escreveu isso aí:
> > On Thu, Oct 21, 2004 at 03:35:14PM +0200, Christoph Berg wrote:
> > > Re: Jeroen van Wolffelaar in <[🔎] 20041020164345.GN18918@A-Eskwadraat.nl>
> > > > >    * how packages like those go in the repository for the first time?
> > > > 
> > > > By ignoring build-depends while in some way you've made your system to
> > > > actually be able to build the package. I.e., you've for example
> > > > bootstrapped the compiler. Then you install it locally, and build your
> > > > package again, this time the normal way, and you upload it. After it's
> > > > in the archive, it's rebuildable by itself.
> > > 
> > > Of course, the bootstrapping has to be done for each architecture
> > > again.
> > 
> > Yes, it will. Which will make those of us porting put your package at
> > the very end of the queue of things to be ported, unless something else
> > is forcing it higher (in which case, we'll just be very annoyed at the
> > package, unless bootstrapping is trivial).
> 
> In my case, it is ac++ [1] [2], an  Aspect Weaver that makes
> source-to-source translation.  This translation is needed in a part of
> itself (there are good reasons for that).
> 
> [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=277538
> [2] http://www.aspectc.org
> 
> My idea is to make a first release with sources already translated
> (which can be done with a precompiled binary for i386 distributed by
> upstream), which would compile fine with just g++ and libxml2-dev as
> build-dependencies. Then, when/if it goes into repository, it will be
> possible to compile a second release from untranslated sources, since
> ac++ itself will be already available.
> 
> I've requested that upstream distribute one version already translated.
> .orig.tar.gz has to be officially distributed by upstream to be
> considered pristine, hasn't it?
> 
> Will this approach make manual porting unnecessary?

Sadly, no, at least if I understand you correctly. Because, four months
down the road when you've uploaded another copy to the archive, that
first copy with the pre-translated source that you built will be long
gone and unavailable for use - and requiring the use of upstreams binary
precompile is impractical in many situations (such as "It's a new port
and upstream doesn't have one out yet, or may never put one out").

If it is possible to install the tool on another Debian box and *generate*
the necessary files, before trying to do the build, and use those, that
would generally be workable; most porters have access to, if nothing else,
the Debian machines used for troubleshooting various things, and could
compile it there.

However, if it's that complex, I strongly advise writing your rules file to
make it as easy as possible, and putting at note in near the top such as "#
Porters - please see the BOOTSTRAPPING file for instructions on building
this package on a new port." And, of course, document the step by step way
of doing this in that file (which, if you're doing it for the first time
yourself to get the package into the archive, should be easy enough - just
write down what you're doing, every step of the way).
-- 
Joel Baker <fenton@debian.org>                                        ,''`.
                                                                     : :' :
                                                                     `. `'
                                                                       `-

Attachment: signature.asc
Description: Digital signature


Reply to: