pkgsrc et options de dépendences

Je suis en train de packager un module apache, mod-vhost-ldap, qui a pour dépendence www/apache22 et par conséquent devel/apr-util. Jusque là, rien de terrible, les inclusions suivantes gèrent ces dépendances directes :

Seulement voila, pour que mod-vhost-ldap compile correctement, devel/apr-utils doit impérativement être compilé avec le support LDAP. Ceci est réalisé en plaçant la variable PKG_OPTIONS.apr-util=ldap par exemple dans /etc/mk.conf. Cependant, si cette variable n’est pas renseignée, et que rien de particulier n’est spécifié dans le Makefile du package mod-vhost-ldap, la compilation de ce dernier foirera lamentablement et je vous met au défi d’en trouver la cause.

Pour ces cas particuliers, un package qui dépend d’une particularité du build d’un autre package, une piste se trouve dans net/fetch, ecrit par Joerg. L’astuce n’est pas de toute beauté: si la condition sus-citée n’est pas valide, on arrete le port grace à la directive PKG_FAIL_REASON à laquelle on affecte un message d’erreur compréhensible. Cela se traduit par les lignes suivantes :

Moyennant quoi, notre package ne compilera que si la condition “PKG_BUILD_OPTIONS contient au moins l’option ldap”.