Re: Arcana of the ports build system

From: Gleb Popov <arrowd_at_freebsd.org>
Date: Mon, 06 Jan 2025 14:38:49 UTC
On Mon, Jan 6, 2025 at 5:18 PM George Mitchell <george+freebsd@m5p.com> wrote:
>
> On 1/6/25 09:00, Gleb Popov wrote:
> > On Mon, Jan 6, 2025 at 4:05 PM George Mitchell <george+freebsd@m5p.com> wrote:
> >>[...]
> >> Now in fact I have net/asio installed, and /usr/local/include/asio.hpp
> >> exists.  But attempting to build abiword stops and complains:
> >> Does not build with asio from system
> >> As far as I can tell, no such thing as "asio from system" even exists.
> >
> > The "system" term here means "installed into system-wide prefix" or in
> > other words "coming from pkg install".
> > The antonym to "system" in this context is "bundled". I presume that
> > Abiword has an option to build with asio that comes together with
> > Abiword itself.
> >
> So ... do I understand that the way to solve this problem is,
> counterintuitively. to UNINSTALL asio??  According to the pkg database,
> asio was only installed because abiword depends on it!!  I'll try it,
> though.

The

COLSERVICE_BUILD_DEPENDS=       ${LOCALBASE}/include/asio.hpp:net/asio

makes Abiword depend on asio if the COLSERVICE option is turned on.

> Guess what happened.  There was no "BROKEN" complaint to begin with,
> but the first thing that happened was that building editors/abiword
> caused net/asio to be built and reinstalled.  At that point, the build
> returned to editors/abiword, and now it said:
>
> abiword-3.0.5_11 is marked as broken: Does not build with asio from
> system Does not build with asio from system.
> *** Error code 1
>
> So something is wrong with the Makefile as it stands, and I have no
> clue on how to fix it.  Thanks for your attention.          -- George

In the same vein, the

COLSERVICE_BROKEN=              Does not build with asio from system

works just like plain BROKEN= knob, but only when COLSERVICE option is enabled.

You need to turn this option off (or just remove COLSERVICE_BROKEN and
see what exactly breaks in this case).