From 5b304dff066ef9b8e9a372a679a0b79f5b1a4d04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=83=D1=85=D0=B0=D1=80=D0=B8=D0=BA?= <65870+suhr@users.noreply.github.com> Date: Fri, 22 Dec 2023 04:08:11 +0300 Subject: [PATCH] pharo: fix non-path argv[0] segfault --- pkgs/by-name/ph/pharo/package.nix | 41 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/pkgs/by-name/ph/pharo/package.nix b/pkgs/by-name/ph/pharo/package.nix index aaf9a2762ddd..1b76f6261365 100644 --- a/pkgs/by-name/ph/pharo/package.nix +++ b/pkgs/by-name/ph/pharo/package.nix @@ -54,29 +54,28 @@ stdenv.mkDerivation (finalAttrs: { "-DBUILD_BUNDLE=OFF" ]; - installPhase = - let - library_path = lib.strings.makeLibraryPath [ - "$out" - cairo - freetype - libgit2 - SDL2 - ]; - in - '' - runHook preInstall + installPhase = '' + runHook preInstall - cmake --build . --target=install - mkdir -p "$out/lib" - mkdir "$out/bin" - cp build/vm/*.so* "$out/lib/" - cp build/vm/pharo "$out/bin/pharo" - patchelf --allowed-rpath-prefixes "$NIX_STORE" --shrink-rpath "$out/bin/pharo" - wrapProgram "$out/bin/pharo" --set LD_LIBRARY_PATH "${library_path}" + cmake --build . --target=install + mkdir -p "$out/lib" + mkdir "$out/bin" + cp build/vm/*.so* "$out/lib/" + cp build/vm/pharo "$out/bin/pharo" - runHook postInstall - ''; + runHook postInstall + ''; + + preFixup = let + libPath = lib.makeLibraryPath (finalAttrs.buildInputs ++ [ + stdenv.cc.cc.lib + "$out" + ]); + in '' + patchelf --allowed-rpath-prefixes "$NIX_STORE" --shrink-rpath "$out/bin/pharo" + ln -s "${libgit2}/lib/libgit2.so" $out/lib/libgit2.so.1.1 + wrapProgram "$out/bin/pharo" --argv0 $out/bin/pharo --prefix LD_LIBRARY_PATH ":" "${libPath}" + ''; meta = { description = "Clean and innovative Smalltalk-inspired environment";