about summary refs log tree commit diff
path: root/pkgs/misc/ghostscript
diff options
context:
space:
mode:
authorSirio Balmelli <sirio@b-ad.ch>2020-11-24 10:46:19 +0100
committerSirio Balmelli <sirio@b-ad.ch>2020-11-25 10:28:21 +0100
commita775974c8ac756d2293c4c9f8b2db887d3aa47e7 (patch)
tree29b8fde6ae407e156f2412f633ef61df315216e0 /pkgs/misc/ghostscript
parent54745a4f5e4177bb7b5c46c1217a55d27162f8b1 (diff)
ghostscript: fix broken rpath on Darwin
Dynamic library name on Darwin contains only 'maj.min' eg "9.53";
the build however used $version to set rpath;
this broke on 2029ca37 when $version went from "9.52" to "9.53.3".

Add a call to 'gs' in installCheckPhase,
to break the build if dylib issues arise in the future.

Signed-off-by: Sirio Balmelli <sirio@b-ad.ch>
Co-authored-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
Diffstat (limited to 'pkgs/misc/ghostscript')
-rw-r--r--pkgs/misc/ghostscript/default.nix14
1 files changed, 13 insertions, 1 deletions
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 5a7762640f733..6f113bcd99cbf 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -103,8 +103,20 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  # dynamic library name only contains maj.min, eg. '9.53'
+  dylib_version = lib.versions.majorMinor version;
   preFixup = lib.optionalString stdenv.isDarwin ''
-    install_name_tool -change libgs.dylib.${version} $out/lib/libgs.dylib.${version} $out/bin/gs
+    install_name_tool -change libgs.dylib.$dylib_version $out/lib/libgs.dylib.$dylib_version $out/bin/gs
+  '';
+
+  # validate dynamic linkage
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/gs --version
+
+    runHook postInstallCheck
   '';
 
   meta = {