aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/video/pitivi/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/video/pitivi/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/video/pitivi/default.nix140
1 files changed, 114 insertions, 26 deletions
diff --git a/nixpkgs/pkgs/applications/video/pitivi/default.nix b/nixpkgs/pkgs/applications/video/pitivi/default.nix
index 276c2fa787f..b1c1dd285e2 100644
--- a/nixpkgs/pkgs/applications/video/pitivi/default.nix
+++ b/nixpkgs/pkgs/applications/video/pitivi/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, intltool, itstool, python3, wrapGAppsHook
-, python3Packages, gst_all_1, gtk3
-, gobject-introspection, librsvg, gnome3, libnotify, gsound
-, meson, ninja, gsettings-desktop-schemas
+{ stdenv
+, fetchFromGitHub
+, fetchurl
+, fetchpatch
+, pkg-config
+, gettext
+, 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 was merged with gst-plugins-bad 1.18.
+ # TODO: switch to that once available.
gst-transcoder = stdenv.mkDerivation rec {
version = "1.14.1";
pname = "gst-transcoder";
@@ -19,45 +32,120 @@ let
rev = version;
sha256 = "16skiz9akavssii529v9nr8zd54w43livc14khdyzv164djg9q8f";
};
- nativeBuildInputs = [ pkgconfig meson ninja gobject-introspection python3 ];
- buildInputs = with gst_all_1; [ gstreamer gst-plugins-base ];
+ nativeBuildInputs = [
+ pkg-config
+ meson
+ ninja
+ gobject-introspection
+ python3
+ ];
+ buildInputs = with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ ];
};
in python3Packages.buildPythonApplication rec {
- name = "pitivi-${version}";
+ pname = "pitivi";
+ version = "0.999";
+
+ format = "other";
src = fetchurl {
- url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+ url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.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
- '';
+ # Port from intltool to gettext.
+ # Needed for the following patches to apply.
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/pitivi/commit/89b1053f2516c594f414c5c67c835471bce44b67.patch";
+ sha256 = "8yhArzAtZC+WjHftcSDrstBlT8j6WlGHffU9Nj+ny+c=";
+ excludes = [ "po/POTFILES.in" ];
+ })
- nativeBuildInputs = [ meson ninja pkgconfig intltool itstool python3 wrapGAppsHook ];
+ # Complete switching to gst-transcoder in gst-plugins-bad.
+ # Otherwise there will likely be conflics.
+ # TODO: Apply this patch once we are using gst-transcoder from gst-plugins-bad.
+ # (fetchpatch {
+ # url = "https://gitlab.gnome.org/GNOME/pitivi/commit/51ae6533ee26ffd47e453eb5f5ad8cd46f57d15e.patch";
+ # sha256 = "zxJm+E5o+oZ3lW6wYNY/ERo2g4NmCjoY8oV+uScq8j8=";
+ # })
+
+ # Generate renderer.so on macOS instead of dylib.
+ # Needed for the following patch to apply.
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/pitivi/commit/bcacadcafabf8911efb0fddc8d57329237d08cd1.patch";
+ sha256 = "2BM5acIwOgdr1L9vhtMMN4trrLuqCg/K6v6ZYtD1Fjw=";
+ postFetch = ''
+ sed -i -e "s/1.90.0.1/0.999/g" "$out"
+ '';
+ })
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/pitivi/commit/0a3cc054a2c20b59f5aaaaa307de3c9af3c0d270.patch";
+ sha256 = "6DhqRlxFWFFdLwGoFem+vPt8x7v732KMVjMF9fypMK4=";
+ postFetch = ''
+ sed "$out" -i \
+ -e "s/1.90.0.1/0.999/g" \
+ -e "s/\(-python_dep.*\)/\1\n /" \
+ -e "s/-1,9 +1,16/-1,10 +1,17/"
+ '';
+ })
+ ];
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ gettext
+ itstool
+ python3
+ wrapGAppsHook
+ ];
buildInputs = [
- gobject-introspection gtk3 librsvg gnome3.gnome-desktop gsound
+ gobject-introspection
+ gtk3
+ librsvg
+ gnome3.gnome-desktop
+ gsound
gnome3.adwaita-icon-theme
- gsettings-desktop-schemas libnotify
+ 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
+ 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 ];
+ pythonPath = with python3Packages; [
+ pygobject3
+ gst-python
+ pyxdg
+ numpy
+ pycairo
+ matplotlib
+ dbus-python
+ ];
+
+ postPatch = ''
+ patchShebangs ./getenvvar.py
+
+ # fetchpatch does not support renamings
+ mv data/org.pitivi.Pitivi-mime.xml data/org.pitivi.Pitivi-mime.xml.in
+ '';
passthru = {
updateScript = gnome3.updateScript {