Re: dns/bind916 builds rust unexpectedly

From: Dan Mahoney <freebsd_at_gushi.org>
Date: Mon, 25 Sep 2023 21:58:23 UTC

> On Sep 25, 2023, at 14:41, Robert Clausecker <fuz@fuz.su> wrote:
> 
> Am Mon, Sep 25, 2023 at 02:15:19PM -0700 schrieb Edward Sanford Sutton, III:
>>  Poudriere still causes crashes in my experience depending on hardware,
>> poudriere configuration, and what you tell it to build; I have to change
>> defaults to use it and then it is fine. With only 32GB of RAM, if I have it
>> operate the whole build process in RAM
>> (USE_TMPFS=all>/usr/local/etc/poudriere) then I have to limit myself to 2
>> build jobs (PARALLEL_JOBS=2, though I specify it on the poudriere command
>> line) or I 'may' have issues. Within that I can have multiple jobs per build
>> (ALLOW_MAKE_JOBS=yes>/usr/local/etc/poudriere,
>> MAKE_JOBS_NUMBER=4>/usr/local/etc/poudriere.d/make.conf) which gets through
>> each compile job much faster so no one job is as likely to be running
>> 'alone' holding up other jobs while cores sit idle.
> 
> Ports tend to eat more and more storage for their source and dependencies these
> days.  I encountered the same issue you had.  A simple fix is to switch to
> USE_TMPFS="data localbase" which keeps the source code and objects of the package
> to be built on disk while placing dependencies into RAM.  This does not actually
> reduce performance by much as the biggest spike in disk usage is when dependencies
> are installed and the distfile is extracted.  This setting helps with the former
> while not doing much to the latter.  During the build, compilers infrequently
> write small objects to disk, which gets handled very well by the write cache, so
> having the WRKDIR on disk doesn't hurt.  The cache also quickly picks up on
> frequently needed source files, so there's little penalty in having to read them
> from disk every once in a while.

I really, really wish the ports tree supported the option of:

"I am building package X, but it requires dependency A, B, and C, which I will build as completely standard, so pretty friggin please, just pkg install them."

So often have I done the dance of "Make...crap, ^c^c^c, pkg install autoconf...Make, ...dammit... pkg install dialog4ports....make....dammit, crap install bison...."

pkg, as far as I know, has no concept of tracking the build-dependencies of a thing, but I would love the option of pkg --install-all-build-deps-for foo.

"Just run poudriere" is a really crappy option when you just have a single box on an AWS t2-tiny install.

-Dan