Skip to content

Commit baf1f12

Browse files
committed
ruby: Fix withPackages on darwin with makeBinaryWrapper
See also #161298
1 parent 8515585 commit baf1f12

3 files changed

Lines changed: 23 additions & 7 deletions

File tree

pkgs/development/interpreters/ruby/default.nix

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
, zlib, gdbm, ncurses, readline, groff, libyaml, libffi, jemalloc, autoreconfHook, bison
44
, autoconf, libiconv, libobjc, libunwind, Foundation
55
, buildEnv, bundler, bundix
6-
, makeWrapper, buildRubyGem, defaultGemConfig, removeReferencesTo
6+
, makeBinaryWrapper, buildRubyGem, defaultGemConfig, removeReferencesTo
77
, openssl, openssl_1_1
88
} @ args:
99

@@ -47,7 +47,7 @@ let
4747
, autoreconfHook, bison, autoconf
4848
, buildEnv, bundler, bundix
4949
, libiconv, libobjc, libunwind, Foundation
50-
, makeWrapper, buildRubyGem, defaultGemConfig
50+
, makeBinaryWrapper, buildRubyGem, defaultGemConfig
5151
, baseRuby ? buildPackages.ruby_3_1.override {
5252
useRailsExpress = false;
5353
docSupport = false;
@@ -245,7 +245,7 @@ let
245245
};
246246

247247
inherit (import ../../ruby-modules/with-packages {
248-
inherit lib stdenv makeWrapper buildRubyGem buildEnv;
248+
inherit lib stdenv makeBinaryWrapper buildRubyGem buildEnv;
249249
gemConfig = defaultGemConfig;
250250
ruby = self;
251251
}) withPackages buildGems gems;

pkgs/development/ruby-modules/with-packages/default.nix

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{ stdenv, lib, buildEnv, buildRubyGem, ruby, gemConfig, makeWrapper }:
1+
{ stdenv, lib, buildEnv, buildRubyGem, ruby, gemConfig, makeBinaryWrapper }:
22

33
/*
44
Example usage:
@@ -43,7 +43,7 @@ let
4343

4444
wrappedRuby = stdenv.mkDerivation {
4545
name = "wrapped-${ruby.name}";
46-
nativeBuildInputs = [ makeWrapper ];
46+
nativeBuildInputs = [ makeBinaryWrapper ];
4747
buildCommand = ''
4848
mkdir -p $out/bin
4949
for i in ${ruby}/bin/*; do
@@ -54,7 +54,7 @@ let
5454

5555
in stdenv.mkDerivation {
5656
name = "${ruby.name}-with-packages";
57-
nativeBuildInputs = [ makeWrapper ];
57+
nativeBuildInputs = [ makeBinaryWrapper ];
5858
buildInputs = [ selected ruby ];
5959

6060
dontUnpack = true;

pkgs/development/ruby-modules/with-packages/test.nix

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,22 @@ let
1515
pkgs.ruby.gems) //
1616
(import ./require_exceptions.nix);
1717

18+
testWrapper = ruby: stdenv.mkDerivation {
19+
name = "test-wrappedRuby-${ruby.name}";
20+
buildInputs = [ ((ruby.withPackages (ps: [ ])).wrappedRuby) ];
21+
buildCommand = ''
22+
cat <<'EOF' > test-ruby
23+
#!/usr/bin/env ruby
24+
puts RUBY_VERSION
25+
EOF
26+
27+
chmod +x test-ruby
28+
patchShebangs test-ruby
29+
[[ $(./test-ruby) = $(${ruby}/bin/ruby test-ruby) ]]
30+
touch $out
31+
'';
32+
};
33+
1834
tests = ruby:
1935
lib.mapAttrs (name: gem:
2036
let
@@ -39,7 +55,7 @@ let
3955
in
4056
stdenv.mkDerivation {
4157
name = "test-all-ruby-gems";
42-
buildInputs = builtins.foldl' (sum: ruby: sum ++ ( builtins.attrValues (tests ruby) )) [] rubyVersions;
58+
buildInputs = builtins.foldl' (sum: ruby: sum ++ [ (testWrapper ruby) ] ++ ( builtins.attrValues (tests ruby) )) [] rubyVersions;
4359
buildCommand = ''
4460
touch $out
4561
'';

0 commit comments

Comments
 (0)