{ lib, fetchFromGitHub, python3Packages, gnupg, installShellFiles, }: let pname = "apt-offline"; version = "1.8.5"; src = fetchFromGitHub { owner = "rickysarraf"; repo = "apt-offline"; rev = "v${version}"; hash = "sha256-KkJwQ9EpOSJK9PaM747l6Gqp8Z8SWvuo3TJ+Ry6d0l4="; }; in python3Packages.buildPythonApplication { inherit pname version src; nativeBuildInputs = [ installShellFiles ]; postPatch = '' substituteInPlace org.debian.apt.aptoffline.policy \ --replace-fail /usr/bin/ "$out/bin" substituteInPlace apt_offline_core/AptOfflineCoreLib.py \ --replace-fail /usr/bin/gpgv "${lib.getBin gnupg}/bin/gpgv" ''; postInstall = '' installManPage apt-offline.8 ''; postFixup = '' rm "$out/bin/apt-offline-gui" "$out/bin/apt-offline-gui-pkexec" ''; doCheck = false; # API incompatibilities, maybe? pythonImportsCheck = [ "apt_offline_core" ]; outputs = [ "out" "man" ]; meta = { homepage = "https://github.com/rickysarraf/apt-offline"; description = "Offline APT package manager"; license = with lib.licenses; [ gpl3Plus ]; mainProgram = "apt-offline"; maintainers = with lib.maintainers; [ ]; }; } # TODO: verify GUI and pkexec