Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Sep 2021 08:14:42 -0700
From:      Mel Pilgrim <list_freebsd@bluerosetech.com>
To:        Baptiste Daroussin <bapt@FreeBSD.org>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: Why no flavor_USES helper?
Message-ID:  <c3683d32-d257-7164-987d-1eab3151edc6@bluerosetech.com>
In-Reply-To: <20210906134047.vs2jfg5dsz7c3jm2@aniel.nours.eu>
References:  <8982e300-8b04-f31a-9c49-43d0dd428b38@bluerosetech.com> <20210906081612.rxo2os7dvx5mkvz6@aniel.nours.eu> <1f0f9a6c-09a6-86f9-625f-e9e482dc0e83@bluerosetech.com> <20210906134047.vs2jfg5dsz7c3jm2@aniel.nours.eu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2021-09-06 6:40, Baptiste Daroussin wrote:
> On Mon, Sep 06, 2021 at 06:33:29AM -0700, Mel Pilgrim wrote:
>> On 2021-09-06 1:16, Baptiste Daroussin wrote:
>>> On Sun, Sep 05, 2021 at 10:39:29AM -0700, Mel Pilgrim wrote:
>>>> The flavors helpers like flavor_RUN_DEPENDS are super useful, but I need to
>>>> modify USES based on flavor, and find that there is no helper for it.
>>>
>>> Besause USES are loader 100 lines earlier, meaning only USES are already
>>> processed when we expand the helper.
>>>
>>> Without getting to far in the technical details, USES and FLAVORS are basically
>>> expanded at the moment, in pre and post section, meaning one had to decide
>>> either we should allow USES to define flavors, or we should allow USES helpers.
>>
>> Is this why there odd race conditions between USES and FLAVORS where, for
>> example, if I have a FLAVOR that does USES+=pgsql and WANT_PGSQL, the
>> corresponding postgresqlN-* ports aren't added to *_DEPENDS?
> 
> I don't know, neither heard of that specific case, but it could be, if so, that
> sound like a bug in pgsql.mk, I am interesting in an example that show this
> behaviour.

I use an overlay with poudriere as part of a deployment system.  Part of 
it is ports-mgmt/superpkg, which uses FLAVORS to represent different 
server profiles.  It's mostly a series of lines like this:

.if ${FLAVOR} == mognet
USES+= ds hwtools hyve mailbox mx ns webbase zfstools

Which in turn references Mk/Uses files in the overlay. The one where I 
hit this apparent race condition is Mk/Uses/mailbox.mk which adds 
PostgreSQL server and contrib RUN_DEPENDS with these lines:

USES+=      pgsql phpenv
WANT_PGSQL= contrib server

.include "${PORTSDIR}/Mk/Uses/pgsql.mk"

Without that .include line, the postgres RUN_DEPENDS don't get added.

It's something specific to pgsql.mk.  The phpenv.mk file, a php analog 
to python:env, gets included from this file.  In another overlaid USES 
file, I have USES+=python:env and that also works fine.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c3683d32-d257-7164-987d-1eab3151edc6>