Gentoo Archives: gentoo-commits

From: Mart Raudsepp <leio@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/gst-plugins-base/
Date: Mon, 30 Jul 2018 10:31:01
Message-Id: 1532946025.d497eeb294ae809d1b416d11e1292ff8c99d573a.leio@gentoo
1 commit: d497eeb294ae809d1b416d11e1292ff8c99d573a
2 Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jul 30 10:20:19 2018 +0000
4 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
5 CommitDate: Mon Jul 30 10:20:25 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d497eeb2
7
8 media-libs/gst-plugins-base: add media-libs/graphene using revision
9
10 GL elements automagically use graphene. But we want them always anyways,
11 if GL is enabled, so add a revision that just forces the dependency.
12 This is a separate revision, as it involves dropping keywords and it
13 would cascade into dozens of packages for other 1.14.2 version bumps,
14 thus keep a 1.14.2-r0 without it forced to avoid that for now.
15 If newly packaged graphene is installed separately, then 1.14.2-r0
16 will have an automagic dependency on it, but this here is the work
17 to fix that.
18
19 Package-Manager: Portage-2.3.43, Repoman-2.3.10
20
21 .../gst-plugins-base-1.14.2-r1.ebuild | 180 +++++++++++++++++++++
22 1 file changed, 180 insertions(+)
23
24 diff --git a/media-libs/gst-plugins-base/gst-plugins-base-1.14.2-r1.ebuild b/media-libs/gst-plugins-base/gst-plugins-base-1.14.2-r1.ebuild
25 new file mode 100644
26 index 00000000000..2a3f89e824a
27 --- /dev/null
28 +++ b/media-libs/gst-plugins-base/gst-plugins-base-1.14.2-r1.ebuild
29 @@ -0,0 +1,180 @@
30 +# Copyright 1999-2018 Gentoo Foundation
31 +# Distributed under the terms of the GNU General Public License v2
32 +
33 +EAPI=6
34 +GST_ORG_MODULE="gst-plugins-base"
35 +
36 +inherit flag-o-matic gstreamer
37 +
38 +DESCRIPTION="Basepack of plugins for gstreamer"
39 +HOMEPAGE="https://gstreamer.freedesktop.org/"
40 +
41 +LICENSE="GPL-2+ LGPL-2+"
42 +KEYWORDS="~amd64"
43 +
44 +# For OpenGL we have three separate concepts, with a list of possibilities in each:
45 +# * opengl APIs - opengl and/or gles2; USE=opengl and USE=gles2 enable these accordingly; if neither is enabled, OpenGL helper library and elements are not built at all and all the other options aren't relevant
46 +# * opengl platforms - glx and/or egl; also cgl, wgl, eagl for non-linux; USE="X opengl" enables glx platform; USE="egl" enables egl platform. Rest is up for relevant prefix teams.
47 +# * opengl windowing system - x11, wayland, win32, cocoa, android, viv_fb, gbm and/or dispmanx; USE=X enables x11 (but for WSI it's automagic - FIXME), USE=wayland enables wayland, USE=gbm enables gbm (automagic upstream - FIXME); rest is up for relevant prefix/arch teams/contributors to test and provide patches
48 +# With the following limitations:
49 +# * If opengl and/or gles2 is enabled, a platform has to be enabled - x11 or egl in our case, but x11 (glx) is acceptable only with opengl
50 +# * If opengl and/or gles2 is enabled, a windowing system has to be enabled - x11, wayland or gbm in our case
51 +# * glx platform requires opengl API
52 +# * wayland, gbm and most other non-glx WSIs require egl platform
53 +# Additionally there is optional dmabuf support with egl for additional dmabuf based upload/download/eglimage options;
54 +# and optional graphene usage for gltransformation and glvideoflip elements and more GLSL Uniforms support in glshader;
55 +# and libpng/jpeg are required for gloverlay element;
56 +
57 +# Keep default IUSE options for relevant ones mirrored with gst-plugins-gtk and gst-plugins-bad
58 +IUSE="alsa +egl gbm gles2 +introspection ivorbis +ogg +opengl +orc +pango theora +vorbis wayland +X"
59 +GL_REQUIRED_USE="
60 + || ( gbm wayland X )
61 + wayland? ( egl )
62 + gbm? ( egl )
63 +"
64 +REQUIRED_USE="
65 + ivorbis? ( ogg )
66 + theora? ( ogg )
67 + vorbis? ( ogg )
68 + opengl? ( || ( egl X ) ${GL_REQUIRED_USE} )
69 + gles2? ( egl ${GL_REQUIRED_USE} )
70 +"
71 +
72 +# Dependencies needed by opengl library and plugin (enabled via USE gles2 and/or opengl)
73 +# dmabuf automagic from libdrm headers (drm_fourcc.h) and EGL, so ensure it with USE=egl (platform independent header used only, thus no MULTILIB_USEDEP); provides dmabuf based upload/download/eglimage options
74 +GL_DEPS="
75 + >=media-libs/mesa-9.0[egl?,gbm?,gles2?,wayland?,${MULTILIB_USEDEP}]
76 + egl? (
77 + x11-libs/libdrm
78 + )
79 + gbm? (
80 + >=dev-libs/libgudev-147[${MULTILIB_USEDEP}]
81 + >=x11-libs/libdrm-2.4.55[${MULTILIB_USEDEP}]
82 + )
83 + wayland? (
84 + dev-libs/wayland[${MULTILIB_USEDEP}]
85 + )
86 +
87 + >=media-libs/graphene-1.4.0[${MULTILIB_USEDEP}]
88 + media-libs/libpng:0[${MULTILIB_USEDEP}]
89 + virtual/jpeg:0[${MULTILIB_USEDEP}]
90 +" # graphene for optional gltransformation and glvideoflip elements and more GLSL Uniforms support in glshader; libpng/jpeg for gloverlay element
91 +
92 +RDEPEND="
93 + app-text/iso-codes
94 + >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}]
95 + >=media-libs/gstreamer-${PV}:1.0[introspection?,${MULTILIB_USEDEP}]
96 + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
97 + alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
98 + introspection? ( >=dev-libs/gobject-introspection-1.31.1:= )
99 + ivorbis? ( >=media-libs/tremor-0_pre20130223[${MULTILIB_USEDEP}] )
100 + ogg? ( >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] )
101 + orc? ( >=dev-lang/orc-0.4.24[${MULTILIB_USEDEP}] )
102 + pango? ( >=x11-libs/pango-1.36.3[${MULTILIB_USEDEP}] )
103 + theora? ( >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] )
104 + vorbis? ( >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] )
105 + X? (
106 + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
107 + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
108 + >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}]
109 + )
110 +
111 + gles2? ( ${GL_DEPS} )
112 + opengl? ( ${GL_DEPS} )
113 +
114 + !<media-libs/gst-plugins-bad-1.13.1:1.0
115 +"
116 +DEPEND="${RDEPEND}
117 + >=dev-util/gtk-doc-am-1.12
118 + X? ( x11-base/xorg-proto )
119 +"
120 +
121 +src_prepare() {
122 + # Disable GL tests for now; prone to fail with EGL_NOT_INITIALIZED, etc
123 + sed -i -e '/^@USE_GL_TRUE@/d' tests/check/Makefile.in
124 + default
125 +}
126 +
127 +multilib_src_configure() {
128 + filter-flags -mno-sse -mno-sse2 -mno-sse4.1 #610340
129 +
130 + local myconf=()
131 + # FIXME: Automagic gbm and x11 wsi
132 + if use opengl || use gles2; then
133 + myconf+=(
134 + --enable-gl
135 + $(use_enable egl)
136 + $(use_enable gles2)
137 + $(use_enable opengl)
138 + $(use_enable wayland)
139 + $(use_enable X x11)
140 + )
141 + else
142 + myconf+=(
143 + --disable-gl
144 + --disable-egl
145 + --disable-gles2
146 + --disable-opengl
147 + --disable-wayland
148 + --disable-x11
149 + )
150 + fi
151 +
152 + if use opengl && use X; then
153 + # GLX requires desktop OpenGL and X
154 + myconf+=( --enable-glx )
155 + else
156 + myconf+=( --disable-glx )
157 + fi
158 +
159 + myconf+=(
160 + --disable-cocoa
161 + --disable-dispmanx
162 + --disable-wgl
163 + )
164 +
165 + gstreamer_multilib_src_configure \
166 + $(use_enable alsa) \
167 + $(multilib_native_use_enable introspection) \
168 + $(use_enable ivorbis) \
169 + $(use_enable ogg) \
170 + $(use_enable orc) \
171 + $(use_enable pango) \
172 + $(use_enable theora) \
173 + $(use_enable vorbis) \
174 + $(use_enable X x) \
175 + $(use_enable X xshm) \
176 + $(use_enable X xvideo) \
177 + --enable-iso-codes \
178 + --enable-zlib \
179 + --disable-debug \
180 + --disable-examples \
181 + --disable-static \
182 + "${myconf[@]}"
183 +
184 + # bug #366931, flag-o-matic for the whole thing is overkill
185 + if [[ ${CHOST} == *86-*-darwin* ]] ; then
186 + sed -i \
187 + -e '/FLAGS = /s|-O[23]|-O1|g' \
188 + gst/audioconvert/Makefile \
189 + gst/volume/Makefile || die
190 + fi
191 +
192 + if multilib_is_native_abi; then
193 + local x
194 + for x in libs plugins; do
195 + ln -s "${S}"/docs/${x}/html docs/${x}/html || die
196 + done
197 + fi
198 +}
199 +
200 +multilib_src_install_all() {
201 + DOCS="AUTHORS NEWS README RELEASE"
202 + einstalldocs
203 + find "${ED}" -name '*.la' -delete || die
204 +}
205 +
206 +multilib_src_test() {
207 + unset GSETTINGS_BACKEND
208 + emake check
209 +}