nix-config/packages/zugferd-manager/default.nix
2026-10-16 22:39:24 +02:00

92 lines
1.8 KiB
Nix

{ pkgs }:
let
pname = "zugferd-manager";
version = "1.3.2";
src = pkgs.fetchurl {
url = "https://github.com/OpenIndex/ZUGFeRD-Manager/releases/download/v${version}/ZUGFeRD-Manager-${version}-linux-x64.tar.gz";
hash = "sha256-5zhJU1PALzL5XWOaw/9ZpzmgRYw9OzSPL4/kRW+fqxI=";
};
rawApp = pkgs.stdenv.mkDerivation {
pname = "${pname}-raw";
inherit version src;
installPhase = ''
runHook preInstall
mkdir -p $out/opt/zugferd-manager
cp -r * $out/opt/zugferd-manager/
runHook postInstall
'';
};
fhs = pkgs.buildFHSEnv {
name = pname;
targetPkgs = p: with p; [
# X11 / AWT (modern top-level attribute names)
libX11
libXext
libXtst
libXi
libXrender
libXrandr
libXcursor
libXcomposite
libXdamage
libXfixes
libxcb
libxkbfile
# Rendering / Skiko
libGL
mesa
freetype
fontconfig
# Desktop / GTK / WebKit / JCEF
glib
gtk3
nss
nspr
alsa-lib
cups
pango
cairo
at-spi2-atk
libxkbcommon
zlib
stdenv.cc.cc.lib
];
runScript = "${rawApp}/opt/zugferd-manager/bin/ZUGFeRD-Manager";
};
in
pkgs.symlinkJoin {
name = "${pname}-${version}";
paths = [ fhs ];
postBuild = ''
mkdir -p $out/share/applications
cat > $out/share/applications/zugferd-manager.desktop <<EOF
[Desktop Entry]
Type=Application
Name=ZUGFeRD Manager
Comment=ZUGFeRD / Factur-X e-invoicing tool
Exec=$out/bin/${pname}
Icon=accessories-calculator
Categories=Office;Finance;
Terminal=false
EOF
'';
meta = with pkgs.lib; {
description = "OpenIndex ZUGFeRD-Manager";
homepage = "https://github.com/OpenIndex/ZUGFeRD-Manager";
license = licenses.gpl3Plus;
platforms = [ "x86_64-linux" ];
mainProgram = pname;
};
}