{ lib, fetchurl, gettext, wrapGAppsHook # Native dependencies , python3, gtk3, gobject-introspection, gnome , glib-networking, gsound, nbxmpp, gtksourceview4 # Test dependencies , xvfb-run, dbus # Optional dependencies , enableE2E ? true , enableSecrets ? true, libsecret , enableRST ? true, docutils , enableSpelling ? true, gspell , enableUPnP ? true, gupnp-igd , enableOmemoPluginDependencies ? true , enableAppIndicator ? true, libappindicator-gtk3 , extraPythonPackages ? ps: [] }: python3.pkgs.buildPythonApplication rec { pname = "gajim"; version = "1.4.0"; src = fetchurl { url = "https://dev.gajim.org/gajim/gajim/-/archive/mainwindow/gajim-mainwindow.tar.gz"; sha256 = "1bam5l8ax0bgkjg9f9grk9fiqqg0ak2kwzxm1hw9nmcr87ynshn0"; }; buildInputs = [ gobject-introspection gtk3 gnome.adwaita-icon-theme glib-networking ] ++ lib.optional enableSecrets libsecret ++ lib.optional enableSpelling gspell ++ lib.optional enableUPnP gupnp-igd ++ lib.optional enableAppIndicator libappindicator-gtk3; nativeBuildInputs = [ gettext wrapGAppsHook ]; dontWrapGApps = true; preFixup = '' makeWrapperArgs+=("''${gappsWrapperArgs[@]}") ''; propagatedBuildInputs = with python3.pkgs; [ nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools gsound gst-python gtksourceview4 ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ] ++ lib.optional enableRST docutils ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ] ++ extraPythonPackages python3.pkgs; checkInputs = [ xvfb-run dbus.daemon ]; checkPhase = '' # https://dev.gajim.org/gajim/gajim/-/issues/10478 rm test/lib/gajim_mocks.py test/unit/test_gui_interface.py xvfb-run dbus-run-session \ --config-file=${dbus.daemon}/share/dbus-1/session.conf \ ${python3.interpreter} setup.py test ''; doCheck = false; # necessary for wrapGAppsHook strictDeps = false; meta = { homepage = "http://gajim.org/"; description = "Jabber client written in PyGTK"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ raskin abbradar ]; downloadPage = "http://gajim.org/downloads.php"; updateWalker = true; platforms = lib.platforms.linux; }; }