diff options
4 files changed, 78 insertions, 0 deletions
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix index c23897192b4c..9844e3c435d1 100644 --- a/nixos/modules/services/web-servers/apache-httpd/default.nix +++ b/nixos/modules/services/web-servers/apache-httpd/default.nix @@ -337,6 +337,7 @@ let allModules = concatMap (svc: svc.extraModulesPre) allSubservices ++ map (name: {inherit name; path = "${httpd}/modules/mod_${name}.so";}) apacheModules + ++ optional mainCfg.enableMellon { name = "auth_mellon"; path = "${pkgs.apacheHttpdPackages.mod_auth_mellon}/modules/mod_auth_mellon.so"; } ++ optional enablePHP { name = "php5"; path = "${php}/modules/libphp5.so"; } ++ concatMap (svc: svc.extraModules) allSubservices ++ extraForeignModules; @@ -541,6 +542,12 @@ in ''; }; + enableMellon = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the mod_auth_mellon module."; + }; + enablePHP = mkOption { type = types.bool; default = false; @@ -650,6 +657,7 @@ in environment = optionalAttrs enablePHP { PHPRC = phpIni; } + // optionalAttrs mainCfg.enableMellon { LD_LIBRARY_PATH = "${pkgs.xmlsec}/lib"; } // (listToAttrs (concatMap (svc: svc.globalEnvVars) allSubservices)); preStart = diff --git a/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix b/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix new file mode 100644 index 000000000000..5bad8b7dc53d --- /dev/null +++ b/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix @@ -0,0 +1,38 @@ +{ stdenv, apacheHttpd, autoconf, automake, autoreconfHook, curl, fetchFromGitHub, glib, lasso, libtool, libxml2, libxslt, openssl, pkgconfig, xmlsec }: + +stdenv.mkDerivation rec { + + name = "mod_auth_mellon-${version}"; + version = "0.12.0"; + + src = fetchFromGitHub { + owner = "UNINETT"; + repo = "mod_auth_mellon"; + rev = "v${version}"; + sha256 = "1p6v6vgrfvgvc5y2ygqyyxi0klpm3nxaw3fg35zmpmw663w8skqn"; + }; + + patches = [ + ./fixdeps.patch + ]; + + buildInputs = [ apacheHttpd autoconf autoreconfHook automake curl glib lasso libtool libxml2 libxslt openssl pkgconfig xmlsec ]; + + configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs" "--exec-prefix=$out"]; + + installPhase = '' + mkdir -p $out/bin + cp ./mellon_create_metadata.sh $out/bin + mkdir -p $out/modules + cp ./.libs/mod_auth_mellon.so $out/modules + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/UNINETT/mod_auth_mellon; + description = "An Apache module with a simple SAML 2.0 service provider"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ womfoo ]; + }; + +} diff --git a/pkgs/servers/http/apache-modules/mod_auth_mellon/fixdeps.patch b/pkgs/servers/http/apache-modules/mod_auth_mellon/fixdeps.patch new file mode 100644 index 000000000000..63b69fb142f6 --- /dev/null +++ b/pkgs/servers/http/apache-modules/mod_auth_mellon/fixdeps.patch @@ -0,0 +1,30 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -74,6 +74,16 @@ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.12]) + AC_SUBST(GLIB_CFLAGS) + AC_SUBST(GLIB_LIBS) + ++#include <libxml/uri.h> ++PKG_CHECK_MODULES(LIBXML2, libxml-2.0) ++AC_SUBST(LIBXML2_CFLAGS) ++AC_SUBST(LIBXML2_LIBS) ++ ++#include <xmlsec/xmlenc.h> ++PKG_CHECK_MODULES(XMLSEC, xmlsec1-openssl) ++AC_SUBST(XMLSEC_CFLAGS) ++AC_SUBST(XMLSEC_LIBS) ++ + # Test to see if we can include lasso/utils.h + # AC_CHECK_HEADER won't work correctly unless we specifiy the include directories + # found in the LASSO_CFLAGS. Save and restore CFLAGS and CPPFLAGS. +--- a/Makefile.in ++++ b/Makefile.in +@@ -25,7 +25,7 @@ + all: mod_auth_mellon.la + + mod_auth_mellon.la: $(SRC) auth_mellon.h auth_mellon_compat.h +- @APXS2@ -Wc,"-std=c99 @OPENSSL_CFLAGS@ @LASSO_CFLAGS@ @CURL_CFLAGS@ @GLIB_CFLAGS@ @CFLAGS@" -Wl,"@OPENSSL_LIBS@ @LASSO_LIBS@ @CURL_LIBS@ @GLIB_LIBS@" -Wc,-Wall -Wc,-g -c $(SRC) ++ @APXS2@ -Wc,"-std=c99 @OPENSSL_CFLAGS@ @LASSO_CFLAGS@ @CURL_CFLAGS@ @GLIB_CFLAGS@ @CFLAGS@ @LIBXML2_CFLAGS@ @XMLSEC_CFLAGS@ @CFLAGS@" -Wl,"@OPENSSL_LIBS@ @LASSO_LIBS@ @CURL_LIBS@ @GLIB_LIBS@ @LIBXML2_LIBS@ @XMLSEC_LIBS@" -Wc,-Wall -Wc,-g -c $(SRC) + + + # Building configure (for distribution) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cf3047dfa259..db67e5bd2711 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9731,6 +9731,8 @@ in apacheHttpdPackagesFor = apacheHttpd: self: let callPackage = newScope self; in { inherit apacheHttpd; + mod_auth_mellon = callPackage ../servers/http/apache-modules/mod_auth_mellon { }; + mod_dnssd = callPackage ../servers/http/apache-modules/mod_dnssd { }; mod_evasive = callPackage ../servers/http/apache-modules/mod_evasive { }; |