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.

Reply via email to