From da6619866409b8af6b55187b02849f6c6ea6a47e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Kupcsik?= Date: Mon, 1 Apr 2024 23:49:03 +0200 Subject: [PATCH] rPackages.ChemmineOB: fix build --- pkgs/development/r-modules/default.nix | 28 +++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix index 994b6349a616..42896a1afef5 100644 --- a/pkgs/development/r-modules/default.nix +++ b/pkgs/development/r-modules/default.nix @@ -331,7 +331,7 @@ let Cairo = with pkgs; [ libtiff libjpeg cairo.dev xorg.libXt.dev fontconfig.lib ]; Cardinal = [ pkgs.which ]; chebpol = [ pkgs.fftw.dev ]; - ChemmineOB = with pkgs; [ openbabel pkg-config ]; + ChemmineOB = [ pkgs.pkg-config ]; curl = [ pkgs.curl.dev ]; CytoML = [ pkgs.libxml2.dev ]; data_table = with pkgs; [ pkg-config zlib.dev ] ++ lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp; @@ -696,6 +696,7 @@ let ragg = with pkgs; [ freetype.dev libpng.dev libtiff.dev zlib.dev libjpeg.dev bzip2.dev ] ++ lib.optional stdenv.isDarwin lerc.dev; qqconf = [ pkgs.fftw.dev ]; vapour = with pkgs; [ proj.dev gdal ]; + ChemmineOB = [ pkgs.eigen ]; }; packagesRequiringX = [ @@ -1330,6 +1331,31 @@ let PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -L${pkgs.cyrus_sasl.out}/lib -L${pkgs.zlib.out}/lib -lssl -lcrypto -lsasl2 -lz"; }); + ChemmineOB = let + # R package doesn't compile with the latest (unstable) version. + # Override from nixpkgs-23.11 + openbabel3 = pkgs.openbabel.overrideAttrs (attrs: { + version = "3.1.1"; + src = pkgs.fetchFromGitHub { + owner = "openbabel"; + repo = "openbabel"; + rev = "openbabel-${lib.replaceStrings ["."] ["-"] attrs.version}"; + sha256 = "sha256-wQpgdfCyBAoh4pmj9j7wPTlMtraJ62w/EShxi/olVMY="; + }; + }); + in + old.ChemmineOB.overrideAttrs (attrs: { + # pkg-config knows openbabel-3 without the .0 + # Eigen3 is also looked for in the wrong location + postPatch = '' + substituteInPlace configure \ + --replace-fail openbabel-3.0 openbabel-3 + substituteInPlace src/Makevars.in \ + --replace-fail "-I/usr/include/eigen3" "-I${pkgs.eigen}/include/eigen3" + ''; + buildInputs = attrs.buildInputs ++ [openbabel3]; + }); + ps = old.ps.overrideAttrs (attrs: { preConfigure = "patchShebangs configure"; });