[distri] Re: Building distri packages on distri

  • From: Michael Stapelberg <michael+distri@xxxxxxxxxxxxx>
  • To: distri@xxxxxxxxxxxxx
  • Date: Tue, 21 Sep 2021 09:17:08 +0200

Good morning Jan

On Mon, 20 Sept 2021 at 12:40, Jan Bölsche <jan@xxxxxxxxxxxx> wrote:

Hi Michael,

The mpc package is the multiprecision floating point library
Ha, that make so much more sense! Sorry for the confusion.

Got it! Needed packages to build a package are the ones explicitly listed
in build.textproto plus the dependencies of the referenced builder. It
might be helpful, on a fresh system, to have this list available for
scripting. A subcommand like `distri list-build-dependencies` or `distri
ls-build-deps` that basically outputs the result of
https://github.com/distr1/distri/blob/1c7fc9ad7e93e1de8fb85d5c4f0ca59f1f8c15e2/internal/build/build.go#L1078
could be used as a building block for boot-strapping a working build
environment. What do you think?


It’s a building block for sure, but bootstrapping is more complicated
unfortunately.
Take a look at https://github.com/distr1/distri/issues/14 for some notes.



Well, `distri batch` builds multiple packages in correct order, thereby
fulfilling all dependencies.
The only downside is that it might attempt to build much more than you
are looking for, depending on what’s in your $DISTRIROOT/_build.
If you clone the entire mirror, it shouldn’t build anything, and if you
then change something, it should build all that’s necessary.
That is very useful. `distri batch` also relies on the builder's deps to
already be installed, right?


distri batch should not expect anything to be *installed*, but only
*present* in the _build directory.


A simpler alternative to the proposed subcommand above could be `distri
builder-deps`, that just outputs the union of all builder's dependencies.
So you could bootstrap a dev environment like so:

`distri install $(distri builder-deps)`

I think that would be even nicer than simply having all build tools
pre-installed.


I think it’d be better to spend time on automatically downloading any
required packages, no matter whether they are builder-deps or not.
Also, downloading into _build is preferred over installing into the system
:)



Cheers!
Jan



Other related posts: