Table of Contents |
---|
Building the Native SP from SRPM Source Packages
...
automake
boost-devel
chrpath
doxygen
gcc-c++
groff
httpd-devel
libidn-devel
openldap-devel
openssl-devel
redhat-rpm-config
rpm-build
(forrpmbuild
)stunnel (for curl-openssl)
unixODBC-devel
You can save some time during the build process by installing all of the above that are available on your system, along with their dependencies. On "yum" platforms, the simplest way is just to install them all at once:
...
To rebuild the whole set of packages required for the SP, you'll need to download the SRPMs from
the download site and save them to /usr/src/redhat/SRPMS/
.
...
A few options are built-in to control certain dependencies and turn on and off some optional features:
| Effect |
---|---|
--without adfs | Don't include ADFS module |
--with odbc | Expressly include the ODBC storage plugin (requires |
--without odbc | Don't include the ODBC plugin, even if it can be built |
--with log4cpp | Build against the original log4cpp library instead of log4shib |
--with fastcgi | Include FastCGI support (requires |
--without builtinapache | Bypass requirement for native OS httpd-devel package |
Targeting a Custom Apache
...
If you need to disable the RPM's dependency on the native OS Apache development package, you can use the option for that listed above in the table.
Examples
Amazon Linux with Apache 2.4
Amazon Linux with Apache 2.4 requires some additional arguments to be provided. This is because it uses the package http24_devel
rather than http_devel
and apxs
is in a different location than expected.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# Source RPMS to rebuild, and the order to rebuild them in. RPMS_ORDER='log4shib-1.0.9-3.3.src.rpm xerces-c-3.1.4-1.2.src.rpm xml-security-c-1.7.3-3.3.src.rpm curl-openssl-7.57.0-1.1.src.rpm xmltooling-1.6.3-3.1.src.rpm opensaml-2.6.1-3.1.src.rpm shibboleth-2.6.1-3.1.src.rpm' for rpm in $RPMS_ORDER; do echo $rpm; wget "http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/src/$rpm" done # Build tools, as suggested earlier in the wiki yum install \ automake \ boost-devel \ chrpath \ doxygen \ gcc-c++ \ groff \ httpd24-devel \ libidn-devel \ openldap-devel \ openssl-devel \ redhat-rpm-config \ rpm-build \ stunnel \ unixODBC-devel for rpm in $RPMS_ORDER; do echo $rpm; # The shib source rpm has special instructions, so do that seperately if [[ $rpm != shibboleth* ]]; then sudo rpmbuild --rebuild $rpm # Install what we just built since it may be a dependency of the next build sudo yum localinstall -y /usr/src/rpm/RPMS/x86_64/*.rpm fi done # Shibboleth needs to be build differently since it names its apache24 packages differently. # We need to tell the build to ignore looking for OS packages. sudo rpmbuild --rebuild --without builtinapache -D 'shib_options -with-apxs24=/usr/bin/apxs -with-apr1=/usr/bin/apr-1-config -enable-apache-24' shibboleth* sudo yum localinstall /usr/src/rpm/RPMS/x86_64/shibboleth-2.6.1-3.1.x86_64.rpm # Confirm it has the apache mod you need rpm -qpl /usr/src/rpm/RPMS/x86_64/shibboleth-2.6.1-3.1.x86_64.rpm | grep mod_shib # Expected output: /usr/lib64/shibboleth/mod_shib_24.so |