commit:     9ada748e8e0dff302c0f528e44915349e8d8a851
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 28 01:20:35 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Dec 28 01:24:39 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9ada748e

media-video/pitivi: allow building with newer GStreamer (1.18+)

- Package bundled/bundles parts of gst-transcoder. We now
  forcefully disable building of that copy and remove
  the bundled version/subproject as a safety measure.

  (Not that it should be needed now; it shouldn't
  try to use that version anymore, because...)

- ... patch the build system (upstream patch, long in a release)
  to allow gst 1.18+ / recognise the version of transcoder that
  gst 1.18 has (it's now in gst-plugins-bad).

This actually fixes the sandbox failure too in addition to the
collision with gst-plugins-bad because we're no longer building
a copy of gst-transcoder w/o needed workarounds.

(Wasn't able to reproduce the sandbox failure at first:
ended up installing all gst-* packages, then temporarily
restoring the bundled copy to hit it. leio did suggest
gst-plugins-v4l2 may be enough but I only realised I needed
the bundled copy of gst-transcoder to trigger the failure
after I'd installed everything and it's irrelevant now anyway.)

Closes: https://bugs.gentoo.org/804945
Closes: https://bugs.gentoo.org/830123
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../pitivi/files/pitivi-0.999-gst-0.18.patch       |  39 +++++++
 media-video/pitivi/pitivi-0.999-r5.ebuild          | 121 +++++++++++++++++++++
 2 files changed, 160 insertions(+)

diff --git a/media-video/pitivi/files/pitivi-0.999-gst-0.18.patch 
b/media-video/pitivi/files/pitivi-0.999-gst-0.18.patch
new file mode 100644
index 000000000000..13d375f3a4e5
--- /dev/null
+++ b/media-video/pitivi/files/pitivi-0.999-gst-0.18.patch
@@ -0,0 +1,39 @@
+https://gitlab.gnome.org/GNOME/pitivi/-/commit/51ae6533ee26ffd47e453eb5f5ad8cd46f57d15e.patch
 (rebased)
+https://bugs.gentoo.org/804945
+
+--- a/meson.build
++++ b/meson.build
+@@ -22,7 +22,6 @@ if get_option('build-gst')
+         'gst-plugins-base:disable_gtkdoc=true',
+         'gstreamer:disable_gtkdoc=true',
+         ])
+-    subproject('gst-transcoder')
+ endif
+ 
+ gst_dep = dependency('gstreamer-1.0', version : '>= 1.14.2',
+@@ -30,9 +29,6 @@ gst_dep = dependency('gstreamer-1.0', version : '>= 1.14.2',
+ cairo_dep = dependency('cairo')
+ pycairo_dep = dependency('py3cairo')
+ 
+-gst_transcoder_dep = dependency('gst-transcoder-1.0', version : '>= 1.8.1',
+-    fallback : ['gst-transcoder', 'gst_transcoder_dep'])
+-
+ pkgdatadir = join_paths(get_option('datadir'), meson.project_name())
+ 
+ git = find_program('git', required : false)
+--- a/tests/__init__.py
++++ b/tests/__init__.py
+@@ -59,12 +59,7 @@ def setup():
+ 
+     # Make available the compiled C code.
+     sys.path.append(configure.BUILDDIR)
+-    subproject_paths = os.path.join(configure.BUILDDIR, "subprojects", 
"gst-transcoder")
+-
+-    _prepend_env_paths(LD_LIBRARY_PATH=subproject_paths,
+-                       GST_PLUGIN_PATH=subproject_paths,
+-                       GI_TYPELIB_PATH=subproject_paths,
+-                       GST_PRESET_PATH=[os.path.join(pitivi_dir, "data", 
"videopresets"),
++    _prepend_env_paths(GST_PRESET_PATH=[os.path.join(pitivi_dir, "data", 
"videopresets"),
+                                         os.path.join(pitivi_dir, "data", 
"audiopresets")],
+                        GST_ENCODING_TARGET_PATH=[os.path.join(pitivi_dir, 
"tests", "test-encoding-targets"),
+                                                  os.path.join(pitivi_dir, 
"data", "encoding-profiles")])

diff --git a/media-video/pitivi/pitivi-0.999-r5.ebuild 
b/media-video/pitivi/pitivi-0.999-r5.ebuild
new file mode 100644
index 000000000000..8e55460d1868
--- /dev/null
+++ b/media-video/pitivi/pitivi-0.999-r5.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{8..9} )
+PYTHON_REQ_USE="sqlite"
+
+inherit gnome.org meson python-single-r1 virtualx xdg
+
+DESCRIPTION="A non-linear video editor using the GStreamer multimedia 
framework"
+HOMEPAGE="http://www.pitivi.org";
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="v4l test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# XXX: recommends gst-plugins-libav and frei0r-plugins
+
+# Do not forget to check pitivi/check.py for dependencies!!!
+# pycanberra, libav, libnotify and liwnck are optional
+GST_VER="1.14.2"
+
+COMMON_DEPEND="
+       ${PYTHON_DEPS}
+       $(python_gen_cond_dep '
+               >=dev-python/pycairo-1.10[${PYTHON_USEDEP}]
+       ')
+       >=x11-libs/cairo-1.10
+
+       >=media-libs/gstreamer-${GST_VER}:1.0[introspection]
+       >media-libs/gst-plugins-bad-1.18
+"
+RDEPEND="${COMMON_DEPEND}
+       >=dev-libs/glib-2.30.0:2
+
+       >=dev-libs/gobject-introspection-1.34:=
+       $(python_gen_cond_dep '
+               dev-python/dbus-python[${PYTHON_USEDEP}]
+               >=dev-python/gst-python-1.4:1.0[${PYTHON_USEDEP}]
+               dev-python/matplotlib[${PYTHON_USEDEP}]
+               dev-python/numpy[${PYTHON_USEDEP}]
+               >=dev-python/pygobject-3.8:3[${PYTHON_USEDEP}]
+       ')
+
+       gnome-base/librsvg:=
+       >=media-libs/gsound-1.0
+
+       >=media-libs/gstreamer-editing-services-${GST_VER}:1.0[introspection]
+       >=media-libs/gst-plugins-base-${GST_VER}:1.0[introspection,theora]
+       >=media-libs/gst-plugins-bad-${GST_VER}:1.0
+       >=media-plugins/gst-plugins-gtk-${GST_VER}:1.0
+       >=media-libs/gst-plugins-good-${GST_VER}:1.0
+       >=media-plugins/gst-plugins-libav-${GST_VER}:1.0
+       >=media-plugins/gst-plugins-gdkpixbuf-${GST_VER}:1.0
+
+       >=x11-libs/libnotify-0.7[introspection]
+       x11-libs/libwnck:3[introspection]
+       >=x11-libs/gtk+-3.20.0:3[introspection]
+
+       v4l? ( >=media-plugins/gst-plugins-v4l2-${GST_VER}:1.0 )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       app-text/yelp-tools
+       dev-python/setuptools
+       >=dev-util/intltool-0.35.5
+       dev-util/itstool
+       sys-devel/gettext
+       virtual/pkgconfig
+       test? (
+               $(python_gen_cond_dep '
+                       dev-python/nose2[${PYTHON_USEDEP}]
+               ')
+       )
+"
+
+PATCHES=(
+       # https://gitlab.gnome.org/GNOME/pitivi/-/merge_requests/245
+       # support python 3.8
+       "${FILESDIR}"/${P}-python38.patch
+
+       # use /usr/share/metainfo
+       "${FILESDIR}"/${P}-metainfo.patch
+
+       # Make tests optional, bug #594096
+       # https://gitlab.gnome.org/GNOME/pitivi/issues/2303
+       "${FILESDIR}"/${P}-optional-tests.patch
+
+       # Backport upstream commit to allow building w/ newer gst
+       # bug #804945 and bug #830123
+       "${FILESDIR}"/${P}-gst-0.18.patch
+)
+
+src_prepare() {
+       default
+
+       # Drop bundled gst, just in case
+       rm -r "${S}"/subprojects/gst-transcoder || die
+}
+
+src_configure() {
+       local emesonargs=(
+               -Denable-tests=$(usex test true false)
+               -Dbuild-gst=false
+       )
+       meson_src_configure
+}
+
+src_test() {
+       export PITIVI_TOP_LEVEL_DIR="${S}"
+       virtx meson_src_test
+}
+
+src_install() {
+       meson_src_install
+       python_fix_shebang "${D}"
+}

Reply via email to