diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix new file mode 100644 index 000000000000..947d2517808a --- /dev/null +++ b/pkgs/applications/video/pitivi/default.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchurl, pkgconfig, intltool, itstool, makeWrapper +, pythonPackages, gst, clutter-gst, clutter-gtk +, gobjectIntrospection, clutter, gtk3, librsvg +, gnome_icon_theme, gnome_icon_theme_symbolic +}: + +let + version = "0.93"; +in stdenv.mkDerivation rec { + name = "pitivi-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/pitivi/${version}/${name}.tar.xz"; + sha256 = "0z89dwrd7akhkap270i372yszqib8yqcymv78lhdmn3a8bsa7jhp"; + }; + + meta = with stdenv.lib; { + description = "Non-Linear video editor utilizing the power of GStreamer"; + 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; + maintainers = with maintainers; [ iyzsong ]; + }; + + nativeBuildInputs = [ pkgconfig intltool itstool makeWrapper ]; + + buildInputs = [ + gobjectIntrospection clutter-gst clutter-gtk librsvg + ] ++ (with gst; [ + gst-python gst-editing-services + gst-plugins-base gst-plugins-good + gst-plugins-bad gst-plugins-ugly gst-libav + ]) ++ (with pythonPackages; [ + python pygobject3 pyxdg numpy pycairo sqlite3 + ]); + + postInstall = with stdenv.lib; with gst; let + libraryPath = makeLibraryPath [ + gstreamer gst-editing-services + clutter-gst clutter-gtk clutter gtk3 + ]; + + xdgDataDirs = makeSearchPath "share" [ + gtk3 gnome_icon_theme gnome_icon_theme_symbolic + ]; + in '' + wrapProgram "$out/bin/pitivi" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix LD_LIBRARY_PATH : "${libraryPath}" \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ + --prefix XDG_DATA_DIRS : "\$XDG_ICON_DIRS:${xdgDataDirs}:$out/share" + ''; +} diff --git a/pkgs/development/libraries/clutter-gtk/default.nix b/pkgs/development/libraries/clutter-gtk/default.nix index 040123d42766..3614d149489d 100644 --- a/pkgs/development/libraries/clutter-gtk/default.nix +++ b/pkgs/development/libraries/clutter-gtk/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, pkgconfig, clutter, gtk3 }: +{ fetchurl, stdenv, pkgconfig, gobjectIntrospection, clutter, gtk3 }: stdenv.mkDerivation rec { name = "clutter-gtk-1.4.4"; @@ -9,9 +9,7 @@ stdenv.mkDerivation rec { }; propagatedBuildInputs = [ clutter gtk3 ]; - nativeBuildInputs = [ pkgconfig ]; - - configureFlags = [ "--disable-introspection" ]; # not needed anywhere AFAIK + nativeBuildInputs = [ pkgconfig gobjectIntrospection ]; postBuild = "rm -rf $out/share/gtk-doc"; diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix index 94d3688eb1ce..90233abe31c1 100644 --- a/pkgs/development/libraries/gstreamer/ges/default.nix +++ b/pkgs/development/libraries/gstreamer/ges/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, python +{ stdenv, fetchurl, pkgconfig, python, gobjectIntrospection , gnonlin, libxml2 }: @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { sha256 = "1n7nw8rqvwna9af55lggah44gdvfgld1igvgaya8glc37wpq89b0"; }; - nativeBuildInputs = [ pkgconfig python ]; + nativeBuildInputs = [ pkgconfig python gobjectIntrospection ]; propagatedBuildInputs = [ gnonlin libxml2 ]; } diff --git a/pkgs/development/libraries/gstreamer/python/default.nix b/pkgs/development/libraries/gstreamer/python/default.nix index 843822b0748d..9a526de05b1c 100644 --- a/pkgs/development/libraries/gstreamer/python/default.nix +++ b/pkgs/development/libraries/gstreamer/python/default.nix @@ -13,6 +13,8 @@ stdenv.mkDerivation rec { sha256 = "09c6yls8ipbmwimdjr7xi3hvf2xa1xn1pv07855r7wfyzas1xbl1"; }; + patches = [ ./different-path-with-pygobject.patch ]; + buildInputs = [ pkgconfig gst-plugins-base pygtk pygobject3 ] ; diff --git a/pkgs/development/libraries/gstreamer/python/different-path-with-pygobject.patch b/pkgs/development/libraries/gstreamer/python/different-path-with-pygobject.patch new file mode 100644 index 000000000000..7326b3630f70 --- /dev/null +++ b/pkgs/development/libraries/gstreamer/python/different-path-with-pygobject.patch @@ -0,0 +1,20 @@ +diff -Nru gst-python-1.2.0-orig/gi/overrides/Makefile.in gst-python-1.2.0/gi/overrides/Makefile.in +--- gst-python-1.2.0-orig/gi/overrides/Makefile.in 2014-03-22 21:47:56.235364405 +0800 ++++ gst-python-1.2.0/gi/overrides/Makefile.in 2014-03-22 21:48:28.737958066 +0800 +@@ -356,7 +356,7 @@ + + # We install everything in the gi/overrides folder + pygioverridesdir = $(PYGI_OVERRIDES_DIR) +-pygioverrides_PYTHON = Gst.py GstPbutils.py ++pygioverrides_PYTHON = Gst.py GstPbutils.py __init__.py + pygioverridesexecdir = $(PYGI_OVERRIDES_DIR) + EXTRA_DIST = Gst.py + INCLUDES = $(PYTHON_INCLUDES) +diff -Nru gst-python-1.2.0-orig/gi/overrides/__init__.py gst-python-1.2.0/gi/overrides/__init__.py +--- gst-python-1.2.0-orig/gi/overrides/__init__.py 1970-01-01 08:00:00.000000000 +0800 ++++ gst-python-1.2.0/gi/overrides/__init__.py 2014-03-22 21:48:15.442124287 +0800 +@@ -0,0 +1,4 @@ ++from pkgutil import extend_path ++ ++__path__ = extend_path(__path__, __name__) ++print(__path__, __name__) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2fb102cbed17..471a8a20915b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1638,6 +1638,12 @@ let parted = callPackage ../tools/misc/parted { hurd = null; }; + pitivi = callPackage ../applications/video/pitivi { + gst = gst_all_1; + clutter-gtk = clutter_gtk; + inherit (gnome3) gnome_icon_theme gnome_icon_theme_symbolic; + }; + hurdPartedCross = if crossSystem != null && crossSystem.config == "i586-pc-gnu" then (makeOverridable