Unverified Commit 8b6900dc authored by Mario Rodas's avatar Mario Rodas Committed by GitHub
Browse files

Merge pull request #210228 from amarshall/ruby-makebinarywrapper

ruby: Fix withPackages on darwin with makeBinaryWrapper
parents 8a9d0df6 baf1f129
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
, zlib, gdbm, ncurses, readline, groff, libyaml, libffi, jemalloc, autoreconfHook, bison
, autoconf, libiconv, libobjc, libunwind, Foundation
, buildEnv, bundler, bundix
, makeWrapper, buildRubyGem, defaultGemConfig, removeReferencesTo
, makeBinaryWrapper, buildRubyGem, defaultGemConfig, removeReferencesTo
, openssl, openssl_1_1
} @ args:

@@ -47,7 +47,7 @@ let
      , autoreconfHook, bison, autoconf
      , buildEnv, bundler, bundix
      , libiconv, libobjc, libunwind, Foundation
      , makeWrapper, buildRubyGem, defaultGemConfig
      , makeBinaryWrapper, buildRubyGem, defaultGemConfig
      , baseRuby ? buildPackages.ruby_3_1.override {
          useRailsExpress = false;
          docSupport = false;
@@ -272,7 +272,7 @@ let
          };

          inherit (import ../../ruby-modules/with-packages {
            inherit lib stdenv makeWrapper buildRubyGem buildEnv;
            inherit lib stdenv makeBinaryWrapper buildRubyGem buildEnv;
            gemConfig = defaultGemConfig;
            ruby = self;
          }) withPackages buildGems gems;
+3 −3
Original line number Diff line number Diff line
{ stdenv, lib, buildEnv, buildRubyGem, ruby, gemConfig, makeWrapper }:
{ stdenv, lib, buildEnv, buildRubyGem, ruby, gemConfig, makeBinaryWrapper }:

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

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

    in stdenv.mkDerivation {
      name = "${ruby.name}-with-packages";
      nativeBuildInputs = [ makeWrapper ];
      nativeBuildInputs = [ makeBinaryWrapper ];
      buildInputs = [ selected ruby ];

      dontUnpack = true;
+17 −1
Original line number Diff line number Diff line
@@ -15,6 +15,22 @@ let
      pkgs.ruby.gems) //
    (import ./require_exceptions.nix);

  testWrapper = ruby: stdenv.mkDerivation {
    name = "test-wrappedRuby-${ruby.name}";
    buildInputs = [ ((ruby.withPackages (ps: [ ])).wrappedRuby) ];
    buildCommand = ''
      cat <<'EOF' > test-ruby
      #!/usr/bin/env ruby
      puts RUBY_VERSION
      EOF

      chmod +x test-ruby
      patchShebangs test-ruby
      [[ $(./test-ruby) = $(${ruby}/bin/ruby test-ruby) ]]
      touch $out
    '';
  };

  tests = ruby:
    lib.mapAttrs (name: gem:
      let
@@ -39,7 +55,7 @@ let
in
  stdenv.mkDerivation {
    name = "test-all-ruby-gems";
    buildInputs = builtins.foldl' (sum: ruby: sum ++ ( builtins.attrValues (tests ruby) )) [] rubyVersions;
    buildInputs = builtins.foldl' (sum: ruby: sum ++ [ (testWrapper ruby) ] ++ ( builtins.attrValues (tests ruby) )) [] rubyVersions;
    buildCommand = ''
      touch $out
    '';