Re: How do I depend on a port regardless of its flavor?

From: Tatsuki Makino <tatsuki_makino_at_hotmail.com>
Date: Wed, 14 Dec 2022 03:34:01 UTC
Hello.

Mel Pilgrim wrote on 2022/12/12 02:52:
> But I need to also specify a version spec.  However, if I do this:
> RUN_DEPENDS= foo>=1.2:devel/foo
> That only works if the default flavor is installed.  If one of the non-default flavors is installed, the Ports System doesn't find it and tries to build the port.  Similarly, pkg thinks I need to install the default flavor.
> The flavors aren't part of a framework like Python, so I don't have a set of variables I can use to construct a universal pkg name.
> How do I add a version-limited dependency on a flavored port?

Is this simply about the following?

RUN_DEPENDS= foo>=1.2:devel/foo@nondefaultflavor

The majority of the Python module is like this.

RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}foo>0:category/py-foo@${PY_FLAVOR}

PYTHON_PKGNAMEPREFIX is linked to PY_FLAVOR.

It seems that python basically guarantees that only the default FLAVOR is used, so it does not cause problems, but there are some FLAVORs that cause problems.
For example, if your port has:

RUN_DEPENDS= foo>=1.2:devel/foo \
             llvm-devel-lite>0:devel/llvm-devel@lite

And, devel/foo has:
RUN_DEPENDS= llvm-devel>0:devel/llvm-devel@default

Since llvm-devel and llvm-devel-lite are CONFLICTS_INSTALL, they are not considered to work well.
So I dislike non-python FLAVOR :) and I believe that if FLAVORS is to be used, a dynamic method like python should be implemented.

Regards.