about summary refs log tree commit diff
path: root/pkgs/development/ruby-modules/gem-config/default.nix
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2024-01-11 18:01:20 +0000
committerGitHub <noreply@github.com>2024-01-11 18:01:20 +0000
commit06797d4df4baaa51b229081083a88b92dac3ff7c (patch)
treeea3e27c5d50679d613e56850c6137392bcd23c68 /pkgs/development/ruby-modules/gem-config/default.nix
parentacd19036aca8b793f7f0099881d498c50b5ee147 (diff)
parenta2f82b9b840d6120464b853b8c6efb462899c716 (diff)
downloadnixlib-06797d4df4baaa51b229081083a88b92dac3ff7c.tar
nixlib-06797d4df4baaa51b229081083a88b92dac3ff7c.tar.gz
nixlib-06797d4df4baaa51b229081083a88b92dac3ff7c.tar.bz2
nixlib-06797d4df4baaa51b229081083a88b92dac3ff7c.tar.lz
nixlib-06797d4df4baaa51b229081083a88b92dac3ff7c.tar.xz
nixlib-06797d4df4baaa51b229081083a88b92dac3ff7c.tar.zst
nixlib-06797d4df4baaa51b229081083a88b92dac3ff7c.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/development/ruby-modules/gem-config/default.nix')
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix28
1 files changed, 28 insertions, 0 deletions
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 5a3ec1f68469..97715659be0d 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -27,6 +27,7 @@
 , bison, flex, pango, python3, patchelf, binutils, freetds, wrapGAppsHook, atk
 , bundler, libsass, dart-sass, libexif, libselinux, libsepol, shared-mime-info, libthai, libdatrie
 , CoreServices, DarwinTools, cctools, libtool, discount, exiv2, libepoxy, libxkbcommon, libmaxminddb, libyaml
+, cargo, rustc, rustPlatform
 , autoSignDarwinBinariesHook, fetchpatch
 }@args:
 
@@ -296,6 +297,33 @@ in
     in ''
       substituteInPlace lib/prometheus/client/page_size.rb --replace "getconf" "${lib.getBin getconf}/bin/getconf"
     '';
+  } // lib.optionalAttrs (lib.versionAtLeast attrs.version "1.0") {
+    cargoRoot = "ext/fast_mmaped_file_rs";
+    cargoDeps = rustPlatform.fetchCargoTarball {
+      src = stdenv.mkDerivation {
+        inherit (buildRubyGem { inherit (attrs) gemName version source; })
+          name
+          src
+          unpackPhase
+          nativeBuildInputs
+        ;
+        dontBuilt = true;
+        installPhase = ''
+          cp -R ext/fast_mmaped_file_rs $out
+        '';
+      };
+      hash = "sha256-XuQZPbFWqPHlrJvllkvLl1FjKeoAUbi8oKDrS2rY1KM=";
+    };
+    nativeBuildInputs = [
+      cargo
+      rustc
+      rustPlatform.cargoSetupHook
+      rustPlatform.bindgenHook
+    ];
+    preBuild = ''
+      cat ../.cargo/config > ext/fast_mmaped_file_rs/.cargo/config.toml
+      sed -i "s|cargo-vendor-dir|$PWD/../cargo-vendor-dir|" ext/fast_mmaped_file_rs/.cargo/config.toml
+    '';
   };
 
   glib2 = attrs: {