The Shibboleth V1 software has reached its End of Life and is no longer supported. This documentation is available for historical purposes only.

FreeBSDNotes

ServiceProvider Notes

Successful C++ SP Builds

  • FreeBSD 5.3

Build Environment Setup

  • Set XERCESCROOT to the root of the unpacked Xerces-C tarball

configure Commands

$ 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=)
$ log4cpp: ./configure --disable-static --disable-doxygen --prefix=/opt/shibboleth-sp
$ Xerces-C: ./runConfigure -p freebsd -c gcc -x g++ -r pthread -b 32 -P /opt/shibboleth-sp
$ XML-Security-C: ./configure --without-xalan --prefix=/opt/shibboleth-sp
$ OpenSAML: ./configure --with-curl=/opt/shibboleth-sp --with-log4cpp=/opt/shibboleth-sp --prefix=/opt/shibboleth-sp -C
$ Shibboleth: ./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

Build Notes

  • 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.so must be used instead of the BSD version. This is automatically handled by the configure script.
  • 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/rpc/rpc.h and oncrpc/xdr_rec.c for 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.conf file to remap things:
libc_r.so.5				 libpthread.so.1 # Everything that uses 'libc_r'
libc_r.so					libpthread.so	# now uses 'libpthread'

Runtime Notes

  • Set LD_LIBRARY_PATH to 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 =shibd daemon and when starting Apache (so you might put it in =/usr/local/sbin/apachectl=).