Child pages
  • FreeBSDNotes

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

Skip to end of metadata
Go to start of metadata

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=).
  • No labels