nixpkgs/pkgs/development/tools/misc/gpshell/default.nix
Bjørn Forsman b0d77698bf gpshell: wrap with gppcscconnectionplugin
Fixes this:

  $ echo establish_context | gpshell
  establish_context
  establish_context failed with error 0xFFFFFFFFFFFFFFFF (libgppcscconnectionplugin.so.1.0.1: cannot open shared object file: No such file or directory)

Have to use LD_LIBRARY_PATH instead of patchelf, because it's
libglobalplatform.so.6 (from globalplatform package) that needs
libgppcscconnectionplugin.so.1.0.1, not gpshell itself. And because
RPATH doesn't "propagate" from one ELF to another, the library isn't
found. One can argue that globalplatform should depend on
gppcscconnectionplugin, but it touches on the still-unsolved "plugin"
issue in Nix packaging, so leaving that alone.
2016-10-05 17:06:15 +02:00

27 lines
749 B
Nix

{ stdenv, fetchurl, pkgconfig, globalplatform, pcsclite, gppcscconnectionplugin
, makeWrapper
}:
stdenv.mkDerivation rec {
name = "gpshell-${version}";
version = "1.4.4";
src = fetchurl {
url = "mirror://sourceforge/globalplatform/gpshell-${version}.tar.gz";
sha256 = "19a77zvyf2vazbv17185s4pynhylk2ky8vhl4i8pg9zww29sicqi";
};
buildInputs = [ pkgconfig globalplatform pcsclite makeWrapper ];
postFixup = ''
wrapProgram "$out/bin/gpshell" --prefix LD_LIBRARY_PATH : "${gppcscconnectionplugin}/lib"
'';
meta = with stdenv.lib; {
homepage = https://sourceforge.net/p/globalplatform/wiki/Home/;
description = "Smartcard management application";
license = licenses.gpl3;
platforms = platforms.all;
};
}