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>