diff options
author | Alyssa Ross <hi@alyssa.is> | 2024-02-26 16:20:28 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2024-02-26 16:20:28 +0100 |
commit | 647438344bfc1f77791391e2b4f98eef865c63dc (patch) | |
tree | ef580867fc6cc413940e4330d939cf1afda082cb /nixpkgs/pkgs/servers/geospatial/geoserver/default.nix | |
parent | b084c6a0fab7f32c904c5c8e8db8dddcefbe507f (diff) | |
parent | e3474e1d1e53b70e2b2af73ea26d6340e82f6b8b (diff) | |
download | nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.gz nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.bz2 nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.lz nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.xz nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.zst nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.zip |
Merge commit 'e3474e1d1e53'
Diffstat (limited to 'nixpkgs/pkgs/servers/geospatial/geoserver/default.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/geospatial/geoserver/default.nix | 74 |
1 files changed, 52 insertions, 22 deletions
diff --git a/nixpkgs/pkgs/servers/geospatial/geoserver/default.nix b/nixpkgs/pkgs/servers/geospatial/geoserver/default.nix index a58a3bb717e1..1ad28bfd5d1e 100644 --- a/nixpkgs/pkgs/servers/geospatial/geoserver/default.nix +++ b/nixpkgs/pkgs/servers/geospatial/geoserver/default.nix @@ -1,14 +1,13 @@ { lib +, callPackage , fetchurl , makeWrapper , nixosTests , stdenv - , jre , unzip }: - -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: rec { pname = "geoserver"; version = "2.24.2"; @@ -25,24 +24,55 @@ stdenv.mkDerivation rec { sourceRoot = "."; nativeBuildInputs = [ unzip makeWrapper ]; - installPhase = '' - runHook preInstall - mkdir -p $out/share/geoserver - cp -r . $out/share/geoserver - rm -fr $out/share/geoserver/bin/*.bat - - makeWrapper $out/share/geoserver/bin/startup.sh $out/bin/geoserver-startup \ - --set JAVA_HOME "${jre}" \ - --set GEOSERVER_HOME "$out/share/geoserver" - makeWrapper $out/share/geoserver/bin/shutdown.sh $out/bin/geoserver-shutdown \ - --set JAVA_HOME "${jre}" \ - --set GEOSERVER_HOME "$out/share/geoserver" - runHook postInstall - ''; - - passthru = { - tests.geoserver = nixosTests.geoserver; - }; + installPhase = + let + inputs = finalAttrs.buildInputs or [ ]; + ldLibraryPathEnvName = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"; + in + '' + runHook preInstall + mkdir -p $out/share/geoserver + cp -r . $out/share/geoserver + rm -fr $out/share/geoserver/bin/*.bat + + makeWrapper $out/share/geoserver/bin/startup.sh $out/bin/geoserver-startup \ + --prefix PATH : "${lib.makeBinPath inputs}" \ + --prefix ${ldLibraryPathEnvName} : "${lib.makeLibraryPath inputs}" \ + --set JAVA_HOME "${jre}" \ + --set GEOSERVER_HOME "$out/share/geoserver" + makeWrapper $out/share/geoserver/bin/shutdown.sh $out/bin/geoserver-shutdown \ + --prefix PATH : "${lib.makeBinPath inputs}" \ + --prefix ${ldLibraryPathEnvName} : "${lib.makeLibraryPath inputs}" \ + --set JAVA_HOME "${jre}" \ + --set GEOSERVER_HOME "$out/share/geoserver" + runHook postInstall + ''; + + + passthru = + let + geoserver = finalAttrs.finalPackage; + extensions = lib.attrsets.filterAttrs (n: v: lib.isDerivation v) (callPackage ./extensions.nix { }); + in + { + withExtensions = selector: + let + selectedExtensions = selector extensions; + in + geoserver.overrideAttrs (finalAttrs: previousAttrs: { + pname = previousAttrs.pname + "-with-extensions"; + buildInputs = lib.lists.unique ((previousAttrs.buildInputs or [ ]) ++ lib.lists.concatMap (drv: drv.buildInputs) selectedExtensions); + postInstall = (previousAttrs.postInstall or "") + '' + for extension in ${builtins.toString selectedExtensions} ; do + cp -r $extension/* $out + # Some files are the same for all/several extensions. We allow overwriting them again. + chmod -R +w $out + done + ''; + }); + tests.geoserver = nixosTests.geoserver; + passthru.updateScript = ./update.sh; + }; meta = with lib; { description = "Open source server for sharing geospatial data"; @@ -52,4 +82,4 @@ stdenv.mkDerivation rec { maintainers = teams.geospatial.members; platforms = platforms.all; }; -} +}) |