about summary refs log tree commit diff
path: root/pkgs/development/r-modules
diff options
context:
space:
mode:
authorJustin Bedo <cu@cua0.org>2023-03-22 09:44:21 +1100
committerJustin Bedo <cu@cua0.org>2023-03-22 09:48:06 +1100
commit14db22f86827277db0c973d665e0272c627b77c7 (patch)
tree7861ef1e46575192fef26f650b49a564af6779a2 /pkgs/development/r-modules
parent442e1b87d1bf0134f0fdea1ca7697e08e0b04627 (diff)
downloadnixlib-14db22f86827277db0c973d665e0272c627b77c7.tar
nixlib-14db22f86827277db0c973d665e0272c627b77c7.tar.gz
nixlib-14db22f86827277db0c973d665e0272c627b77c7.tar.bz2
nixlib-14db22f86827277db0c973d665e0272c627b77c7.tar.lz
nixlib-14db22f86827277db0c973d665e0272c627b77c7.tar.xz
nixlib-14db22f86827277db0c973d665e0272c627b77c7.tar.zst
nixlib-14db22f86827277db0c973d665e0272c627b77c7.zip
rPackages.rhdf5: fix build
use nixpkgs provided hdf5 instead of vendored library
Diffstat (limited to 'pkgs/development/r-modules')
-rw-r--r--pkgs/development/r-modules/default.nix3
-rw-r--r--pkgs/development/r-modules/patches/rhdf5.patch46
2 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index d89a788b5f12..289bc4190daa 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -1328,6 +1328,9 @@ let
       propagatedBuildInputs = with pkgs; attrs.propagatedBuildInputs ++ [ (hdf5-blosc.override {hdf5 = hdf5_1_10;}) ];
       patches = [ ./patches/rhdf5filters.patch ];
     });
+
+    rhdf5= old.rhdf5.overrideAttrs (attrs: {
+      patches = [ ./patches/rhdf5.patch ];
     });
   };
 in
diff --git a/pkgs/development/r-modules/patches/rhdf5.patch b/pkgs/development/r-modules/patches/rhdf5.patch
new file mode 100644
index 000000000000..eb2f28d01876
--- /dev/null
+++ b/pkgs/development/r-modules/patches/rhdf5.patch
@@ -0,0 +1,46 @@
+diff --git a/src/Makevars b/src/Makevars
+index 713b44c..704ac17 100644
+--- a/src/Makevars
++++ b/src/Makevars
+@@ -1,5 +1,5 @@
+ RHDF5_LIBS = $(shell "$(R_HOME)/bin${R_ARCH_BIN}/Rscript" -e 'Rhdf5lib::pkgconfig("PKG_C_LIBS")')
+-PKG_LIBS = $(RHDF5_LIBS)
++PKG_LIBS = $(RHDF5_LIBS) -lhdf5
+ 
+ #PKG_CFLAGS = -Wall
+ 
+diff --git a/src/h5testLock.c b/src/h5testLock.c
+index b326444..5d58b4a 100644
+--- a/src/h5testLock.c
++++ b/src/h5testLock.c
+@@ -8,16 +8,16 @@ SEXP _h5fileLock(SEXP _file_name) {
+   int lk = -1;
+ 
+   /* create the temporary file */
+-  fd = HDopen(file_name, O_RDWR | O_CREAT | O_TRUNC, 0666);
++  fd = open(file_name, O_RDWR | O_CREAT | O_TRUNC, 0666);
+ 
+   /* try to lock file */
+-  lk = HDflock(fd, LOCK_EX | LOCK_NB);
++  lk = flock(fd, LOCK_EX | LOCK_NB);
+   
+   /* unlock so we can remove */
+-  HDflock(fd, LOCK_UN);
++  flock(fd, LOCK_UN);
+   
+   /* close */
+-  HDclose(fd);
++  close(fd);
+   
+   /* return value of lock attempt */
+   PROTECT(Rval = allocVector(INTSXP, 1));
+diff --git a/src/h5testLock.h b/src/h5testLock.h
+index 2c1c5e4..660c747 100644
+--- a/src/h5testLock.h
++++ b/src/h5testLock.h
+@@ -1,5 +1,4 @@
+ #include <fcntl.h>
+ #include "myhdf5.h"
+-#include <H5private.h>
+ 
+ SEXP _h5fileLock();