diff options
author | Sam James <sam@gentoo.org> | 2021-12-28 01:20:35 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2021-12-28 01:24:39 +0000 |
commit | 9ada748e8e0dff302c0f528e44915349e8d8a851 (patch) | |
tree | a25c982a835036f85baffcba8dc7b0b37b2945fb /media-video/pitivi | |
parent | media-plugins/gst-plugins-opencv: fix build with newer glib (diff) | |
download | gentoo-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.patch | 39 | ||||
-rw-r--r-- | media-video/pitivi/pitivi-0.999-r5.ebuild | 121 |
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}" +} |