about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorArtturi <Artturin@artturin.com>2023-11-25 16:22:31 +0200
committerGitHub <noreply@github.com>2023-11-25 16:22:31 +0200
commit4706651a1612f3b86d2481603369bcd7db175baf (patch)
tree7151ea520c33a1d09f6a61e67e54935a128c7926 /pkgs
parentd3dd31e583fe0e68e282cc86f1619be353c66bd9 (diff)
parenta08880000dee157f618dc790ac3093e80cfc2b36 (diff)
Merge pull request #268187 from imincik/geoserver-fix-data-dir
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/servers/geospatial/geoserver/data-dir.patch18
-rw-r--r--pkgs/servers/geospatial/geoserver/default.nix21
2 files changed, 37 insertions, 2 deletions
diff --git a/pkgs/servers/geospatial/geoserver/data-dir.patch b/pkgs/servers/geospatial/geoserver/data-dir.patch
new file mode 100644
index 0000000000000..8693216279984
--- /dev/null
+++ b/pkgs/servers/geospatial/geoserver/data-dir.patch
@@ -0,0 +1,18 @@
+--- a/bin/startup.sh
++++ b/bin/startup.sh
+@@ -66,12 +66,9 @@ fi
+ 
+ #Find the configuration directory: GEOSERVER_DATA_DIR
+ if [ -z "${GEOSERVER_DATA_DIR:-}" ]; then
+-    if [ -r "${GEOSERVER_HOME}/data_dir" ]; then
+-        export GEOSERVER_DATA_DIR="${GEOSERVER_HOME}/data_dir"
+-    else
+-        echo "No GEOSERVER_DATA_DIR found, using application defaults"
+-	      GEOSERVER_DATA_DIR=""
+-    fi
++  echo "GEOSERVER_DATA_DIR is not provided. Using $(pwd)/geoserver/data_dir directory"
++  mkdir -p "$(pwd)"/geoserver/data_dir
++  GEOSERVER_DATA_DIR="$(pwd)/geoserver/data_dir"
+ fi
+ 
+ cd "${GEOSERVER_HOME}" || exit 1
diff --git a/pkgs/servers/geospatial/geoserver/default.nix b/pkgs/servers/geospatial/geoserver/default.nix
index 4f0b657fda66c..c0a8bfbdf77e3 100644
--- a/pkgs/servers/geospatial/geoserver/default.nix
+++ b/pkgs/servers/geospatial/geoserver/default.nix
@@ -1,4 +1,12 @@
-{ lib, stdenv, fetchurl, unzip, jre, makeWrapper }:
+{ lib
+, fetchurl
+, makeWrapper
+, nixosTests
+, stdenv
+
+, jre
+, unzip
+}:
 
 stdenv.mkDerivation rec {
   pname = "geoserver";
@@ -9,6 +17,11 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-xX1rAONMh5XSWGPXkVMemAvG34DDNmu2018HsTvY7G0=";
   };
 
+  patches = [
+    # set GEOSERVER_DATA_DIR to current working directory if not provided
+    ./data-dir.patch
+  ];
+
   sourceRoot = ".";
   nativeBuildInputs = [ unzip makeWrapper ];
 
@@ -27,12 +40,16 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru = {
+    tests.geoserver = nixosTests.geoserver;
+  };
+
   meta = with lib; {
     description = "Open source server for sharing geospatial data";
     homepage = "https://geoserver.org/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ sikmir ];
+    maintainers = teams.geospatial.members;
     platforms = platforms.all;
   };
 }