-
-
Notifications
You must be signed in to change notification settings - Fork 507
Closed
Description
So I’ve got this expression to install Transcribe!, that is distributed in binary form:
super: self:
let
libpath = super.lib.makeLibraryPath (with super; [
stdenv.cc.cc glib gtk2 atk pango cairo gdk_pixbuf alsaLib
xorg.libX11 xorg.libSM libpng12 gstreamer gst_plugins_base zlib
]);
in
super.stdenv.mkDerivation {
name = "transcribe-8.40";
src = super.fetchurl {
url = "http://www.seventhstring.com/xscribe/downlinux64/xsc64setup.tar.gz";
sha256 = "0fqs0f2p9kbp1skgqm5sgcq9xxf6rccbm22fvka8qmpvxpsxpcbs";
};
buildInputs = [ super.makeWrapper ];
dontPatchELF = true;
installPhase = ''
mkdir -p $out/bin
cp transcribe $out/bin
patchelf \
--set-interpreter "$(cat ${super.stdenv.cc}/nix-support/dynamic-linker)" \
--set-rpath "${libpath}" \
$out/bin/transcribe
#wrapProgram $out/bin/transcribe \
# --set LD_LIBRARY_PATH "${libpath}"
'';
}
When I run this, I’m getting:
% transcribe
transcribe: transcribe: no version information available (required by transcribe)
[…]
transcribe: transcribe: no version information available (required by transcribe)
transcribe: symbol lookup error: transcribe: undefined symbol:
(127)%
However, after removing --set-rpath
and wrapping the program in a wrapper that exports LD_LIBRARY_PATH
with what was previously passed to --set-rpath
, the program launches.
Also, with --set-rpath
, ldd $(which transcribe)
returns lots of the exact error, no version information available
. After setting a proper LD_LIBRARY_PATH
, it shows correct paths.
The RPATH
in original binary is empty.
How can I get this to work using --set-rpath
only?
Metadata
Metadata
Assignees
Labels
No labels