about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-03-01 05:32:36 +0100
committerJan Tojnar <jtojnar@gmail.com>2018-04-25 15:14:17 +0200
commit4340a1582ffbd90f19e42f1480d36e17c0b515c7 (patch)
treeaa69fe93421eb0cb8fa0a4b09965cbfa179e52f7
parenta3502ba765ed5634b62d2440d342f81f68a67a8b (diff)
downloadnixlib-4340a1582ffbd90f19e42f1480d36e17c0b515c7.tar
nixlib-4340a1582ffbd90f19e42f1480d36e17c0b515c7.tar.gz
nixlib-4340a1582ffbd90f19e42f1480d36e17c0b515c7.tar.bz2
nixlib-4340a1582ffbd90f19e42f1480d36e17c0b515c7.tar.lz
nixlib-4340a1582ffbd90f19e42f1480d36e17c0b515c7.tar.xz
nixlib-4340a1582ffbd90f19e42f1480d36e17c0b515c7.tar.zst
nixlib-4340a1582ffbd90f19e42f1480d36e17c0b515c7.zip
pitivi: 0.96 → 0.99
-rw-r--r--pkgs/applications/video/pitivi/default.nix61
-rw-r--r--pkgs/applications/video/pitivi/prevent-closure-contamination.patch23
2 files changed, 63 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;
   };
 }
diff --git a/pkgs/applications/video/pitivi/prevent-closure-contamination.patch b/pkgs/applications/video/pitivi/prevent-closure-contamination.patch
new file mode 100644
index 000000000000..0025ecd0a4cf
--- /dev/null
+++ b/pkgs/applications/video/pitivi/prevent-closure-contamination.patch
@@ -0,0 +1,23 @@
+--- a/meson.build
++++ b/meson.build
+@@ -26,15 +26,15 @@
+ geteenvvar = find_program('getenvvar.py')
+ cdata = configuration_data()
+ cdata.set('CONFIGURED_PYTHONPATH',
+-          run_command(geteenvvar, 'PYTHONPATH').stdout().strip())
++          '')
+ cdata.set('CONFIGURED_GI_TYPELIB_PATH',
+-          run_command(geteenvvar, 'GI_TYPELIB_PATH').stdout().strip())
++          '')
+ cdata.set('CONFIGURED_LD_LIBRARY_PATH',
+-          run_command(geteenvvar, 'LD_LIBRARY_PATH').stdout().strip())
++          '')
+ cdata.set('CONFIGURED_GST_PLUGIN_PATH',
+-          run_command(geteenvvar, 'GST_PLUGIN_PATH').stdout().strip())
++          '')
+ cdata.set('CONFIGURED_GST_PLUGIN_SYSTEM_PATH',
+-          run_command(geteenvvar, 'GST_PLUGIN_SYSTEM_PATH').stdout().strip())
++          '')
+ cdata.set('LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
+ cdata.set('DATADIR', join_paths(get_option('prefix'), get_option('datadir')))
+ cdata.set('PACKAGE_NAME', 'Pitivi')