From dbb11d0990bdae1fa6466e91ce345ecf135a8717 Mon Sep 17 00:00:00 2001 From: Ivan Mincik Date: Sat, 1 Jul 2023 19:05:29 +0200 Subject: [PATCH 1/2] grass: alphabetical reordering of dependencies Code cleanup, no functional changes. --- pkgs/applications/gis/grass/default.nix | 92 ++++++++++++++++++------- 1 file changed, 68 insertions(+), 24 deletions(-) diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix index 19b42b6b7ad7..a3255658cfb5 100644 --- a/pkgs/applications/gis/grass/default.nix +++ b/pkgs/applications/gis/grass/default.nix @@ -1,7 +1,34 @@ -{ lib, stdenv, fetchFromGitHub, flex, bison, pkg-config, zlib, libtiff, libpng, fftw -, cairo, readline, ffmpeg, makeWrapper, wxGTK32, libiconv, libxml2, netcdf, blas -, proj, gdal, geos, sqlite, postgresql, libmysqlclient, python3Packages, proj-datumgrid -, zstd, pdal, wrapGAppsHook +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, wrapGAppsHook + +, bison +, blas +, cairo +, ffmpeg +, fftw +, flex +, gdal +, geos +, libiconv +, libmysqlclient +, libpng +, libtiff +, libxml2 +, netcdf +, pdal +, pkg-config +, postgresql +, proj +, proj-datumgrid +, python3Packages +, readline +, sqlite +, wxGTK32 +, zlib +, zstd }: stdenv.mkDerivation rec { @@ -16,22 +43,39 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ - pkg-config bison flex makeWrapper wrapGAppsHook + makeWrapper + wrapGAppsHook + + bison + flex gdal # for `gdal-config` geos # for `geos-config` - netcdf # for `nc-config` libmysqlclient # for `mysql_config` + netcdf # for `nc-config` + pkg-config ] ++ (with python3Packages; [ python-dateutil numpy wxPython_4_2 ]); buildInputs = [ - cairo zlib proj libtiff libpng libxml2 fftw sqlite - readline ffmpeg postgresql blas wxGTK32 - proj-datumgrid zstd + blas + cairo + ffmpeg + fftw gdal geos - netcdf libmysqlclient + libpng + libtiff + libxml2 + netcdf pdal + postgresql + proj + proj-datumgrid + readline + sqlite + wxGTK32 + zlib + zstd ] ++ lib.optionals stdenv.isDarwin [ libiconv ]; strictDeps = true; @@ -46,24 +90,24 @@ stdenv.mkDerivation rec { ''; configureFlags = [ - "--with-proj-share=${proj}/share/proj" - "--with-proj-includes=${proj.dev}/include" - "--with-proj-libs=${proj}/lib" - "--without-opengl" - "--with-readline" - "--with-wxwidgets" - "--with-netcdf" + "--with-blas" + "--with-fftw" "--with-geos" - "--with-postgres" - "--with-postgres-libs=${postgresql.lib}/lib/" - # it complains about missing libmysqld but doesn't really seem to need it + # It complains about missing libmysqld but doesn't really seem to need it "--with-mysql" "--with-mysql-includes=${lib.getDev libmysqlclient}/include/mysql" "--with-mysql-libs=${libmysqlclient}/lib/mysql" - "--with-blas" - "--with-zstd" - "--with-fftw" + "--with-netcdf" + "--with-postgres" + "--with-postgres-libs=${postgresql.lib}/lib/" + "--with-proj-includes=${proj.dev}/include" + "--with-proj-libs=${proj}/lib" + "--with-proj-share=${proj}/share/proj" "--with-pthread" + "--with-readline" + "--with-wxwidgets" + "--with-zstd" + "--without-opengl" ] ++ lib.optionals stdenv.isLinux [ "--with-pdal" ] ++ lib.optionals stdenv.isDarwin [ @@ -97,8 +141,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = with lib; { - homepage = "https://grass.osgeo.org/"; description = "GIS software suite used for geospatial data management and analysis, image processing, graphics and maps production, spatial modeling, and visualization"; + homepage = "https://grass.osgeo.org/"; license = licenses.gpl2Plus; maintainers = with maintainers; teams.geospatial.members ++ [ mpickering ]; platforms = platforms.all; From 79dffec139fdfc7d086e360762f1815b86eae7c4 Mon Sep 17 00:00:00 2001 From: Ivan Mincik Date: Sun, 2 Jul 2023 23:36:36 +0200 Subject: [PATCH 2/2] grass: add package tests --- pkgs/applications/gis/grass/default.nix | 9 +++++++-- pkgs/applications/gis/grass/tests.nix | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 pkgs/applications/gis/grass/tests.nix diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix index a3255658cfb5..0d16ba036a9c 100644 --- a/pkgs/applications/gis/grass/default.nix +++ b/pkgs/applications/gis/grass/default.nix @@ -1,5 +1,6 @@ { lib , stdenv +, callPackage , fetchFromGitHub , makeWrapper , wrapGAppsHook @@ -31,7 +32,7 @@ , zstd }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: rec { pname = "grass"; version = "8.3.0"; @@ -140,6 +141,10 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + passthru.tests = { + grass = callPackage ./tests.nix { grass = finalAttrs.finalPackage; }; + }; + meta = with lib; { description = "GIS software suite used for geospatial data management and analysis, image processing, graphics and maps production, spatial modeling, and visualization"; homepage = "https://grass.osgeo.org/"; @@ -147,4 +152,4 @@ stdenv.mkDerivation rec { maintainers = with maintainers; teams.geospatial.members ++ [ mpickering ]; platforms = platforms.all; }; -} +}) diff --git a/pkgs/applications/gis/grass/tests.nix b/pkgs/applications/gis/grass/tests.nix new file mode 100644 index 000000000000..1a38d07de789 --- /dev/null +++ b/pkgs/applications/gis/grass/tests.nix @@ -0,0 +1,18 @@ +{ runCommand, grass }: + +let + inherit (grass) pname version; + +in +runCommand "${pname}-tests" { meta.timeout = 60; } + '' + HOME=$(mktemp -d) + + ${grass}/bin/grass --tmp-location EPSG:3857 --exec g.version \ + | grep 'GRASS ${version}' + + ${grass}/bin/grass --tmp-location EPSG:3857 --exec g.mapset -l \ + | grep 'PERMANENT' + + touch $out + ''