The right way to depend on a package's extra feature

Sergey Skvortsov skv at protey.ru
Sat Aug 6 16:38:24 GMT 2005


Vasil Dimov wrote:
> 
> Yes, but I am looking for solution that:
> * does not change the port we depend on (in your case metakit)
> * does not devolve the flow-control to the user saying "I cannot manage
>   with this situation, you have to do manually this and this".

Just (c) patch /usr/ports/Mk/* to support:
RUN_DEPENDS=/path/to/check/file:${PORTSDIR}/category/portname:target%WITH_FEATURE_1%FEATURE_2=mydb
or even:
RUN_DEPENDS=/path/to/check/file:${PORTSDIR}/category/portname%WITH_FEATURE_1%FEATURE_2=mydb

(IMO delimiter symbol '%' is aesthetic enough)

In such case dependency should be patched/builded/installed as:

cd category/portname && make WITH_FEATURE_1=yes FEATURE_2=mydb target

Of course, it is not a very trivial patchset. And currently this approach
does not support packages. OPTIONS are not installed with packages - so
there is no possibility/sence to parse them. I think a file like
/var/db/pkg/portname/+FEATURES would be introduced, where OPTIONS is subset
of FEATURES. Exact sematics of FEATURES is fuzzy on the first glance, but we
can draw up a formal specification :)

-- 
Sergey Skvortsov
mailto: skv at protey.ru


More information about the freebsd-ports mailing list