diff --git a/pkgs/applications/video/xplayer/default.nix b/pkgs/applications/video/xplayer/default.nix new file mode 100644 index 00000000000..d3f87f879c5 --- /dev/null +++ b/pkgs/applications/video/xplayer/default.nix @@ -0,0 +1,103 @@ +{ stdenv +, lib +, fetchFromGitHub +, autoreconfHook +, autoconf-archive +, clutter-gst +, clutter-gtk +, gettext +, glib +, gobject-introspection +, gst-plugins-bad +, gst-plugins-base +, gst-plugins-good +, gstreamer +, gtk-doc +, gtk3 +, intltool +, itstool +, libpeas +, libxml2 +, libxplayer-plparser +, pkg-config +, python3 +, wrapGAppsHook +, xapps +, yelp-tools }: + +let + pythonenv = python3.withPackages (ps: [ + ps.pygobject3 + ps.dbus-python # For one plugin + ]); +in + +stdenv.mkDerivation rec { + pname = "xplayer"; + version = "2.4.0"; + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + rev = version; + sha256 = "1xcv6nr2gc0vji5afwy283v7bgx46kzgrq79hl8q9pz995qq2kbp"; + }; + + # configure wants to find gst-inspect-1.0 via pkgconfig but + # the gstreamer toolsdir points to the wrong derivation output + postPatch = '' + substituteInPlace configure.ac \ + --replace '$gst10_toolsdir/gst-inspect-1.0' '${gstreamer.dev}/bin/gst-inspect-1.0' \ + ''; + + preBuild = '' + makeFlagsArray+=( + "INCLUDES=-I${glib.dev}/include/gio-unix-2.0" + "CFLAGS=-Wno-error" # Otherwise a lot of deprecated warnings are treated as error + ) + ''; + + nativeBuildInputs = [ + autoreconfHook + wrapGAppsHook + autoconf-archive + gettext + gtk-doc + intltool + itstool + pkg-config + yelp-tools + ]; + + buildInputs = [ + clutter-gst + clutter-gtk + glib + gobject-introspection + gst-plugins-bad + gst-plugins-base + gst-plugins-good + gstreamer + gtk3 + libpeas + libxml2 + libxplayer-plparser + pythonenv + xapps + # to satisfy configure script + pythonenv.pkgs.pygobject3 + ]; + + postInstall = '' + wrapProgram $out/bin/xplayer \ + --prefix PATH : ${lib.makeBinPath [ pythonenv ]} + ''; + + meta = with lib; { + description = "A generic media player from Linux Mint"; + license = with licenses; [ gpl2Plus lgpl21Plus ]; + homepage = "https://github.com/linuxmint/xplayer"; + maintainers = with maintainers; [ tu-maurice ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/video/xplayer/plparser.nix b/pkgs/applications/video/xplayer/plparser.nix new file mode 100644 index 00000000000..da3daa445f6 --- /dev/null +++ b/pkgs/applications/video/xplayer/plparser.nix @@ -0,0 +1,42 @@ +{ stdenv +, lib +, fetchFromGitHub +, intltool +, gobject-introspection +, gmime +, libxml2 +, libsoup +, pkg-config +}: + +stdenv.mkDerivation rec { + pname = "xplayer-plparser"; + version = "1.0.2"; + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + rev = version; + sha256 = "1i7sld8am6b1wwbpfb18v7qp17vk2a5p8xcfds50yznr30lddsb2"; + }; + + nativeBuildInputs = [ + intltool + pkg-config + gobject-introspection + ]; + + buildInputs = [ + gmime + libxml2 + libsoup + ]; + + meta = with lib; { + description = "Playlist parsing library for xplayer"; + homepage = "https://github.com/linuxmint/xplayer-plparser"; + maintainers = with maintainers; [ tu-maurice ]; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f7e4c0038a6..df89e332cec 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26030,6 +26030,13 @@ in xpra = callPackage ../tools/X11/xpra { }; libfakeXinerama = callPackage ../tools/X11/xpra/libfakeXinerama.nix { }; + + xplayer = callPackage ../applications/video/xplayer { + inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad; + inherit (cinnamon) xapps; + }; + libxplayer-plparser = callPackage ../applications/video/xplayer/plparser.nix { }; + xrectsel = callPackage ../tools/X11/xrectsel { }; xrestop = callPackage ../tools/X11/xrestop { };