So for my work i need to use a program from secmaker.com for authentication with smart-card. I tried to package the program for nix but i have not fully succeeded. I have managed to get the program to start but when i launch the application the GUI loads with a empty page and this is printed to the console Could not determine the accessibility bus address
Any help in this area would be much appreciated.
netidapp.nix
{ pkgs, lib, ... }:
let
netid = pkgs.stdenv.mkDerivation {
name = "netid";
src = pkgs.fetchurl {
url = "https://service.secmaker.com/access/download/SecMaker/7.1.2.009/NetiDAccessSetup_linux64.tar.gz";
sha256 = "sha256-RiMXUPuKJaoYIQBTw0Tk0csBXrzodOEikyyviK33En8=";
};
nativeBuildInputs = [ pkgs.autoPatchelfHook ];
buildInputs = [
pkgs.gnutar
pkgs.unzip
pkgs.webkitgtk # WebKit
pkgs.gtk3 # GTK+3
pkgs.glib # GObject
pkgs.stdenv.cc.cc.lib # libstdc++
];
unpackPhase = "tar -xzf $src";
installPhase = ''
mkdir -p $out/bin $out/lib $out/share/applications $out/gui $out/etc
cd NetiDAccessSetup
# copy binaries
cp netid $out/bin/netid
cp netidapp $out/bin/netidapp
# copy libs
cp libnetid.so $out/lib/libnetid.so
cp libnetidgui.so $out/lib/libnetidgui.so
# Copy configuration and other files
cp logo.ico $out/share/logo.ico
cp netid.conf $out/etc/netid.conf
cp version $out/share/version
# extract gui
unzip -q web.zip -d $out/gui
# Set permissions
chmod 755 $out/bin/netid
chmod 755 $out/bin/netidapp
chmod 755 $out/lib/libnetid.so
chmod 755 $out/lib/libnetidgui.so
chmod 644 $out/share/logo.ico
chmod 644 $out/etc/netid.conf
# Create desktop file
cat <<EOF > $out/share/applications/netidaccess.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Net iD Access
Exec=$out/bin/netidapp -root $out %u
Icon=$out/share/logo.ico
Categories=Utility;
EOF
# Use patchelf to set RPATH
# patchelf --set-rpath "${lib.makeLibraryPath [ pkgs.webkitgtk pkgs.gtk3 pkgs.glib pkgs.stdenv.cc.cc.lib ]}:$out/lib" $out/bin/netidapp
'';
};
in
{
environment.systemPackages = [ netid ];
}