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