Commit 3a8ef07d authored by rczb's avatar rczb
Browse files

racket: fix failure to find executable

Fix #377763.
parent 9f953c13
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -60,6 +60,15 @@ minimal.overrideAttrs (
      wrapGAppsHook3
    ];

    patches = prevAttrs.patches or [ ] ++ [
      /*
        Hardcode variant detection because nixpkgs wraps the Racket binary making it
        fail to detect its variant at runtime.
        https://github.com/NixOS/nixpkgs/issues/114993#issuecomment-812951247
      */
      ./patches/force-cs-variant.patch
    ];

    preBuild =
      let
        libPaths = makeLibPaths finalAttrs.buildInputs;
+12 −0
Original line number Diff line number Diff line
--- old/collects/setup/variant.rkt
+++ new/collects/setup/variant.rkt
@@ -7,7 +7,8 @@
 (provide variant-suffix
          script-variant?)

-(define plain-variant
+(define plain-variant 'cs)
+#;(define plain-variant
   (delay/sync
    (cond
      [(cross-installation?)
+38 −20
Original line number Diff line number Diff line
{ runCommandLocal, racket }:
{
  lib,
  runCommandLocal,
  racket,
}:

runCommandLocal "racket-test-get-version-and-variant"
  {
    nativeBuildInputs = [ racket ];
  }
  (
    lib.concatLines (
      builtins.map
        (
          { expectation, output }:
          ''
    expectation="${racket.version}"

    output="$(racket -e '(display (version))')"

    if test "$output" != "$expectation"; then
        echo "output mismatch: expected ''${expectation}, but got ''${output}"
        exit 1
    fi

    expectation="cs"
            expectation="${expectation}"

    output="$(racket -e '(require launcher/launcher) (display (current-launcher-variant))')"
            output="${output}"

            if test "$output" != "$expectation"; then
                echo "output mismatch: expected ''${expectation}, but got ''${output}"
                exit 1
            fi

          ''
        )
        [
          {
            expectation = racket.version;
            output = "$(racket -e '(display (version))')";
          }
          {
            expectation = "cs";
            output = "$(racket -e '(require launcher/launcher) (display (current-launcher-variant))')";
          }
          {
            expectation = "${lib.getExe racket}";
            output = "$(racket -e '(require compiler/find-exe) (display (find-exe))')";
          }
        ]
    )
    + ''
      touch $out
    ''
  )