From 245168060372cf84ce34fae8af6402b948d33689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Mon, 25 Jul 2016 06:05:55 +0200 Subject: [PATCH] pitivi: 0.95 -> 0.96 (fixes startup error) (#17228) * pitivi: 0.95 -> 0.96 (fixes startup error) The upgrade of gtk3 to v3.20 broke pitivi, causing it to segfault after the user closes the Welcome dialog. This release fixes that. New dependencies: gst-transcoder and dbus. (pitivi imports dbus if it finds the GNOME_DESKTOP_SESSION_ID environment variable. Without dbus there will be some ugly errors for GNOME desktop users.) * pitivi: use wrapGAppsHook instead of makeWrapper Allows us to remove preFixup. * pitivi: move meta section to the end Like most Nix package files are written. --- pkgs/applications/video/pitivi/default.nix | 61 +++++++++++++--------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix index d488a3718b74..4a831fe110f4 100644 --- a/pkgs/applications/video/pitivi/default.nix +++ b/pkgs/applications/video/pitivi/default.nix @@ -1,18 +1,51 @@ -{ stdenv, fetchurl, pkgconfig, intltool, itstool, makeWrapper +{ stdenv, fetchurl, pkgconfig, intltool, itstool, wrapGAppsHook , python3Packages, gst, gtk3, hicolor_icon_theme , gobjectIntrospection, librsvg, gnome3, libnotify +# for gst-transcoder: +, which, meson, ninja }: let - version = "0.95"; + version = "0.96"; + + # gst-transcoder will eventually be merged with gstreamer (according to + # gst-transcoder 1.8.0 release notes). For now the only user is pitivi so we + # don't bother exposing the package to all of nixpkgs. + gst-transcoder = stdenv.mkDerivation rec { + name = "gst-transcoder-1.8.0"; + src = fetchurl { + name = "${name}.tar.gz"; + url = "https://github.com/pitivi/gst-transcoder/archive/1.8.0.tar.gz"; + sha256 = "0iggr6idmp7cmfsf6pkhfl3jq1bkga37jl5prbcl1zapkzi26fg6"; + }; + buildInputs = [ which meson ninja pkgconfig gobjectIntrospection ] + ++ (with gst; [ gstreamer gst-plugins-base ]); + }; + in stdenv.mkDerivation rec { name = "pitivi-${version}"; src = fetchurl { url = "mirror://gnome/sources/pitivi/${version}/${name}.tar.xz"; - sha256 = "04ykw619aikhxk5wj7z44pvwl52053d1kamcxpscw0ixrh5j45az"; + sha256 = "115d37mvi32yds8gqj2yidkk6pap7szavhjf2hw0388ynydlc2zs"; }; + nativeBuildInputs = [ pkgconfig intltool itstool wrapGAppsHook ]; + + buildInputs = [ + gobjectIntrospection gtk3 librsvg gnome3.gnome_desktop + gnome3.defaultIconTheme + gnome3.gsettings_desktop_schemas libnotify + gst-transcoder + ] ++ (with gst; [ + gstreamer gst-editing-services + gst-plugins-base gst-plugins-good + gst-plugins-bad gst-plugins-ugly gst-libav gst-validate + ]) ++ (with python3Packages; [ + python pygobject3 gst-python pyxdg numpy pycairo sqlite3 matplotlib + dbus + ]); + meta = with stdenv.lib; { description = "Non-Linear video editor utilizing the power of GStreamer"; homepage = "http://pitivi.org/"; @@ -24,26 +57,4 @@ in stdenv.mkDerivation rec { license = licenses.lgpl21Plus; platforms = platforms.linux; }; - - nativeBuildInputs = [ pkgconfig intltool itstool makeWrapper ]; - - buildInputs = [ - gobjectIntrospection gtk3 librsvg gnome3.gnome_desktop - gnome3.defaultIconTheme - gnome3.gsettings_desktop_schemas libnotify - ] ++ (with gst; [ - gstreamer gst-editing-services - gst-plugins-base gst-plugins-good - gst-plugins-bad gst-plugins-ugly gst-libav gst-validate - ]) ++ (with python3Packages; [ - python pygobject3 gst-python pyxdg numpy pycairo sqlite3 matplotlib - ]); - - preFixup = '' - wrapProgram "$out/bin/pitivi" \ - --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ - --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ - --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ - --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$out/share:$GSETTINGS_SCHEMAS_PATH" - ''; }