diff --git a/pkgs/applications/office/pympress/default.nix b/pkgs/applications/office/pympress/default.nix new file mode 100644 index 00000000000..5cb20e4d613 --- /dev/null +++ b/pkgs/applications/office/pympress/default.nix @@ -0,0 +1,48 @@ +{ lib +, python3Packages +, wrapGAppsHook +, xvfb_run +, gtk3 +, gobject-introspection +, libcanberra-gtk3 +, dbus +, poppler_gi +, python3 + }: + +python3Packages.buildPythonApplication rec { + pname = "pympress"; + version = "1.4.0"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "101wj6m931bj0ah6niw79i8ywb5zlb2783g7n7dmkhw6ay3jj4vq"; + }; + + nativeBuildInputs = [ + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + gobject-introspection + libcanberra-gtk3 + poppler_gi + ]; + + propagatedBuildInputs = with python3Packages; [ + pycairo + pygobject3 + python-vlc + watchdog + ]; + + doCheck = false; # there are no tests + + meta = with lib; { + description = "Simple yet powerful PDF reader designed for dual-screen presentations"; + license = licenses.gpl2Plus; + homepage = "https://pympress.xyz/"; + maintainers = [ maintainers.tbenst ]; + }; +} diff --git a/pkgs/development/python-modules/python-vlc/default.nix b/pkgs/development/python-modules/python-vlc/default.nix new file mode 100644 index 00000000000..2bf59a63341 --- /dev/null +++ b/pkgs/development/python-modules/python-vlc/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchPypi +, setuptools +, vlc +, substituteAll +}: + +buildPythonPackage rec { + pname = "python-vlc"; + version = "3.0.7110"; + + src = fetchPypi { + inherit pname version; + sha256 = "0ydnqwwgpwq1kz1pjrc7629ljzdd30izymjylsbzzyq8pq6wl6w2"; + }; + + propagatedBuildInputs = [ + setuptools + ]; + + patches = [ + (substituteAll { + src = ./vlc-paths.patch; + libvlcPath="${vlc}/lib/libvlc.so.5"; + }) + ]; + + doCheck = false; # no tests + + meta = with lib; { + homepage = "https://wiki.videolan.org/PythonBinding"; + maintainers = with maintainers; [ tbenst ]; + description = "Python bindings for VLC, the cross-platform multimedia player and framework"; + license = licenses.lgpl21Plus; + }; +} diff --git a/pkgs/development/python-modules/python-vlc/vlc-paths.patch b/pkgs/development/python-modules/python-vlc/vlc-paths.patch new file mode 100644 index 00000000000..0b1cf732711 --- /dev/null +++ b/pkgs/development/python-modules/python-vlc/vlc-paths.patch @@ -0,0 +1,13 @@ +diff --git a/vlc.py b/vlc.py +index e3245a5..cebec09 100644 +--- a/vlc.py ++++ b/vlc.py +@@ -190,7 +190,7 @@ def find_lib(): + + else: + # All other OSes (linux, freebsd...) +- p = find_library('vlc') ++ p = "@libvlcPath@" + try: + dll = ctypes.CDLL(p) + except OSError: # may fail diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3e55313d9fe..aeffe6f6fd2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5758,6 +5758,8 @@ in pygmentex = callPackage ../tools/typesetting/pygmentex { }; + pympress = callPackage ../applications/office/pympress { }; + pythonIRClib = pythonPackages.pythonIRClib; pythonSexy = pythonPackages.libsexy; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d723bdb2b63..f8148c8ddd0 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5167,6 +5167,8 @@ in { vsts = callPackage ../development/python-modules/vsts { }; + python-vlc = callPackage ../development/python-modules/python-vlc { }; + weasyprint = callPackage ../development/python-modules/weasyprint { }; webassets = callPackage ../development/python-modules/webassets { };