diff --git a/pkgs/applications/video/gnome-mplayer/default.nix b/pkgs/applications/video/gnome-mplayer/default.nix index ba72e085bf7c..9f98d46d53bd 100644 --- a/pkgs/applications/video/gnome-mplayer/default.nix +++ b/pkgs/applications/video/gnome-mplayer/default.nix @@ -1,20 +1,33 @@ -{stdenv, fetchurl, pkgconfig, glib, gtk2, dbus, dbus_glib, GConf}: +{stdenv, substituteAll, fetchFromGitHub, pkgconfig, gettext, glib, gtk3, gmtk, dbus, dbus_glib +, libnotify, libpulseaudio, mplayer, wrapGAppsHook }: stdenv.mkDerivation rec { - name = "gnome-mplayer-1.0.4"; + name = "gnome-mplayer-${version}"; + version = "1.0.9"; - src = fetchurl { - url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/gnome-mplayer/${name}.tar.gz"; - sha256 = "1k5yplsvddcm7xza5h4nfb6vibzjcqsk8gzis890alizk07f5xp2"; + src = fetchFromGitHub { + owner = "kdekorte"; + repo = "gnome-mplayer"; + rev = "v${version}"; + sha256 = "0qvy9fllvg1mad6y1j79iaqa6khs0q2cb0z62yfg4srbr07fi8xr"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ glib gtk2 dbus dbus_glib GConf]; + nativeBuildInputs = [ pkgconfig gettext wrapGAppsHook ]; + buildInputs = [ glib gtk3 gmtk dbus dbus_glib libnotify libpulseaudio ]; - hardeningDisable = [ "format" ]; + patches = [ + (substituteAll { + src = ./fix-paths.patch; + mencoder = "${mplayer}/bin/mencoder"; + mplayer = "${mplayer}/bin/mplayer"; + }) + ]; - meta = { - homepage = http://kdekorte.googlepages.com/gnomemplayer; + meta = with stdenv.lib; { description = "Gnome MPlayer, a simple GUI for MPlayer"; + homepage = https://sites.google.com/site/kdekorte2/gnomemplayer; + license = licenses.gpl2; + maintainers = with maintainers; []; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/video/gnome-mplayer/fix-paths.patch b/pkgs/applications/video/gnome-mplayer/fix-paths.patch new file mode 100644 index 000000000000..ede4991c4662 --- /dev/null +++ b/pkgs/applications/video/gnome-mplayer/fix-paths.patch @@ -0,0 +1,87 @@ +--- a/src/gui.c ++++ b/src/gui.c +@@ -7470,7 +7470,7 @@ + filename = g_strdup_printf("%s/00000001.jpg", dirname); + g_free(basepath); + // run mplayer and try to get the first frame and convert it to a jpeg +- av[ac++] = g_strdup_printf("mplayer"); ++ av[ac++] = g_strdup_printf("@mplayer@"); + av[ac++] = g_strdup_printf("-vo"); + av[ac++] = g_strdup_printf("jpeg:outdir=%s", dirname); + av[ac++] = g_strdup_printf("-ao"); +--- a/src/property_page_common.c ++++ b/src/property_page_common.c +@@ -80,7 +80,7 @@ + MetaData *ret; + ret = g_new0(MetaData, 1); + +- av[ac++] = g_strdup_printf("mplayer"); ++ av[ac++] = g_strdup_printf("@mplayer@"); + av[ac++] = g_strdup_printf("-vo"); + av[ac++] = g_strdup_printf("null"); + av[ac++] = g_strdup_printf("-ao"); +--- a/src/support.c ++++ b/src/support.c +@@ -566,7 +566,7 @@ + } else { + playlist = FALSE; + if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) { +- av[ac++] = g_strdup_printf("mplayer"); ++ av[ac++] = g_strdup_printf("@mplayer@"); + } else { + av[ac++] = g_strdup_printf("%s", mplayer_bin); + } +@@ -728,7 +728,7 @@ + playlist = FALSE; + // run mplayer and try to get the first frame and convert it to a jpeg + if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) { +- av[ac++] = g_strdup_printf("mplayer"); ++ av[ac++] = g_strdup_printf("@mplayer@"); + } else { + av[ac++] = g_strdup_printf("%s", mplayer_bin); + } +@@ -825,7 +825,7 @@ + playlist = FALSE; + + if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) { +- av[ac++] = g_strdup_printf("mplayer"); ++ av[ac++] = g_strdup_printf("@mplayer@"); + } else { + av[ac++] = g_strdup_printf("%s", mplayer_bin); + } +@@ -1251,7 +1251,7 @@ + gm_log(verbose, G_LOG_LEVEL_INFO, "getting file metadata for %s", name); + + if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) { +- av[ac++] = g_strdup_printf("mplayer"); ++ av[ac++] = g_strdup_printf("@mplayer@"); + } else { + av[ac++] = g_strdup_printf("%s", mplayer_bin); + } +@@ -1532,7 +1532,7 @@ + return 0; + + if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) { +- av[ac++] = g_strdup_printf("mplayer"); ++ av[ac++] = g_strdup_printf("@mplayer@"); + } else { + av[ac++] = g_strdup_printf("%s", mplayer_bin); + } +@@ -1597,7 +1597,7 @@ + + if (control_id == 0) { + ac = 0; +- av[ac++] = g_strdup_printf("mencoder"); ++ av[ac++] = g_strdup_printf("@mencoder@"); + av[ac++] = g_strdup_printf("-ovc"); + av[ac++] = g_strdup_printf("copy"); + av[ac++] = g_strdup_printf("-oac"); +@@ -2830,7 +2830,7 @@ + gboolean ret = TRUE; + + if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) { +- av[ac++] = g_strdup_printf("mplayer"); ++ av[ac++] = g_strdup_printf("@mplayer@"); + } else { + av[ac++] = g_strdup_printf("%s", mplayer_bin); + } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6ec532be1dd7..47cc7d3ce303 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15241,9 +15241,7 @@ with pkgs; gmu = callPackage ../applications/audio/gmu { }; - gnome_mplayer = callPackage ../applications/video/gnome-mplayer { - inherit (gnome2) GConf; - }; + gnome_mplayer = callPackage ../applications/video/gnome-mplayer { }; gnumeric = callPackage ../applications/office/gnumeric { };