summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/audio/vorbis-tools/default.nix18
-rw-r--r--pkgs/applications/gis/grass/clang-integer-conversion.patch21
-rw-r--r--pkgs/applications/gis/grass/default.nix9
-rw-r--r--pkgs/applications/gis/grass/no_symbolic_links.patch37
-rw-r--r--pkgs/development/python-modules/aggdraw/default.nix9
-rw-r--r--pkgs/development/python-modules/mayavi/default.nix19
-rw-r--r--pkgs/tools/filesystems/encfs/default.nix11
-rw-r--r--pkgs/top-level/all-packages.nix4
8 files changed, 79 insertions, 49 deletions
diff --git a/pkgs/applications/audio/vorbis-tools/default.nix b/pkgs/applications/audio/vorbis-tools/default.nix
index 46e67c7dc33e5..877f670d68617 100644
--- a/pkgs/applications/audio/vorbis-tools/default.nix
+++ b/pkgs/applications/audio/vorbis-tools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libogg, libvorbis, libao, pkg-config, curl
+{ lib, stdenv, fetchurl, fetchpatch, libogg, libvorbis, libao, pkg-config, curl, libiconv
 , speex, flac
 , autoreconfHook }:
 
@@ -11,12 +11,18 @@ stdenv.mkDerivation rec {
     sha256 = "1c7h4ivgfdyygz2hyh6nfibxlkz8kdk868a576qkkjgj5gn78xyv";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ libogg libvorbis libao curl speex flac ];
