Unverified Commit 2e80f1ec authored by Mario Rodas's avatar Mario Rodas Committed by GitHub
Browse files

Merge pull request #216728 from lilyinstarlight/fix/node2nix-bin-crlf

node2nix: pull in patch to fix bin scripts with crlf line-endings
parents e652182b 0835e5a1
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -530,12 +530,15 @@ let
        then
            ln -s $out/lib/node_modules/.bin $out/bin

            # Patch the shebang lines of all the executables
            # Fixup all executables
            ls $out/bin/* | while read i
            do
                file="$(readlink -f "$i")"
                chmod u+rwx "$file"
                patchShebangs "$file"
                if isScript "$file"
                then
                    sed -i 's/\r$//' "$file"  # convert crlf to lf
                fi
            done
        fi

+15 −7
Original line number Diff line number Diff line
@@ -340,14 +340,22 @@ final: prev: {
    };
    nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
    postInstall = let
      patches = [
        # Needed to fix Node.js 16+ - PR svanderburg/node2nix#302
      npmPatch = fetchpatch {
        (fetchpatch {
          name = "emit-lockfile-v2-and-fix-bin-links-with-npmv7.patch";
          url = "https://github.com/svanderburg/node2nix/commit/375a055041b5ee49ca5fb3f74a58ca197c90c7d5.patch";
          hash = "sha256-uVYrXptJILojeur9s2O+J/f2vyPNCaZMn1GM/NoC5n8=";
      };
        })
        # Needed to fix packages with DOS line-endings after above patch - PR svanderburg/node2nix#314
        (fetchpatch {
          name = "convert-crlf-for-script-bin-files.patch";
          url = "https://github.com/svanderburg/node2nix/commit/91aa511fe7107938b0409a02ab8c457a6de2d8ca.patch";
          hash = "sha256-ISiKYkur/o8enKDzJ8mQndkkSC4yrTNlheqyH+LiXlU=";
        })
      ];
    in ''
      patch -d $out/lib/node_modules/node2nix -p1 < ${npmPatch}
      ${lib.concatStringsSep "\n" (map (patch: "patch -d $out/lib/node_modules/node2nix -p1 < ${patch}") patches)}
      wrapProgram "$out/bin/node2nix" --prefix PATH : ${lib.makeBinPath [ pkgs.nix ]}
    '';
  };