mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-13 21:50:33 +03:00
Merge pull request #219388 from charles-dyfis-net/safenet-update
pcsc-safenet: 10.0.37 -> 10.8.28
This commit is contained in:
commit
9bfc59d891
1 changed files with 45 additions and 37 deletions
|
@ -1,38 +1,45 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, runCommand
|
||||
, fetchzip
|
||||
, autoPatchelfHook
|
||||
, dpkg
|
||||
, gtk2
|
||||
, openssl
|
||||
, gtk3
|
||||
, openssl_1_1
|
||||
, pcsclite
|
||||
, unzip
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pcsc-safenet";
|
||||
version = "10.0.37-0";
|
||||
version = "10.8.28";
|
||||
|
||||
# https://aur.archlinux.org/packages/sac-core/
|
||||
src = fetchurl {
|
||||
url = "https://storage.spidlas.cz/public/soft/safenet/SafenetAuthenticationClient-core-${version}_amd64.deb";
|
||||
sha256 = "1r9739bhal7ramj1rpawaqvik45xbs1c756l1da96din638gzy5l";
|
||||
};
|
||||
debName = "Installation/Standard/Ubuntu-2004/safenetauthenticationclient_${version}_amd64.deb";
|
||||
|
||||
# extract debian package from larger zip file
|
||||
src =
|
||||
let
|
||||
versionWithUnderscores = builtins.replaceStrings ["."] ["_"] version;
|
||||
in fetchzip {
|
||||
url = "https://www.digicert.com/StaticFiles/SAC_${versionWithUnderscores}_GA_Build.zip";
|
||||
hash = "sha256-7XWj3T9/KnmgQ05urOJV6dqgkAS/A2G7efnqjQO2ing=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
unpackPhase = ''
|
||||
dpkg-deb -x $src .
|
||||
dpkg-deb -x "$src/$debName" .
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
gtk2
|
||||
openssl
|
||||
gtk3
|
||||
openssl_1_1
|
||||
pcsclite
|
||||
];
|
||||
|
||||
runtimeDependencies = [
|
||||
openssl
|
||||
openssl_1_1
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -41,35 +48,36 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
installPhase = ''
|
||||
# Set up for pcsc drivers
|
||||
mv usr/* .
|
||||
|
||||
mkdir -p pcsc/drivers
|
||||
mv usr/share/eToken/drivers/* pcsc/drivers/
|
||||
rm -r usr/share/eToken/drivers
|
||||
mv -- lib/pkcs11/* pcsc/drivers/
|
||||
rmdir lib/pkcs11
|
||||
|
||||
# Move binaries out
|
||||
mv usr/bin bin
|
||||
mkdir "$out"
|
||||
cp -r ./* "$out/"
|
||||
|
||||
# Move UI to bin
|
||||
mv usr/share/SAC/SACUIProcess bin/
|
||||
rm -r usr/share/SAC
|
||||
# for each library like libfoo.so.1.2.3, create symlinks to it from libfoo.so, libfoo.so.1, libfoo.so.1.2
|
||||
(
|
||||
cd "$out/lib/" || exit
|
||||
for f in *.so.*.*.*; do # find library names with three-layer suffixes
|
||||
ln -sf "$f" "''${f%.*}" || exit # strip only one suffix layer
|
||||
ln -sf "$f" "''${f%.*.*}" || exit # strip two suffix layers
|
||||
ln -sf "$f" "''${f%.*.*.*}" || exit # strip all three suffix layers
|
||||
done
|
||||
) || exit
|
||||
|
||||
mkdir $out
|
||||
cp -r {bin,etc,lib,pcsc,usr,var} $out/
|
||||
# when library links are missing in pcsc/drivers, create them
|
||||
(
|
||||
cd "$out/pcsc/drivers" || exit
|
||||
for f in *; do
|
||||
if [[ ! -e $f && -e ../../lib/$f ]]; then
|
||||
ln -sf ../../lib/"$f" "$f" || exit
|
||||
fi
|
||||
done
|
||||
) || exit
|
||||
|
||||
cd "$out/lib/"
|
||||
ln -sf libeToken.so.10.0.37 libeTPkcs11.so
|
||||
ln -sf libeToken.so.10.0.37 libeToken.so.10.0
|
||||
ln -sf libeToken.so.10.0.37 libeToken.so.10
|
||||
ln -sf libeToken.so.10.0.37 libeToken.so
|
||||
ln -sf libcardosTokenEngine.so.10.0.37 libcardosTokenEngine.so.10.0
|
||||
ln -sf libcardosTokenEngine.so.10.0.37 libcardosTokenEngine.so.10
|
||||
ln -sf libcardosTokenEngine.so.10.0.37 libcardosTokenEngine.so
|
||||
|
||||
cd $out/pcsc/drivers/aks-ifdh.bundle/Contents/Linux/
|
||||
ln -sf libAksIfdh.so.10.0 libAksIfdh.so
|
||||
ln -sf libAksIfdh.so.10.0 libAksIfdh.so.10
|
||||
|
||||
ln -sf ${lib.getLib openssl}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
|
||||
ln -sf ${lib.getLib openssl_1_1}/lib/libcrypto.so $out/lib/libcrypto.so.1.1.0
|
||||
'';
|
||||
|
||||
dontAutoPatchelf = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue