diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-12-06 19:57:55 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-02-08 13:48:30 +0000 |
commit | bf3aadfdd39aa197e18bade671fab6726349ffa4 (patch) | |
tree | 698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/servers/keycloak | |
parent | f4afc5a01d9539ce09e47494e679c51f80723d07 (diff) | |
parent | 99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff) | |
download | nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2 nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip |
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/servers/keycloak')
-rw-r--r-- | nixpkgs/pkgs/servers/keycloak/default.nix | 101 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix | 1 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/keycloak/scim-for-keycloak/default.nix | 4 |
3 files changed, 60 insertions, 46 deletions
diff --git a/nixpkgs/pkgs/servers/keycloak/default.nix b/nixpkgs/pkgs/servers/keycloak/default.nix index d9797de6d174..ded809c163e5 100644 --- a/nixpkgs/pkgs/servers/keycloak/default.nix +++ b/nixpkgs/pkgs/servers/keycloak/default.nix @@ -1,73 +1,82 @@ -{ stdenv, lib, fetchzip, makeWrapper, jre, writeText, nixosTests -, postgresql_jdbc ? null, mysql_jdbc ? null +{ stdenv +, lib +, fetchzip +, makeWrapper +, jre +, writeText +, nixosTests , callPackage + +, confFile ? null +, plugins ? [ ] }: -let - mkModuleXml = name: jarFile: writeText "module.xml" '' - <?xml version="1.0" ?> - <module xmlns="urn:jboss:module:1.3" name="${name}"> - <resources> - <resource-root path="${jarFile}"/> - </resources> - <dependencies> - <module name="javax.api"/> - <module name="javax.transaction.api"/> - </dependencies> - </module> - ''; -in stdenv.mkDerivation rec { - pname = "keycloak"; - version = "16.1.0"; + pname = "keycloak"; + version = "18.0.0"; src = fetchzip { - url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip"; - sha256 = "sha256-QVFu3f+mwafoNUttLEVMdoZHMJjjH/TpZAGV7ZvIvh0="; + url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip"; + sha256 = "0fxf9m50hpjplj077z2zjp0qibixz5y4lbc8159cnxbd4gzpkaaf"; }; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper jre ]; + + buildPhase = '' + runHook preBuild + '' + lib.optionalString (confFile != null) '' + install -m 0600 ${confFile} conf/keycloak.conf + '' + '' + install_plugin() { + if [ -d "$1" ]; then + find "$1" -type f \( -iname \*.ear -o -iname \*.jar \) -exec install -m 0500 "{}" "providers/" \; + else + install -m 0500 "$1" "providers/" + fi + } + ${lib.concatMapStringsSep "\n" (pl: "install_plugin ${lib.escapeShellArg pl}") plugins} + '' + '' + export KC_HOME_DIR=$out + export KC_CONF_DIR=$out/conf + + patchShebangs bin/kc.sh + bin/kc.sh build + + runHook postBuild + ''; installPhase = '' + runHook preInstall + mkdir $out cp -r * $out - rm -rf $out/bin/*.{ps1,bat} + rm $out/bin/*.{ps1,bat} - module_path=$out/modules/system/layers/keycloak - if ! [[ -d $module_path ]]; then - echo "The module path $module_path not found!" - exit 1 - fi + runHook postInstall + ''; + + postFixup = '' + substituteInPlace $out/bin/kc.sh --replace ${lib.escapeShellArg "-Dkc.home.dir='$DIRNAME'/../"} '-Dkc.home.dir=$KC_HOME_DIR' + substituteInPlace $out/bin/kc.sh --replace ${lib.escapeShellArg "-Djboss.server.config.dir='$DIRNAME'/../conf"} '-Djboss.server.config.dir=$KC_CONF_DIR' - ${lib.optionalString (postgresql_jdbc != null) '' - mkdir -p $module_path/org/postgresql/main - ln -s ${postgresql_jdbc}/share/java/postgresql-jdbc.jar $module_path/org/postgresql/main/ - ln -s ${mkModuleXml "org.postgresql" "postgresql-jdbc.jar"} $module_path/org/postgresql/main/module.xml - ''} - ${lib.optionalString (mysql_jdbc != null) '' - mkdir -p $module_path/com/mysql/main - ln -s ${mysql_jdbc}/share/java/mysql-connector-java.jar $module_path/com/mysql/main/ - ln -s ${mkModuleXml "com.mysql" "mysql-connector-java.jar"} $module_path/com/mysql/main/module.xml - ''} - - for script in add-user-keycloak.sh add-user.sh domain.sh elytron-tool.sh jboss-cli.sh jconsole.sh jdr.sh standalone.sh wsconsume.sh wsprovide.sh; do - wrapProgram $out/bin/$script --set JAVA_HOME ${jre} + for script in $(find $out/bin -type f -executable); do + wrapProgram "$script" --set JAVA_HOME ${jre} --prefix PATH : ${jre}/bin done - wrapProgram $out/bin/kcadm.sh --prefix PATH : ${jre}/bin - wrapProgram $out/bin/kcreg.sh --prefix PATH : ${jre}/bin ''; passthru = { tests = nixosTests.keycloak; - plugins = callPackage ./all-plugins.nix {}; + plugins = callPackage ./all-plugins.nix { }; + enabledPlugins = plugins; }; meta = with lib; { - homepage = "https://www.keycloak.org/"; + homepage = "https://www.keycloak.org/"; description = "Identity and access management for modern applications and services"; - license = licenses.asl20; - platforms = jre.meta.platforms; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; + license = licenses.asl20; + platforms = jre.meta.platforms; maintainers = with maintainers; [ ngerstle talyz ]; }; diff --git a/nixpkgs/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix b/nixpkgs/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix index b5e23d0fe22d..b388e20aa1b1 100644 --- a/nixpkgs/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix +++ b/nixpkgs/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix @@ -20,6 +20,7 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://github.com/aerogear/keycloak-metrics-spi"; description = "Keycloak Service Provider that adds a metrics endpoint"; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; license = licenses.apsl20; maintainers = with maintainers; [ benley ]; }; diff --git a/nixpkgs/pkgs/servers/keycloak/scim-for-keycloak/default.nix b/nixpkgs/pkgs/servers/keycloak/scim-for-keycloak/default.nix index 1ef06061326e..e2dca3f632e1 100644 --- a/nixpkgs/pkgs/servers/keycloak/scim-for-keycloak/default.nix +++ b/nixpkgs/pkgs/servers/keycloak/scim-for-keycloak/default.nix @@ -30,6 +30,10 @@ javaPackages.mavenfod rec { meta = with lib; { homepage = "https://github.com/Captain-P-Goldfish/scim-for-keycloak"; description = "A third party module that extends Keycloak with SCIM functionality"; + sourceProvenance = with sourceTypes; [ + fromSource + binaryBytecode # dependencies + ]; license = licenses.bsd3; maintainers = with maintainers; [ mkg20001 ]; }; |