about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/ruby-modules
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/ruby-modules')
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/bundled-common/default.nix7
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/bundler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix28
3 files changed, 34 insertions, 5 deletions
diff --git a/nixpkgs/pkgs/development/ruby-modules/bundled-common/default.nix b/nixpkgs/pkgs/development/ruby-modules/bundled-common/default.nix
index 86c885b52dcb..6aca502550b6 100644
--- a/nixpkgs/pkgs/development/ruby-modules/bundled-common/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/bundled-common/default.nix
@@ -117,9 +117,10 @@ let
 
     meta = { platforms = ruby.meta.platforms; } // meta;
 
-    passthru = rec {
-      inherit ruby bundler gems confFiles envPaths;
+    passthru = (lib.optionalAttrs (pname != null) {
       inherit (gems.${pname}) gemType;
+    } // rec {
+      inherit ruby bundler gems confFiles envPaths;
 
       wrappedRuby = stdenv.mkDerivation {
         name = "wrapped-ruby-${pname'}";
@@ -172,7 +173,7 @@ let
             exit 1
           '';
         };
-    };
+    });
   };
 
   basicEnv =
diff --git a/nixpkgs/pkgs/development/ruby-modules/bundler/default.nix b/nixpkgs/pkgs/development/ruby-modules/bundler/default.nix
index c4c3cd8b8d23..05d1bfbf64e6 100644
--- a/nixpkgs/pkgs/development/ruby-modules/bundler/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/bundler/default.nix
@@ -4,8 +4,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "bundler";
-  version = "2.4.22";
-  source.sha256 = "sha256-dHulCw5n3yXL07SPlYMad6TVOlgdVfBjly/LFG0ULF8=";
+  version = "2.5.3";
+  source.sha256 = "sha256-JJzQdaxPM1rnD3iMm+D0wYgJOk2n0FvVO+K67z8l58s=";
   dontPatchShebangs = true;
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
index 5a3ec1f68469..97715659be0d 100644
--- a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/nixpkgs/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: {