public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-python/gst-python/files/, dev-python/gst-python/
@ 2020-05-03 20:19 Mart Raudsepp
  0 siblings, 0 replies; 2+ messages in thread
From: Mart Raudsepp @ 2020-05-03 20:19 UTC (permalink / raw
  To: gentoo-commits

commit:     7270ff7644a72cf1b27650804bb14d7154e58d46
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Sun May  3 20:19:29 2020 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Sun May  3 20:19:37 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7270ff76

dev-python/gst-python: bump to 1.16.2, add py3.8 support

Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>

 dev-python/gst-python/Manifest                     |  1 +
 dev-python/gst-python/files/1.16.2-python3.8.patch | 39 +++++++++++++
 dev-python/gst-python/gst-python-1.16.2.ebuild     | 64 ++++++++++++++++++++++
 3 files changed, 104 insertions(+)

diff --git a/dev-python/gst-python/Manifest b/dev-python/gst-python/Manifest
index 6df71b4a268..00f4c0d1a6c 100644
--- a/dev-python/gst-python/Manifest
+++ b/dev-python/gst-python/Manifest
@@ -1 +1,2 @@
 DIST gst-python-1.14.1.tar.xz 405312 BLAKE2B 29be6f79b20a27e0d21f27cbf29b1881216e412c3c4ea016f3ee6bd921ec7b73139f74a20528f7f704526786347b065d246940f152d61a64e4eb926dbb44bb87 SHA512 32537e6556b69d00cb0b467239c148c0b9c282b76786be395e053a30554b84aea7c22e7fe6fc6faf77b35fca82fb799df4f52c114b282d0a6ea660f67dc40c53
+DIST gst-python-1.16.2.tar.xz 414912 BLAKE2B 016e59fc7d29047dcf49901d4ccb1ff2e96950dc723cd7e9dd31e0fe92257e881ced1c93e7e4e531320be8fb9d6cb8382d2c31e460448d5d630ec7c8a0378024 SHA512 c274591cb820a2576ca236de0d1a2c2c53a9db11afc689e0385afe3d38fadc59c9230d65198e79e4059abb90c0e5b6d71f1ee4cf1439d92feaaffd2ab5cd3a23

diff --git a/dev-python/gst-python/files/1.16.2-python3.8.patch b/dev-python/gst-python/files/1.16.2-python3.8.patch
new file mode 100644
index 00000000000..c4b4ddd1122
--- /dev/null
+++ b/dev-python/gst-python/files/1.16.2-python3.8.patch
@@ -0,0 +1,39 @@
+From 22f28155d86e27c4134de4ed2861264003fcfd23 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
+Date: Fri, 13 Dec 2019 10:46:20 +0200
+Subject: [PATCH] Fix build with Python 3.8 by also checking for
+ python-3.X-embed.pc
+
+Since Python 3.8 the normal checks don't include the Python libraries
+anymore and linking of the gst-python module would fail.
+
+See also https://github.com/mesonbuild/meson/issues/5629
+
+Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/issues/28
+---
+ meson.build | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 744b7ce..fe4ca7a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -24,7 +24,14 @@ pygobject_dep = dependency('pygobject-3.0', fallback: ['pygobject', 'pygobject_d
+ 
+ pymod = import('python')
+ python = pymod.find_installation(get_option('python'))
+-python_dep = python.dependency(required : true)
++pythonver = python.language_version()
++
++# Workaround for https://github.com/mesonbuild/meson/issues/5629
++# https://gitlab.freedesktop.org/gstreamer/gst-python/issues/28
++python_dep = dependency('python-@0@-embed'.format(pythonver), version: '>=3', required: false)
++if not python_dep.found()
++  python_dep = python.dependency(required : true)
++endif
+ 
+ python_abi_flags = python.get_variable('ABIFLAGS', '')
+ pylib_loc = get_option('libpython-dir')
+-- 
+2.20.1
+

diff --git a/dev-python/gst-python/gst-python-1.16.2.ebuild b/dev-python/gst-python/gst-python-1.16.2.ebuild
new file mode 100644
index 00000000000..d449b2151e0
--- /dev/null
+++ b/dev-python/gst-python/gst-python-1.16.2.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{2_7,3_6,3_7,3_8} )
+
+inherit meson python-r1 xdg-utils
+
+DESCRIPTION="A Python Interface to GStreamer"
+HOMEPAGE="https://gstreamer.freedesktop.org/"
+SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz"
+
+LICENSE="LGPL-2+"
+SLOT="1.0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-solaris"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+	>=media-libs/gstreamer-${PV}:1.0[introspection]
+	>=media-libs/gst-plugins-base-${PV}:1.0[introspection]
+	>=dev-python/pygobject-3.8:3[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+	virtual/pkgconfig
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PV}-python3.8.patch
+)
+
+src_prepare() {
+	default
+	# Avoid building plugin - it must NOT be multi-python as gst-inspect will map in all libpython.so versions and crash or behave mysteriously.
+	# Python plugin support is of limited use (GIL gets in the way). If it's ever requested or needed, it should be a
+	# separate python-single-r1 media-plugins/gst-plugins-python package that only builds the plugin directory.
+	sed -e '/subdir.*plugin/d' -i meson.build || die
+	xdg_environment_reset
+}
+
+src_configure() {
+	configuring() {
+		meson_src_configure \
+			-Dpython="${EPYTHON}"
+	}
+	python_foreach_impl configuring
+}
+
+src_compile() {
+	python_foreach_impl meson_src_compile
+}
+
+src_test() {
+	python_foreach_impl meson_src_test
+}
+
+src_install() {
+	installing() {
+		meson_src_install
+		python_optimize
+	}
+	python_foreach_impl installing
+}


^ permalink raw reply related	[flat|nested] 2+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-python/gst-python/files/, dev-python/gst-python/
@ 2022-01-28 20:57 Matt Turner
  0 siblings, 0 replies; 2+ messages in thread
From: Matt Turner @ 2022-01-28 20:57 UTC (permalink / raw
  To: gentoo-commits

commit:     1fdb5ab85428a9310e65d2bb95145390664984e2
Author:     Thomas Bettler <thomas.bettler <AT> gmail <DOT> com>
AuthorDate: Sun Dec 12 18:57:28 2021 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Fri Jan 28 20:57:36 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1fdb5ab8

dev-python/gst-python: add python 3.10

Closes: https://bugs.gentoo.org/829009
Closes: https://github.com/gentoo/gentoo/pull/23272
Signed-off-by: Thomas Bettler <thomas.bettler <AT> gmail.com>
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 ...python-1.18.4-avoid-treating-float-as-int.patch | 86 ++++++++++++++++++++++
 dev-python/gst-python/gst-python-1.18.4.ebuild     |  4 +
 2 files changed, 90 insertions(+)

diff --git a/dev-python/gst-python/files/gst-python-1.18.4-avoid-treating-float-as-int.patch b/dev-python/gst-python/files/gst-python-1.18.4-avoid-treating-float-as-int.patch
new file mode 100644
index 000000000000..d9cc6bca086b
--- /dev/null
+++ b/dev-python/gst-python/files/gst-python-1.18.4-avoid-treating-float-as-int.patch
@@ -0,0 +1,86 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Thibault Saunier <tsaunier@igalia.com>
+Date: Tue, 16 Nov 2021 23:36:10 -0300
+Subject: [PATCH] python: Avoid treating float as int
+
+Since python 3.10 implicit conversion to integers using `__int__` as
+been completely removed (was deprecated behavior in 3.9) so we need
+to cleanly handle it now.
+
+See https://gitlab.gnome.org/GNOME/pitivi/-/issues/2589
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1358>
+---
+ .../gst-python/gi/overrides/gstmodule.c       | 54 ++++++++++++++++---
+ 1 file changed, 47 insertions(+), 7 deletions(-)
+
+diff --git a/subprojects/gst-python/gi/overrides/gstmodule.c b/subprojects/gst-python/gi/overrides/gstmodule.c
+index 167a1c27539a..2308eb7dcde6 100644
+--- a/gi/overrides/gstmodule.c
++++ b/gi/overrides/gstmodule.c
+@@ -104,18 +104,58 @@ gi_gst_fraction_from_value (const GValue * value)
+ static int
+ gi_gst_fraction_to_value (GValue * value, PyObject * object)
+ {
+-  PyObject *numerator, *denominator;
++  glong numerator, denominator;
++  PyObject *numerator_obj, *denominator_obj, *is_integer;
+ 
+-  numerator = PyObject_GetAttrString (object, "num");
+-  if (numerator == NULL)
++  numerator_obj = PyObject_GetAttrString (object, "num");
++  if (numerator_obj == NULL)
+     goto fail;
+ 
+-  denominator = PyObject_GetAttrString (object, "denom");
+-  if (denominator == NULL)
++  is_integer = PyObject_CallMethod (numerator_obj, "is_integer", NULL);
++  if (is_integer != Py_True) {
++    PyErr_Format (PyExc_TypeError,
++        "numerator %f is not an integer.", PyFloat_AsDouble (numerator_obj));
++    Py_DECREF (is_integer);
++    goto fail;
++  }
++  Py_DECREF (is_integer);
++
++  numerator = PyFloat_AsDouble (numerator_obj);
++  if (numerator < -G_MAXINT || numerator > G_MAXINT) {
++    PyErr_Format (PyExc_ValueError,
++        "numerator %" G_GINT64_FORMAT " is out of bound. [-%d - %d]",
++        numerator, G_MAXINT, G_MAXINT);
++    goto fail;
++  }
++
++  denominator_obj = PyObject_GetAttrString (object, "denom");
++  if (denominator_obj == NULL)
+     goto fail;
+ 
+-  gst_value_set_fraction (value,
+-      PyLong_AsLong (numerator), PyLong_AsLong (denominator));
++  is_integer = PyObject_CallMethod (denominator_obj, "is_integer", NULL);
++  if (is_integer != Py_True) {
++    PyErr_Format (PyExc_TypeError,
++        "denominator %f is not an integer.",
++        PyFloat_AsDouble (denominator_obj));
++    Py_DECREF (is_integer);
++    goto fail;
++  }
++  Py_DECREF (is_integer);
++
++  denominator = PyFloat_AsDouble (denominator_obj);
++  if (denominator == 0) {
++    PyErr_SetString (PyExc_ValueError, "denominator is 0.");
++    goto fail;
++  }
++
++  if (denominator < -G_MAXINT || denominator > G_MAXINT) {
++    PyErr_Format (PyExc_ValueError,
++        "denominator %" G_GINT64_FORMAT " is out of bound. [-%d - %d]",
++        denominator, G_MAXINT, G_MAXINT);
++    goto fail;
++  }
++
++  gst_value_set_fraction (value, numerator, denominator);
+ 
+   return 0;
+ 

diff --git a/dev-python/gst-python/gst-python-1.18.4.ebuild b/dev-python/gst-python/gst-python-1.18.4.ebuild
index 911b008ead42..7b3a8d2265cd 100644
--- a/dev-python/gst-python/gst-python-1.18.4.ebuild
+++ b/dev-python/gst-python/gst-python-1.18.4.ebuild
@@ -26,6 +26,10 @@ BDEPEND="
 	virtual/pkgconfig
 "
 
+PATCHES=(
+	"${FILESDIR}/${P}-avoid-treating-float-as-int.patch"
+)
+
 src_prepare() {
 	default
 


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-01-28 20:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-03 20:19 [gentoo-commits] repo/gentoo:master commit in: dev-python/gst-python/files/, dev-python/gst-python/ Mart Raudsepp
  -- strict thread matches above, loose matches on Subject: below --
2022-01-28 20:57 Matt Turner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox