Re: compilers that self compile

2004-11-11 Thread Joel Aelwyn
On Fri, Oct 22, 2004 at 10:05:48AM -0300, Antonio S. de A. Terceiro wrote:
 Joel Baker escreveu isso aí:
 [cut]
   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
 
 Let me be sure I've understood.
 
 ac++ does source-to-source-translation, and the generated sources are
 platform-independent.
 
 For building it for the first time, I'll have to install on my box
 (i386) a binary distributed by upstream for i386 (the only architecture
 for which they provide binaries), and build it normally.
 
 Then, for architectures other than i386, porters will do the same what I
 did (assuming that I'll document it in the debian/rules file), using
 some i386 box they have access to generate the C++ source, copy these
 sources to a target-architecture box, and build it themselves.
 
 Is that it?
 
 What I thought is that if the translated sources (which are platform
 independent) went in the diff, there will be no necessary by hand
 actions for building in any architecture. But as Joeren wrote, one it is
 not recommended to do that. Am I correct?

Sorry this took a while to respond to; life sort of got in the way.

If the generated sources are platform independant, and you can use the
Debian package for i386 to generate enough to bootstrap something on
another port, then yes, that's quite sufficient (but might still be good to
note somewhere, so folks trying to port it realize that it's that simple).

Putting the post-translated sources into the package is not, as a rule,
a good idea, for the reasons mentioned before, but so long as the tools
necessary to do the bootstrapping are readily available and there's a note
about how to use them to do it, porters won't generally have any problems
(the usual routine is to build the package manually, by hand, in this case
using sources generated with the i386 binary, then install it into the
porting area and do a 'normal' build using the bootstrapped package to
ensure that all of the other Build-Depends and such are OK, and use the
second stage package as the thing to upload).

The fact that the translated sources are portable makes it vastly simpler,
since it reduces the requirement for a new port from a binary copy
must exist for this architecture to a binary copy must exist for SOME
architecture you have access to, and nearly every porter I know of has at
least passing access to an i386 box where they could arrange for it to be
installed long enough to bootstrap the port.
-- 
Joel Aelwyn [EMAIL PROTECTED]   ,''`.
 : :' :
 `. `'
   `-


signature.asc
Description: Digital signature


Re: compilers that self compile

2004-11-11 Thread Joel Aelwyn
On Fri, Oct 22, 2004 at 10:05:48AM -0300, Antonio S. de A. Terceiro wrote:
 Joel Baker escreveu isso aí:
 [cut]
   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
 
 Let me be sure I've understood.
 
 ac++ does source-to-source-translation, and the generated sources are
 platform-independent.
 
 For building it for the first time, I'll have to install on my box
 (i386) a binary distributed by upstream for i386 (the only architecture
 for which they provide binaries), and build it normally.
 
 Then, for architectures other than i386, porters will do the same what I
 did (assuming that I'll document it in the debian/rules file), using
 some i386 box they have access to generate the C++ source, copy these
 sources to a target-architecture box, and build it themselves.
 
 Is that it?
 
 What I thought is that if the translated sources (which are platform
 independent) went in the diff, there will be no necessary by hand
 actions for building in any architecture. But as Joeren wrote, one it is
 not recommended to do that. Am I correct?

Sorry this took a while to respond to; life sort of got in the way.

If the generated sources are platform independant, and you can use the
Debian package for i386 to generate enough to bootstrap something on
another port, then yes, that's quite sufficient (but might still be good to
note somewhere, so folks trying to port it realize that it's that simple).

Putting the post-translated sources into the package is not, as a rule,
a good idea, for the reasons mentioned before, but so long as the tools
necessary to do the bootstrapping are readily available and there's a note
about how to use them to do it, porters won't generally have any problems
(the usual routine is to build the package manually, by hand, in this case
using sources generated with the i386 binary, then install it into the
porting area and do a 'normal' build using the bootstrapped package to
ensure that all of the other Build-Depends and such are OK, and use the
second stage package as the thing to upload).

The fact that the translated sources are portable makes it vastly simpler,
since it reduces the requirement for a new port from a binary copy
must exist for this architecture to a binary copy must exist for SOME
architecture you have access to, and nearly every porter I know of has at
least passing access to an i386 box where they could arrange for it to be
installed long enough to bootstrap the port.
-- 
Joel Aelwyn [EMAIL PROTECTED]   ,''`.
 : :' :
 `. `'
   `-


signature.asc
Description: Digital signature


Re: compilers that self compile

2004-10-22 Thread Antonio S. de A. Terceiro
Joel Baker escreveu isso aí:
[cut]
  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

Let me be sure I've understood.

ac++ does source-to-source-translation, and the generated sources are
platform-independent.

For building it for the first time, I'll have to install on my box
(i386) a binary distributed by upstream for i386 (the only architecture
for which they provide binaries), and build it normally.

Then, for architectures other than i386, porters will do the same what I
did (assuming that I'll document it in the debian/rules file), using
some i386 box they have access to generate the C++ source, copy these
sources to a target-architecture box, and build it themselves.

Is that it?

What I thought is that if the translated sources (which are platform
independent) went in the diff, there will be no necessary by hand
actions for building in any architecture. But as Joeren wrote, one it is
not recommended to do that. Am I correct?

-- 
Antonio S. de A. Terceiro [EMAIL PROTECTED]
http://www.inf.ufrgs.br/~asaterceiro
Chave PGP/PGP key -- http://pgp.mit.edu/



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: compilers that self compile

2004-10-22 Thread Antonio S. de A. Terceiro
Joel Baker escreveu isso aí:
[cut]
  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

Let me be sure I've understood.

ac++ does source-to-source-translation, and the generated sources are
platform-independent.

For building it for the first time, I'll have to install on my box
(i386) a binary distributed by upstream for i386 (the only architecture
for which they provide binaries), and build it normally.

Then, for architectures other than i386, porters will do the same what I
did (assuming that I'll document it in the debian/rules file), using
some i386 box they have access to generate the C++ source, copy these
sources to a target-architecture box, and build it themselves.

Is that it?

What I thought is that if the translated sources (which are platform
independent) went in the diff, there will be no necessary by hand
actions for building in any architecture. But as Joeren wrote, one it is
not recommended to do that. Am I correct?

-- 
Antonio S. de A. Terceiro [EMAIL PROTECTED]
http://www.inf.ufrgs.br/~asaterceiro
Chave PGP/PGP key -- http://pgp.mit.edu/




Re: compilers that self compile

2004-10-21 Thread Christoph Berg
Re: Jeroen van Wolffelaar in [EMAIL PROTECTED]
 * 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.

Christoph
-- 
[EMAIL PROTECTED] | http://www.df7cb.de/


signature.asc
Description: Digital signature


Re: compilers that self compile

2004-10-21 Thread Joel Baker
On Thu, Oct 21, 2004 at 03:35:14PM +0200, Christoph Berg wrote:
 Re: Jeroen van Wolffelaar in [EMAIL PROTECTED]
  * 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).

I would strongly suggest considering what makes it self-depend (there are
legitimate reasons, yes), and how one could deal with that in the case of
bootstrapping. For GCC, it's fairly simple; one has to bootstrap it with
another C compiler, but *any* compiler will do, more or less, including a
cross-compiler or a native package from another OS that happens to target
the platform required.

In theory, everything in Essential and Build-Essential is actually
self-dependant, because those two must (in theory) be met before one
can safely build a package, even one with no Build-Depends. However,
in practice, most of these can be remotely compiled, or copied from an
existing source, and work well enough to allow one to compile the
packages properly.

And, of course, packages which Build-Depend on some part of themselves
which is Arch: all aren't terribly problematic, since the old package is
already available in the archive, and can be installed anywhere.

The problem comes in when you have packages that are (perhaps gratuitously)
self-dependant, on binary packages, and which are not readily available
from simple manual compilations. If I have to spend hours building a
package just to have enough to rebuild it as a Debian package, it's going
*far* down the list. GCC is about the only exception I can think of
offhand.

(And, frankly, in some ways the port I work on - NetBSD/i386 - has it
easier, because often there is a working NetBSD-native package that can
be compiled and the bits copied into the Debian area long enough to
bootstrap.)

One solution which has been known to work reasonably is to allow a
build-option (documented in the rules file, please!) that allows a
crippled version of the package to be built without needing recursive
dependancies. The porter builds it, installs it locally only, then rebuilds
the full and proper package and uploads that (and, of course, after that it
isn't an issue).
-- 
Joel Baker [EMAIL PROTECTED],''`.
 : :' :
 `. `'
   `-


signature.asc
Description: Digital signature


Re: compilers that self compile

2004-10-21 Thread Antonio S. de A. Terceiro
Joel Baker escreveu isso aí:
 On Thu, Oct 21, 2004 at 03:35:14PM +0200, Christoph Berg wrote:
  Re: Jeroen van Wolffelaar in [EMAIL PROTECTED]
   * 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?

-- 
Antonio S. de A. Terceiro [EMAIL PROTECTED]
http://www.inf.ufrgs.br/~asaterceiro
Chave PGP/PGP key -- http://pgp.mit.edu/



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: compilers that self compile

2004-10-21 Thread Joel Baker
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 [EMAIL PROTECTED]
* 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 [EMAIL PROTECTED],''`.
 : :' :
 `. `'
   `-


signature.asc
Description: Digital signature


Re: compilers that self compile

2004-10-21 Thread Jeroen van Wolffelaar
On Thu, Oct 21, 2004 at 02:33:35PM -0300, Antonio S. de A. Terceiro wrote:
 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'd not suggest to do so, because you're then having a pre-translated
source in as source package, something that would be non-trivial to just
modify and then work with changes -- a requirement for Debian main.
 
 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?

It isn't a requirement that the .orig.tar.gz is identical to upstream,
but anyway, you can always add stuff in the diff if you want. However,
in this case I wouldn't go that route.

I suggest to locally on your own system do whatever you need to do to
get a ac++ package (and indeed document this carefully in the rules
file). If the translations are architecture independent, and available
on some upstream website, that'd make it easy for porters.

Then, you can build-depend on your self, and make sure you have a ac++
source package that can build itself from pristine .orig.tar.gz without
any help (just requiring the ac++ being installed already). If this
succeeds, you can upload this ac++ package, once it's in unstable, it
can also be build in unstable, using itself.

Note: I'm not a porter.

 Will this approach make manual porting unnecessary?

Possibly, but while you include such hand-crafted translations somewhere
in the source package, I doubt it's satisfying all of the DFSG
guidelines. You could of course still do so, and file a RC bug on your
own package while you have this hack in place, so to easy porting
indeed... But that'd be quite hacky, and I'm quite unsure whether such a
tactic would be appreciated.

--Jeroen

-- 
Jeroen van Wolffelaar
[EMAIL PROTECTED] (also for Jabber  MSN; ICQ: 33944357)
http://Jeroen.A-Eskwadraat.nl


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: compilers that self compile

2004-10-21 Thread Christoph Berg
Re: Jeroen van Wolffelaar in [EMAIL PROTECTED]
 * 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.

Christoph
-- 
[EMAIL PROTECTED] | http://www.df7cb.de/


signature.asc
Description: Digital signature


Re: compilers that self compile

2004-10-21 Thread Joel Baker
On Thu, Oct 21, 2004 at 03:35:14PM +0200, Christoph Berg wrote:
 Re: Jeroen van Wolffelaar in [EMAIL PROTECTED]
  * 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).

I would strongly suggest considering what makes it self-depend (there are
legitimate reasons, yes), and how one could deal with that in the case of
bootstrapping. For GCC, it's fairly simple; one has to bootstrap it with
another C compiler, but *any* compiler will do, more or less, including a
cross-compiler or a native package from another OS that happens to target
the platform required.

In theory, everything in Essential and Build-Essential is actually
self-dependant, because those two must (in theory) be met before one
can safely build a package, even one with no Build-Depends. However,
in practice, most of these can be remotely compiled, or copied from an
existing source, and work well enough to allow one to compile the
packages properly.

And, of course, packages which Build-Depend on some part of themselves
which is Arch: all aren't terribly problematic, since the old package is
already available in the archive, and can be installed anywhere.

The problem comes in when you have packages that are (perhaps gratuitously)
self-dependant, on binary packages, and which are not readily available
from simple manual compilations. If I have to spend hours building a
package just to have enough to rebuild it as a Debian package, it's going
*far* down the list. GCC is about the only exception I can think of
offhand.

(And, frankly, in some ways the port I work on - NetBSD/i386 - has it
easier, because often there is a working NetBSD-native package that can
be compiled and the bits copied into the Debian area long enough to
bootstrap.)

One solution which has been known to work reasonably is to allow a
build-option (documented in the rules file, please!) that allows a
crippled version of the package to be built without needing recursive
dependancies. The porter builds it, installs it locally only, then rebuilds
the full and proper package and uploads that (and, of course, after that it
isn't an issue).
-- 
Joel Baker [EMAIL PROTECTED],''`.
 : :' :
 `. `'
   `-


signature.asc
Description: Digital signature


Re: compilers that self compile

2004-10-21 Thread Joel Baker
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 [EMAIL PROTECTED]
* 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 [EMAIL PROTECTED],''`.
 : :' :
 `. `'
   `-


signature.asc
Description: Digital signature


Re: compilers that self compile

2004-10-21 Thread Jeroen van Wolffelaar
On Thu, Oct 21, 2004 at 02:33:35PM -0300, Antonio S. de A. Terceiro wrote:
 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'd not suggest to do so, because you're then having a pre-translated
source in as source package, something that would be non-trivial to just
modify and then work with changes -- a requirement for Debian main.
 
 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?

It isn't a requirement that the .orig.tar.gz is identical to upstream,
but anyway, you can always add stuff in the diff if you want. However,
in this case I wouldn't go that route.

I suggest to locally on your own system do whatever you need to do to
get a ac++ package (and indeed document this carefully in the rules
file). If the translations are architecture independent, and available
on some upstream website, that'd make it easy for porters.

Then, you can build-depend on your self, and make sure you have a ac++
source package that can build itself from pristine .orig.tar.gz without
any help (just requiring the ac++ being installed already). If this
succeeds, you can upload this ac++ package, once it's in unstable, it
can also be build in unstable, using itself.

Note: I'm not a porter.

 Will this approach make manual porting unnecessary?

Possibly, but while you include such hand-crafted translations somewhere
in the source package, I doubt it's satisfying all of the DFSG
guidelines. You could of course still do so, and file a RC bug on your
own package while you have this hack in place, so to easy porting
indeed... But that'd be quite hacky, and I'm quite unsure whether such a
tactic would be appreciated.

--Jeroen

-- 
Jeroen van Wolffelaar
[EMAIL PROTECTED] (also for Jabber  MSN; ICQ: 33944357)
http://Jeroen.A-Eskwadraat.nl



Re: compilers that self compile

2004-10-20 Thread Jeroen van Wolffelaar
On Wed, Oct 20, 2004 at 01:18:39PM -0300, Antonio S. de A. Terceiro wrote:
 Hello all,
 
 How do people in Debian handle compilers that depend on itself to
 be compiled?

I asked this question a while ago too. Quoting DWN[1]:

| Cyclic Build Dependencies. Jeroen van Wolffelaar [11]noticed that
| [12]oaklisp contains a binary file which is used for bootstrapping.
| There are at least half a dozen such [13]loops in Debian already.
| Edmund Grimley Evans [14]assumed that such cyclic build dependencies
| are acceptable in Debian.
| 
|  11. http://lists.debian.org/debian-legal/2004/06/msg00113.html
|  12. http://packages.debian.org/oaklisp
|  13. http://lists.debian.org/debian-legal/2004/06/msg00116.html
|  14. http://lists.debian.org/debian-legal/2004/06/msg00114.html

So, yes, that's acceptable[2]. You must ensure you can change sources as
you like, and then get a new package, but you don't need to make
bootstrapping possible/easy.

* can a package build-depend on itself? I've saw that gcc, for
  example, don't (at least explicitily) build-depend on itself.

It does in a way: build-essential is an assumed build-dependency, and
gcc is depended on by build-essential. ghc6 does build-depend on itself.

* 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.

 I couldn't find references about that on either in Debian Policy Manual
 or in Debian Developer's Reference. If I missed something, please point
 me were.

This is indeed something which IMHO needs to be clarified.

--Jeroen
 
[1] http://www.debian.org/News/weekly/2004/24/
[2] Technically, this very issue was not a cyclic build-depends at
package level, but there was some 'binary in source package' hack
involved

-- 
Jeroen van Wolffelaar
[EMAIL PROTECTED] (also for Jabber  MSN; ICQ: 33944357)
http://Jeroen.A-Eskwadraat.nl


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: compilers that self compile

2004-10-20 Thread Sven Mueller
Antonio S. de A. Terceiro [u] wrote on 20/10/2004 18:18:
How do people in Debian handle compilers that depend on itself to
be compiled?
Good question.
More precisely:
   * can a package build-depend on itself? I've saw that gcc, for
 example, don't (at least explicitily) build-depend on itself.
gcc doesn't depend on itself to be built, but it needs _any_ C compiler 
available to compile an intermediate state of itself, which (basically) 
then compiles the final stage. That final stage than compiles itself 
again to check wether the output it the same as from the second compile.

   * how packages like those go in the repository for the first time?
They probably only can go in if there is an alternate way of compiling 
it, like there is with gcc.

I couldn't find references about that on either in Debian Policy Manual
or in Debian Developer's Reference. If I missed something, please point
me were.
I would be interested in the solution, too, but so far I don't know a 
single compiler which absolutely needs itself to compile.

cu,
sven
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: compilers that self compile

2004-10-20 Thread Jeroen van Wolffelaar
On Wed, Oct 20, 2004 at 01:18:39PM -0300, Antonio S. de A. Terceiro wrote:
 Hello all,
 
 How do people in Debian handle compilers that depend on itself to
 be compiled?

I asked this question a while ago too. Quoting DWN[1]:

| Cyclic Build Dependencies. Jeroen van Wolffelaar [11]noticed that
| [12]oaklisp contains a binary file which is used for bootstrapping.
| There are at least half a dozen such [13]loops in Debian already.
| Edmund Grimley Evans [14]assumed that such cyclic build dependencies
| are acceptable in Debian.
| 
|  11. http://lists.debian.org/debian-legal/2004/06/msg00113.html
|  12. http://packages.debian.org/oaklisp
|  13. http://lists.debian.org/debian-legal/2004/06/msg00116.html
|  14. http://lists.debian.org/debian-legal/2004/06/msg00114.html

So, yes, that's acceptable[2]. You must ensure you can change sources as
you like, and then get a new package, but you don't need to make
bootstrapping possible/easy.

* can a package build-depend on itself? I've saw that gcc, for
  example, don't (at least explicitily) build-depend on itself.

It does in a way: build-essential is an assumed build-dependency, and
gcc is depended on by build-essential. ghc6 does build-depend on itself.

* 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.

 I couldn't find references about that on either in Debian Policy Manual
 or in Debian Developer's Reference. If I missed something, please point
 me were.

This is indeed something which IMHO needs to be clarified.

--Jeroen
 
[1] http://www.debian.org/News/weekly/2004/24/
[2] Technically, this very issue was not a cyclic build-depends at
package level, but there was some 'binary in source package' hack
involved

-- 
Jeroen van Wolffelaar
[EMAIL PROTECTED] (also for Jabber  MSN; ICQ: 33944357)
http://Jeroen.A-Eskwadraat.nl



Re: compilers that self compile

2004-10-20 Thread Sven Mueller

Antonio S. de A. Terceiro [u] wrote on 20/10/2004 18:18:


How do people in Debian handle compilers that depend on itself to
be compiled?


Good question.


More precisely:

   * can a package build-depend on itself? I've saw that gcc, for
 example, don't (at least explicitily) build-depend on itself.


gcc doesn't depend on itself to be built, but it needs _any_ C compiler 
available to compile an intermediate state of itself, which (basically) 
then compiles the final stage. That final stage than compiles itself 
again to check wether the output it the same as from the second compile.



   * how packages like those go in the repository for the first time?


They probably only can go in if there is an alternate way of compiling 
it, like there is with gcc.



I couldn't find references about that on either in Debian Policy Manual
or in Debian Developer's Reference. If I missed something, please point
me were.


I would be interested in the solution, too, but so far I don't know a 
single compiler which absolutely needs itself to compile.


cu,
sven