about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix')
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix27
1 files changed, 27 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
index 115739bd404d..eb136d4c2435 100644
--- a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
@@ -24,6 +24,7 @@
 , msgpack, qt59, libsodium, snappy, libossp_uuid, lxc, libpcap, xorg, gtk2, buildRubyGem
 , cairo, re2, rake, gobject-introspection, gdk_pixbuf, zeromq, czmq, graphicsmagick, libcxx
 , file, libvirt, glib, vips, taglib, libopus, linux-pam, libidn, protobuf, fribidi, harfbuzz
+, bison, flex, pango, python3, patchelf
 , libselinux ? null, libsepol ? null
 }@args:
 
@@ -245,6 +246,32 @@ in
     ];
   };
 
+  mathematical = attrs: {
+    buildInputs = [
+      cmake
+      bison
+      flex
+      glib
+      pkgconfig
+      cairo
+      pango
+      gdk_pixbuf
+      libxml2
+      python3
+    ];
+
+    # The ruby build script takes care of this
+    dontUseCmakeConfigure = true;
+
+    # For some reason 'mathematical.so' is missing cairo and glib in its RPATH, add them explicitly here
+    postFixup = lib.optionalString stdenv.isLinux ''
+      soPath="$out/${ruby.gemPath}/gems/mathematical-${attrs.version}/lib/mathematical/mathematical.so"
+      ${patchelf}/bin/patchelf \
+        --set-rpath "${lib.makeLibraryPath [ glib cairo ]}:$(${patchelf}/bin/patchelf --print-rpath "$soPath")" \
+        "$soPath"
+    '';
+  };
+
   magic = attrs: {
     buildInputs = [ file ];
     postInstall = ''