about summary refs log tree commit diff
path: root/pkgs/applications/video/pitivi/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/video/pitivi/default.nix')
-rw-r--r--pkgs/applications/video/pitivi/default.nix61
1 files changed, 40 insertions, 21 deletions
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
index 48074a86b552..6c92b9aeed6b 100644
--- a/pkgs/applications/video/pitivi/default.nix
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -1,61 +1,80 @@
 { stdenv, fetchurl, pkgconfig, intltool, itstool, wrapGAppsHook
 , python3Packages, gst, gtk3, hicolor-icon-theme
 , gobjectIntrospection, librsvg, gnome3, libnotify
-# for gst-transcoder:
-, which, meson, ninja
+, meson, ninja
 }:
 
 let
-  version = "0.96";
+  version = "0.99";
 
   # 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";
+    version = "1.12.2";
+    name = "gst-transcoder-${version}";
     src = fetchurl {
       name = "${name}.tar.gz";
-      url = "https://github.com/pitivi/gst-transcoder/archive/1.8.0.tar.gz";
-      sha256 = "0iggr6idmp7cmfsf6pkhfl3jq1bkga37jl5prbcl1zapkzi26fg6";
+      url = "https://github.com/pitivi/gst-transcoder/archive/${version}.tar.gz";
+      sha256 = "0cnwmrsd321s02ff91m3j27ydj7f8wks0jvmp5admlhka6z7zxm9";
     };
-  nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ which meson ninja gobjectIntrospection ]
-      ++ (with gst; [ gstreamer gst-plugins-base ]);
+    nativeBuildInputs = [ pkgconfig meson ninja gobjectIntrospection ];
+    buildInputs = with gst; [ gstreamer gst-plugins-base ];
   };
 
-in stdenv.mkDerivation rec {
+in python3Packages.buildPythonApplication rec {
   name = "pitivi-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pitivi/${version}/${name}.tar.xz";
-    sha256 = "115d37mvi32yds8gqj2yidkk6pap7szavhjf2hw0388ynydlc2zs";
+    url = "mirror://gnome/sources/pitivi/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0z4gvcr0cvyz2by47f36nqf7x2kfv9wn382w9glhs7l0d7b2zl69";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool itstool wrapGAppsHook ];
+  format = "other";
+
+  patches = [
+    # By default, the build picks up environment variables like PYTHONPATH
+    # and saves them to the generated binary. This would make the build-time
+    # dependencies part of the closure so we remove it.
+    ./prevent-closure-contamination.patch
+  ];
+
+  postPatch = ''
+    patchShebangs ./getenvvar.py
+  '';
+
+  nativeBuildInputs = [ meson ninja pkgconfig intltool itstool wrapGAppsHook ];
 
   buildInputs = [
-    gobjectIntrospection gtk3 librsvg gnome3.gnome-desktop
+    gobjectIntrospection gtk3 librsvg gnome3.gnome-desktop gnome3.gsound
     gnome3.defaultIconTheme
     gnome3.gsettings-desktop-schemas libnotify
     gst-transcoder
   ] ++ (with gst; [
     gstreamer gst-editing-services
-    gst-plugins-base gst-plugins-good
+    gst-plugins-base (gst-plugins-good.override { gtkSupport = true; })
     gst-plugins-bad gst-plugins-ugly gst-libav gst-validate
-  ]) ++ (with python3Packages; [
-    python pygobject3 gst-python pyxdg numpy pycairo matplotlib
-    dbus-python
   ]);
 
+  pythonPath = with python3Packages; [ pygobject3 gst-python pyxdg numpy pycairo matplotlib dbus-python ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "pitivi";
+      versionPolicy = "none"; # we are using dev version, since the stable one is too old
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Non-Linear video editor utilizing the power of GStreamer";
-    homepage    = "http://pitivi.org/";
+    homepage = http://pitivi.org/;
     longDescription = ''
       Pitivi is a video editor built upon the GStreamer Editing Services.
       It aims to be an intuitive and flexible application
       that can appeal to newbies and professionals alike.
     '';
-    license     = licenses.lgpl21Plus;
-    platforms   = platforms.linux;
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [];
+    platforms = platforms.linux;
   };
 }