+  patches = lib.optionals stdenv.cc.isClang [
+    # Fixes a call to undeclared function `utf8_decode`.
+    # https://github.com/xiph/vorbis-tools/pull/33
+    (fetchpatch {
+      url = "https://github.com/xiph/vorbis-tools/commit/8a645f78b45ae7e370c0dc2a52d0f2612aa6110b.patch";
+      hash = "sha256-RkT9Xa0pRu/oO9E9qhDa17L0luWgYHI2yINIkPZanmI=";
+    })
+  ];
 
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
-  };
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ libogg libvorbis libao curl speex flac ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   meta = with lib; {
     description = "Extra tools for Ogg-Vorbis audio codec";
diff --git a/pkgs/applications/gis/grass/clang-integer-conversion.patch b/pkgs/applications/gis/grass/clang-integer-conversion.patch
new file mode 100644
index 0000000000000..85145f45c37d0
--- /dev/null
+++ b/pkgs/applications/gis/grass/clang-integer-conversion.patch
@@ -0,0 +1,21 @@
+diff -ur a/db/drivers/mysql/db.c b/db/drivers/mysql/db.c
+--- a/db/drivers/mysql/db.c	1969-12-31 19:00:01.000000000 -0500
++++ b/db/drivers/mysql/db.c	2023-11-09 23:26:25.329700495 -0500
+@@ -52,9 +52,16 @@
+ 
+         db_get_login2("mysql", name, &user, &password, &host, &port);
+ 
++        const char* errstr;
++        unsigned int port_number = (unsigned int)strtonum(port, 0, 65536, &errstr);
++        if (errstr != NULL) {
++            db_d_append_error("%s", errstr);
++            return DB_FAILED;
++        }
++
+         connection = mysql_init(NULL);
+         res = mysql_real_connect(connection, host, user, password,
+-                                 connpar.dbname, port, NULL, 0);
++                                 connpar.dbname, port_number, NULL, 0);
+ 
+         if (res == NULL) {
+             db_d_append_error("%s\n%s", _("Connection failed."),
diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix
index 0f250a80b9704..cd0d6dbc93863 100644
--- a/pkgs/applications/gis/grass/default.nix
+++ b/pkgs/applications/gis/grass/default.nix
@@ -81,12 +81,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   strictDeps = true;
 
-  # On Darwin the installer tries to symlink the help files into a system
-  # directory
-  patches = [ ./no_symbolic_links.patch ];
+  patches = lib.optionals stdenv.isDarwin [
+    # Fix conversion of const char* to unsigned int.
+    ./clang-integer-conversion.patch
+  ];
 
   # Correct mysql_config query
-  patchPhase = ''
+  postPatch = ''
       substituteInPlace configure --replace "--libmysqld-libs" "--libs"
   '';
 
diff --git a/pkgs/applications/gis/grass/no_symbolic_links.patch b/pkgs/applications/gis/grass/no_symbolic_links.patch
deleted file mode 100644
index ef09b97b70371..0000000000000
--- a/pkgs/applications/gis/grass/no_symbolic_links.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/include/Make/Install.make b/include/Make/Install.make
-index 0aba138..8ba74bc 100644
---- a/include/Make/Install.make
-+++ b/include/Make/Install.make
-@@ -116,11 +116,6 @@ real-install: | $(INST_DIR) $(UNIX_BIN)
- 	-$(INSTALL) config.status $(INST_DIR)/config.status
- 	-$(CHMOD) -R a+rX $(INST_DIR) 2>/dev/null
- 
--ifneq ($(findstring darwin,$(ARCH)),)
--	@# enable OSX Help Viewer
--	@/bin/ln -sfh "$(INST_DIR)/docs/html" /Library/Documentation/Help/GRASS-$(GRASS_VERSION_MAJOR).$(GRASS_VERSION_MINOR)
--endif
--
- $(INST_DIR) $(UNIX_BIN):
- 	$(MAKE_DIR_CMD) $@
- 
-diff --git a/macosx/app/build_html_user_index.sh b/macosx/app/build_html_user_index.sh
-index 04e63eb..c9d9c2c 100755
---- a/macosx/app/build_html_user_index.sh
-+++ b/macosx/app/build_html_user_index.sh
-@@ -140,7 +140,6 @@ else
- #      echo "<tr><td valign=\"top\"><a href=\"$HTMLDIRG/$i\">$BASENAME</a></td> <td>$SHORTDESC</td></tr>" >> $FULLINDEX
-       # make them local to user to simplify page links
-       echo "<tr><td valign=\"top\"><a href=\"global_$i\">$BASENAME</a></td> <td>$SHORTDESC</td></tr>" >> $FULLINDEX
--      ln -sf "$HTMLDIRG/$i" global_$i
-     done
-   done
- fi
-@@ -183,8 +182,3 @@ echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
- </html>" > $i.html
- done
- 
--# add Help Viewer links in user docs folder
--
--mkdir -p $HOME/Library/Documentation/Help/
--ln -sfh ../../GRASS/$GRASS_MMVER/Modules/docs/html $HOME/Library/Documentation/Help/GRASS-$GRASS_MMVER-addon
--ln -sfh $GISBASE/docs/html $HOME/Library/Documentation/Help/GRASS-$GRASS_MMVER
diff --git a/pkgs/development/python-modules/aggdraw/default.nix b/pkgs/development/python-modules/aggdraw/default.nix
index 9d1e0ee96bab8..ef44979c4394c 100644
--- a/pkgs/development/python-modules/aggdraw/default.nix
+++ b/pkgs/development/python-modules/aggdraw/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , buildPythonPackage
 , packaging
 , setuptools
@@ -23,6 +24,14 @@ buildPythonPackage rec {
     hash = "sha256-2yajhuRyQ7BqghbSgPClW3inpw4TW2DhgQbomcRFx94=";
   };
 
+  patches = [
+    # Removes `register` storage class specifier, which is not allowed in C++17.
+    (fetchpatch {
+      url = "https://github.com/pytroll/aggdraw/commit/157ed49803567e8c3eeb7dfeff4c116db35747f7.patch";
+      hash = "sha256-QSzpO90u5oSBWUzehRFbXgZ1ApEfLlfp11MUx6w11aI=";
+    })
+  ];
+
   nativeBuildInputs = [
     packaging
     setuptools
diff --git a/pkgs/development/python-modules/mayavi/default.nix b/pkgs/development/python-modules/mayavi/default.nix
index dc786ac6d7d68..a34f98cdae39f 100644
--- a/pkgs/development/python-modules/mayavi/default.nix
+++ b/pkgs/development/python-modules/mayavi/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , envisage
 , fetchPypi
+, fetchpatch
 , numpy
 , packaging
 , pyface
@@ -26,6 +27,24 @@ buildPythonPackage rec {
     hash = "sha256-n0J+8spska542S02ibpr7KJMhGDicG2KHJuEKJrT/Z4=";
   };
 
+  patches = [
+    # Adds compatibility with Python 3.11.
+    # https://github.com/enthought/mayavi/pull/1199
+    (fetchpatch {
+      name = "python311-compat.patch";
+      url = "https://github.com/enthought/mayavi/commit/50c0cbfcf97560be69c84b7c924635a558ebf92f.patch";
+      hash = "sha256-zZOT6on/f5cEjnDBrNGog/wPQh7rBkaFqrxkBYDUQu0=";
+      includes = [ "tvtk/src/*" ];
+    })
+    # Fixes an incompatible function pointer conversion error
+    # https://github.com/enthought/mayavi/pull/1266
+    (fetchpatch {
+      name = "incompatible-pointer-conversion.patch";
+      url = "https://github.com/enthought/mayavi/commit/887adc8fe2b076a368070f5b1d564745b03b1964.patch";
+      hash = "sha256-88H1NNotd4pO0Zw1oLrYk5WNuuVrmTU01HJgsTRfKlo=";
+    })
+  ];
+
   postPatch = ''
     # building the docs fails with the usual Qt xcb error, so skip:
     substituteInPlace setup.py \
diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix
index 14701a615c01e..966c396823928 100644
--- a/pkgs/tools/filesystems/encfs/default.nix
+++ b/pkgs/tools/filesystems/encfs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
 , cmake, pkg-config, perl
 , gettext, fuse, openssl, tinyxml2
 }:
@@ -14,6 +14,15 @@ stdenv.mkDerivation rec {
     owner = "vgough";
   };
 
+  patches = lib.optionals stdenv.cc.isClang [
+    # Fixes a build failure when building with newer versions of clang.
+    # https://github.com/vgough/encfs/pull/650
+    (fetchpatch {
+      url = "https://github.com/vgough/encfs/commit/406b63bfe234864710d1d23329bf41d48001fbfa.patch";
+      hash = "sha256-VunC5ICRJBgCXqkr7ad7DPzweRJr1bdOpo1LKNCs4zY=";
+    })
+  ];
+
   buildInputs = [ gettext fuse openssl tinyxml2 ];
   nativeBuildInputs = [ cmake pkg-config perl ];
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 69ab60dcdeb32..8c0a27ae9ea73 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -30271,7 +30271,9 @@ with pkgs;
 
   dcw-gmt = callPackage ../applications/gis/gmt/dcw.nix { };
 
-  grass = callPackage ../applications/gis/grass { };
+  grass = callPackage ../applications/gis/grass {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+  };
 
   openorienteering-mapper = libsForQt5.callPackage ../applications/gis/openorienteering-mapper { };