summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2021-12-28 01:20:35 +0000
committerSam James <sam@gentoo.org>2021-12-28 01:24:39 +0000
commit9ada748e8e0dff302c0f528e44915349e8d8a851 (patch)
treea25c982a835036f85baffcba8dc7b0b37b2945fb /media-video/pitivi
parentmedia-plugins/gst-plugins-opencv: fix build with newer glib (diff)
downloadgentoo-9ada748e8e0dff302c0f528e44915349e8d8a851.tar.gz
gentoo-9ada748e8e0dff302c0f528e44915349e8d8a851.tar.bz2
gentoo-9ada748e8e0dff302c0f528e44915349e8d8a851.zip
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@gentoo.org>
Diffstat (limited to 'media-video/pitivi')
-rw-r--r--media-video/pitivi/files/pitivi-0.999-gst-0.18.patch39
-rw-r--r--media-video/pitivi/pitivi-0.999-r5.ebuild121
2 files changed, 160 insertions, 0 deletions
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}"
+}