Successful C++ SP Builds
- FreeBSD 5.3
Build Environment Setup
XERCESCROOTto the root of the unpacked Xerces-C tarball
$ OpenSSL: (just use the standard ports version)
$ libcurl: (use the standard ports version), or use =./configure --disable-static --without-ca-bundle --enable-thread --prefix=/opt/shibboleth-sp=)
./configure --disable-static --disable-doxygen --prefix=/opt/shibboleth-sp
./runConfigure -p freebsd -c gcc -x g++ -r pthread -b 32 -P /opt/shibboleth-sp
./configure --without-xalan --prefix=/opt/shibboleth-sp
./configure --with-curl=/opt/shibboleth-sp --with-log4cpp=/opt/shibboleth-sp --prefix=/opt/shibboleth-sp -C
./configure --with-saml=/opt/shibboleth-sp --with-log4cpp=/opt/shibboleth-sp --enable-apache-20 --with-apxs=/usr/local/sbin/apxs --prefix=/opt/shibboleth-sp -C
- On FreeBSD, the ONC RPC library used by Shibboleth for www/shibd connectivity is not thread-safe for clients or servers. Since shibd is multi-threaded, the Shibboleth-supplied version of
liboncrpc.somust be used instead of the BSD version. This is automatically handled by the
- However, the ONC package included in the latest released Shibboleth code base does not compile cleanly on FreeBSD yet. This has been fixed in cvs. Review the diffs to
oncrpc/xdr_rec.cfor these simple fixes. The rest of the code compiled cleanly.
- FreeBSD has apparently been altering their library-naming, and older releases required that threaded libraries link to libc_r instead of libpthread. This has changed in recent versions, but some packages have stale rules to link in -lc_r when building. The easiest way to correct this is to create an
/etc/libmap.conffile to remap things:
LD_LIBRARY_PATHto the lib path containing the dependencies and Shibboleth libraries (e.g.
/opt/shibboleth-sp/lib=). This is required both in the script that starts the =shibddaemon and when starting Apache (so you might put it in =/usr/local/sbin/apachectl=).