poudriere and ports looking for specific files

Christian Ullrich chris at chrullrich.net
Mon Feb 13 09:39:00 UTC 2017


I have a problem getting some ports to build correctly in a poudriere 
environment, when their Makefile determines dependencies by looking for 
specific files. The following example is from dns/samba-nsupdate:

# Try to find appropriate GSSAPI libs
.if defined(KRB5_HOME) && exists(${KRB5_HOME}/lib/libgssapi_krb5.so)
CONFIGURE_ARGS+=        --with-gssapi="${KRB5_HOME}"
.elif defined(HEIMDAL_HOME) && exists(${HEIMDAL_HOME}/lib/libgssapi.so)
CONFIGURE_ARGS+=        --with-gssapi="${HEIMDAL_HOME}"
.elif exists(/usr/lib/libkrb5.so) && exists(/usr/bin/krb5-config)
CONFIGURE_ARGS+=        --with-gssapi="/usr"
LIB_DEPENDS+=           libkrb5.so:security/heimdal
CONFIGURE_ARGS+=        --with-gssapi="${LOCALBASE}"

I want to build with MIT Kerberos from ports, which is what the first 
.if block is looking for. Since poudriere always presents a pristine 
file system to ports, this check does not find the library, and 
eventually the port falls back to depending on Heimdal instead.

There are quite a few ports that contain logic like this, enabling a 
dependency based on whether it is installed already. They should 
probably be changed to use OPTIONS instead to declare the dependency 
rather than passively guess at it, but for right now, they don't.

Does poudriere not support this at all?



More information about the freebsd-ports mailing list