portmaster new development

John Kennedy warlock at phouka.net
Sun Dec 27 13:54:28 UTC 2020


On Sat, Dec 26, 2020 at 07:23:59PM -0800, Thomas Mueller wrote:
> ... An improved portmaster arouses my interest.  Maybe modify the name so it can be added to the ports tree and coexist with the "official" portmaster.
> Desired features/options would be to keep going rather than stop when one port fails to build, and the ability to install build dependencies, which may be useful for building other software.
> 
> With synth, I had a difficult time getting everything that was built to install, some packages like bison are needed in building other software.
> 
> How is poudriere in that regard?  I never used poudriere, have been intimidated by not wanting to use zfs or dialog4ports, or such an elaborate setup just to update one or a few ports.

  I'm a dinosaur, so I was a fan of old portmaster for quite some time.  I'd
say it's downfall was incompatible build dependencies, since it didn't build
them in a jail.  As packages got more complex and port-count went up, lots
of breakage (at least outside of poudriere).

  I tried poudriere, didn't quite get my head around it and found synth.  The
original synth worked for me for quite some time, but it's downfall was the
dependency on gcc6-aux (I think for ADA support?) when I got off the beaten
path into ARM and didn't want to cross-compile.  I had a raspberry pi and I
really wanted it to be able to recompile itself natively.  I think there were
plans for a csynth (rewritten in C, as I understood it) to fix that "issue"
but by then I'd taken a second shot at figuring out poudriere and moved on.

  I think the new portmaster was in the works by then, but I'd reported
enough build issues at that point to be wary of non-poudriere build issues.
The author seemed to be hacking away at my original portmaster issues, I
just didn't want to wait.

  My $.02?  Don't worry about build dependencies, make them a target and
you'll be fine.  I've got devel/gmake, devel/m4 and devel/bison in mine.
I'm a fan of ZFS, so that isn't a showstopper for me.  Do what works for
you, so long as it handles incompatible build dependencies right.  Using
jail(s) is one way to do that, but I'm pretty sure others have used just
plain old chroot() to pull it off.


  Poudriere (and synth) tended to rebuild EVERYTHING that depended on some-
thing that changed.  That was the safe behavior, but boy did that hurt when
people kept on making more and more compilers a dependency.  The original
portmaster didn't, but occasionally had problems when it didn't.  I got in
the habit of periodically recompiling everything.


  I've said "incompatible build dependency" a few times.  I don't have
a real, old example but if A depends on B and C depends on D and you want
A & B but C can't co-exist with D, you've got issues.  I'd run into
that with programs that ran on top of X having incompatible build deps,
but not an issue if built in jails where they didn't have to be on the
disk at the same time as with original portmaster.



More information about the freebsd-ports mailing list