diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/video/pitivi/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/video/pitivi/default.nix | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/video/pitivi/default.nix b/nixpkgs/pkgs/applications/video/pitivi/default.nix new file mode 100644 index 000000000000..bef9537b8067 --- /dev/null +++ b/nixpkgs/pkgs/applications/video/pitivi/default.nix @@ -0,0 +1,81 @@ +{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, intltool, itstool, python3, wrapGAppsHook +, python3Packages, gst_all_1, gtk3 +, gobject-introspection, librsvg, gnome3, libnotify, gsound +, meson, ninja, gsettings-desktop-schemas +}: + +let + version = "0.999"; + + # 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 { + version = "1.14.1"; + pname = "gst-transcoder"; + src = fetchFromGitHub { + owner = "pitivi"; + repo = "gst-transcoder"; + rev = version; + sha256 = "16skiz9akavssii529v9nr8zd54w43livc14khdyzv164djg9q8f"; + }; + nativeBuildInputs = [ pkgconfig meson ninja gobject-introspection python3 ]; + buildInputs = with gst_all_1; [ gstreamer gst-plugins-base ]; + }; + +in python3Packages.buildPythonApplication rec { + name = "pitivi-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0mxp2p4gg976fp1vj3rb5rmpl5mqfzncm9vw2719irl32f1qlvyb"; + }; + + 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 python3 wrapGAppsHook ]; + + buildInputs = [ + gobject-introspection gtk3 librsvg gnome3.gnome-desktop gsound + gnome3.adwaita-icon-theme + gsettings-desktop-schemas libnotify + gst-transcoder + ] ++ (with gst_all_1; [ + gstreamer gst-editing-services + gst-plugins-base (gst-plugins-good.override { gtkSupport = true; }) + gst-plugins-bad gst-plugins-ugly gst-libav gst-validate + ]); + + 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/; + 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; + maintainers = with maintainers; []; + platforms = platforms.linux; + }; +} |