class ShibbolethSp < Formula desc "Shibboleth 2 Service Provider daemon" homepage "https://wiki.shibboleth.net/confluence/display/SHIB2" url "https://shibboleth.net/downloads/service-provider/3.0.2/shibboleth-sp-3.0.2.tar.bz2" sha256 "7aab399aeaf39145c60e1713dbc29a65f618e9eca84505f5ed03cee63e3f31a3" revision 2 bottle do sha256 "cfa12a8f9c4c972451927b7aec45dc0e9409773ba8c81307a2dba9dcb1b4e772" => :mojave sha256 "8a541caff18ccbde586b7a699e233b738a688cdb22dbd8c940ce4fc544393f81" => :high_sierra sha256 "4476bda34101304e690b5e7c98df4ef5e5cbb31d30c4043329d27e18900cc430" => :sierra sha256 "c8d4e77021c1b2b576df886d36d930aedc025d1918de55dcc33276847489a5d7" => :el_capitan end depends_on "apr" => :build depends_on "apr-util" => :build depends_on "pkg-config" => :build depends_on "boost" depends_on "httpd" if MacOS.version >= :high_sierra depends_on "log4shib" depends_on :macos => :yosemite depends_on "opensaml" depends_on "openssl" depends_on "unixodbc" depends_on "xerces-c" depends_on "xml-security-c" depends_on "xml-tooling-c" needs :cxx11 def install ENV.O2 # Os breaks the build ENV.cxx11 args = %W[ --disable-debug --disable-dependency-tracking --disable-silent-rules --prefix=#{prefix} --localstatedir=#{var} --sysconfdir=#{etc} --with-xmltooling=#{Formula["xml-tooling-c"].opt_prefix} --with-saml=#{Formula["opensaml"].opt_prefix} --enable-apache-24 DYLD_LIBRARY_PATH=#{lib} ] if MacOS.version >= :high_sierra args << "--with-apxs24=#{Formula["httpd"].opt_bin}/apxs" end system "./configure", *args system "make", "install" end def post_install (var/"run/shibboleth/").mkpath (var/"cache/shibboleth").mkpath end def caveats mod = build.with?("apache-22") ? "mod_shib_22.so" : "mod_shib_24.so" <<~EOS You must manually edit httpd.conf to include LoadModule mod_shib #{opt_lib}/shibboleth/#{mod} You must also manually configure #{etc}/shibboleth/shibboleth2.xml as per your own requirements. For more information please see https://wiki.shibboleth.net/confluence/display/EDS10/3.1+Configuring+the+Service+Provider EOS end plist_options :startup => true, :manual => "shibd" def plist; <<~EOS Label #{plist_name} ProgramArguments #{opt_sbin}/shibd -F -f -p #{var}/run/shibboleth/shibd.pid RunAtLoad KeepAlive EOS end test do system sbin/"shibd", "-t" end end