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

Re: Creating debs using a cross-build envronment?



Svante Signell wrote:
> On Thu, 2012-02-23 at 13:42 +0000, Neil Williams wrote:

>> No, we've been here before in Emdebian. When foo needs foo, foo needs
>> to be modified to build mini-foo which doesn't need extra stuff, and
>> provides just enough functionality to allow mini-foo to be installed
>> (natively) and then support the building of another foo before you maybe
>> go on and build the full foo.
[...]
> OK, that's the way forward if cross-build method does not work?

No, that's the way forward period. ;-)

If there were no build-depends loops outside of build-essential,
bringing up new architectures would be much simpler.  So that (or some
variant on it) is a property some people want to bring about.

Otherwise we have to do the same fussy work to break the same
build-dependency loops each time it is time to add a new arch.  FWIW,
the easy way to do that is usually to follow upstream instructions to
build and install some of the involved packages "by hand", and then
use the normal procedure to rebuild them using rules from the Debian
source package.

More details about the current state are here:

  http://wiki.debian.org/DebianBootstrap

I'd suggest documenting the gnat build-depends loop and any
nonstandard steps you use to break it in gnat-4.6's README.source to
help the next person who wants to solve the same problem to save time.

Unfortunately I'm not aware of a free GNAT-compatible Ada compiler
written in C, so cross-building to avoid the bootstrap is probably
your best bet in the short term.  As doc/install.texi explains:

  "In order to build the Ada compiler (GNAT) you must already have GNAT
   installed because portions of the Ada frontend are written in Ada (with
   GNAT extensions.)  Refer to the Ada installation instructions for more
   specific information."

http://lists.freebsd.org/pipermail/freebsd-hackers/2009-May/028490.html


Reply to: