diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2020-09-02 21:25:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-02 21:25:01 +0200 |
commit | dff0034a8b4f5166af2e9ce6811238ab1b43365d (patch) | |
tree | 2ee680d4d6f712734c6307b2bbb30475c23bbe9d /pkgs | |
parent | f14522334077f0dcc98bb9c80353f3cb1b6f1e48 (diff) | |
parent | 2c152eed4cb3f2493c87f773e9115c2a49470d6e (diff) |
Merge pull request #96948 from jtojnar/fix-pitivi
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/applications/video/pitivi/default.nix | 140 |
1 files changed, 114 insertions, 26 deletions
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix index 276c2fa787f22..b1c1dd285e205 100644 --- a/pkgs/applications/video/pitivi/default.nix +++ b/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 { |