Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Feb 2017 10:38:52 +0100
From:      Christian Ullrich <chris@chrullrich.net>
To:        <freebsd-ports@freebsd.org>
Subject:   poudriere and ports looking for specific files
Message-ID:  <649c74ae-baf4-3bc1-c7d1-e71acea4061f@chrullrich.net>

next in thread | raw e-mail | index | archive | help
Hello,

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"
.else
LIB_DEPENDS+=           libkrb5.so:security/heimdal
CONFIGURE_ARGS+=        --with-gssapi="${LOCALBASE}"
.endif


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?

Thanks!

-- 
Christian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?649c74ae-baf4-3bc1-c7d1-e71acea4061f>