Re: FreeBSD ports community is broken [port building configuration notes]

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sun, 18 Feb 2024 16:52:55 UTC
Aryeh Friedman <aryehfriedman_at_gmail.com> wrote on
Date: Sun, 18 Feb 2024 10:37:06 UTC :

> It should not require
> prodiere running on a supermassive machine to work (in many cases
> portmaster and make install recursion fail where prodiere works).

As for configuring for small, slow systems relative to
resource use, I provide some settings that I've
historically used below. Then I have some other notes
after that material.

For a 2 GiByte RAM armv7 system with 3 GiByte swap space
and a UFS file system, no use of tmpfs in normal operation
(since it competes for RAM+SWAP generally):

/usr/local/etc/poudriere.conf has . . .

NO_ZFS=yes
USE_TMPFS=no
PARALLEL_JOBS=2
ALLOW_MAKE_JOBS=yes
MAX_EXECUTION_TIME=432000
NOHANG_TIME=432000
MAX_EXECUTION_TIME_EXTRACT=14400
MAX_EXECUTION_TIME_INSTALL=14400
MAX_EXECUTION_TIME_PACKAGE=57600
MAX_EXECUTION_TIME_DEINSTALL=14400

/usr/local/etc/poudriere.d/make.conf has . . .

MAKE_JOBS_NUMBER=2

/etc/fstab does not specify any tmpfs use or the
like: avoids competing for RAM+SWAP.

The 3 GiBytes of swap space is deliberate: RAM+SWAP
is important for all means of building in such a
context: there are a bunch of ports that have
large memory use for building in all cases.

[armv7 allows around RAM+SWAP=2.5*RAM before
tradeoff/mistuning notices are generated. aarch64
and amd64 allow more like RAM+SWAP=3.4*RAM before
such notices are reported. The detailed multiplier
changes some from build to build, so I leave
margin in my figures to avoid the notices.]

I also historically use USB SSD/NVMe media, no
spinning rust, no microsd cards or such.


As far as more ports building in poudriere than in
"portmaster and make install recursion" in other
respects than resources: it is easier to make ports
build in poudriere. It provides the simpler/cleaner
context for the individual builders. More things
lead to failure outside poudriere that are just not
issues when poudriere is used so more care is needed
setting up the ports for the likes of portmaster use.
(And, yes, I used to use portmaster.) The required
range of testing contexts is wider for use of the
likes of portmaster to know that the port build will
just work in the full range of contexts.

Such issues adds to the port maintainer/committer
development burdens when portmaster or the like are
the target level/type of support.

(Note: synth may be more like poudriere for this
but I've historically had use of platforms that
synth did not support and so have not looked into
the details.)

===
Mark Millard
marklmi at yahoo.com