diff mbox series

[bug#41022,core-updates] gnu: python-gst: Fix build with Python 3.8.

Message ID 20200502110314.30403-1-mail@cbaines.net
State Accepted
Headers show
Series [bug#41022,core-updates] gnu: python-gst: Fix build with Python 3.8. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Christopher Baines May 2, 2020, 11:03 a.m. UTC
Add a patch based on an upstream commit [1].

1: 10707f437f2fc3632067c6a0efa4432f7ebaf362

* gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gstreamer.scm (python-gst)[source]: Use the patch.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/gstreamer.scm                    |  4 +-
 ...python-gst-fix-build-with-python-3.8.patch | 41 +++++++++++++++++++
 3 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch

Comments

Marius Bakke May 2, 2020, 11:26 a.m. UTC | #1
Christopher Baines <mail@cbaines.net> writes:

> Add a patch based on an upstream commit [1].
>
> 1: 10707f437f2fc3632067c6a0efa4432f7ebaf362
>
> * gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.
> * gnu/packages/gstreamer.scm (python-gst)[source]: Use the patch.

[...]

> diff --git a/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
> new file mode 100644
> index 0000000000..49f41e0c03
> --- /dev/null
> +++ b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
> @@ -0,0 +1,41 @@
> +From 10707f437f2fc3632067c6a0efa4432f7ebaf362 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 | 11 +++++++++--
> + 1 file changed, 9 insertions(+), 2 deletions(-)

Instead of the git patch format, can you add a short comment at the top
along with links to the upstream commit and issue like we usually do?

Otherwise LGTM, thanks!
Christopher Baines May 2, 2020, 1:17 p.m. UTC | #2
Marius Bakke <mbakke@fastmail.com> writes:

> Christopher Baines <mail@cbaines.net> writes:
>
>> Add a patch based on an upstream commit [1].
>>
>> 1: 10707f437f2fc3632067c6a0efa4432f7ebaf362
>>
>> * gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch: New file.
>> * gnu/local.mk (dist_patch_DATA): Add it.
>> * gnu/packages/gstreamer.scm (python-gst)[source]: Use the patch.
>
> [...]
>
>> diff --git a/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
>> new file mode 100644
>> index 0000000000..49f41e0c03
>> --- /dev/null
>> +++ b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
>> @@ -0,0 +1,41 @@
>> +From 10707f437f2fc3632067c6a0efa4432f7ebaf362 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 | 11 +++++++++--
>> + 1 file changed, 9 insertions(+), 2 deletions(-)
>
> Instead of the git patch format, can you add a short comment at the top
> along with links to the upstream commit and issue like we usually do?

I usually avoid messing with patches, they're often uncooperative. Would
something I this do?


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

Patch based on upstream commit:

https://gitlab.freedesktop.org/gstreamer/gst-python/-/commit/10707f437f2fc3632067c6a0efa4432f7ebaf362
Marius Bakke May 2, 2020, 1:41 p.m. UTC | #3
Christopher Baines <mail@cbaines.net> writes:

> Marius Bakke <mbakke@fastmail.com> writes:
>
>> Christopher Baines <mail@cbaines.net> writes:
>>
>>> Add a patch based on an upstream commit [1].
>>>
>>> 1: 10707f437f2fc3632067c6a0efa4432f7ebaf362
>>>
>>> * gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch: New file.
>>> * gnu/local.mk (dist_patch_DATA): Add it.
>>> * gnu/packages/gstreamer.scm (python-gst)[source]: Use the patch.
>>
>> [...]
>>
>>> diff --git a/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
>>> new file mode 100644
>>> index 0000000000..49f41e0c03
>>> --- /dev/null
>>> +++ b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
>>> @@ -0,0 +1,41 @@
>>> +From 10707f437f2fc3632067c6a0efa4432f7ebaf362 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 | 11 +++++++++--
>>> + 1 file changed, 9 insertions(+), 2 deletions(-)
>>
>> Instead of the git patch format, can you add a short comment at the top
>> along with links to the upstream commit and issue like we usually do?
>
> I usually avoid messing with patches, they're often uncooperative. Would
> something I this do?

Anything before the "diff ..." line is treated as comments/noop by the
patch utility (actually you can add comments between the @@ lines too).

> 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
>
> Patch based on upstream commit:
>
> https://gitlab.freedesktop.org/gstreamer/gst-python/-/commit/10707f437f2fc3632067c6a0efa4432f7ebaf362

Perfect, thanks!
Christopher Baines May 2, 2020, 2:50 p.m. UTC | #4
Marius Bakke <mbakke@fastmail.com> writes:

> Christopher Baines <mail@cbaines.net> writes:
>
>> Marius Bakke <mbakke@fastmail.com> writes:
>>
>>> Instead of the git patch format, can you add a short comment at the top
>>> along with links to the upstream commit and issue like we usually do?
>>
>> I usually avoid messing with patches, they're often uncooperative. Would
>> something I this do?
>
> Anything before the "diff ..." line is treated as comments/noop by the
> patch utility (actually you can add comments between the @@ lines too).
>
>> 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
>>
>> Patch based on upstream commit:
>>
>> https://gitlab.freedesktop.org/gstreamer/gst-python/-/commit/10707f437f2fc3632067c6a0efa4432f7ebaf362
>
> Perfect, thanks!

Great, I've pushed this as 20d7dbc77a2b0ed379c0a595daf8d7f852ef3a4c.
diff mbox series

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 0111ae2161..acfc5cec4d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1394,6 +1394,7 @@  dist_patch_DATA =						\
   %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
   %D%/packages/patches/python-configobj-setuptools.patch	\
   %D%/packages/patches/python-flask-restful-werkzeug-compat.patch	\
+  %D%/packages/patches/python-gst-fix-build-with-python-3.8.patch	\
   %D%/packages/patches/python-keras-integration-test.patch	\
   %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
   %D%/packages/patches/python-pyfakefs-remove-bad-test.patch	\
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 93149e370e..7596796d68 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -521,7 +521,9 @@  non-linear editors.")
                     "gst-python-" version ".tar.xz"))
               (sha256
                (base32
-                "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"))))
+                "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"))
+              (patches
+               (search-patches "python-gst-fix-build-with-python-3.8.patch"))))
     (build-system meson-build-system)
     (arguments
      `(#:modules ((guix build meson-build-system)
diff --git a/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
new file mode 100644
index 0000000000..49f41e0c03
--- /dev/null
+++ b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
@@ -0,0 +1,41 @@ 
+From 10707f437f2fc3632067c6a0efa4432f7ebaf362 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 | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 5f13b48..d7c7e66 100644
+--- a/meson.build
++++ b/meson.build
+@@ -23,7 +23,17 @@ 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()
++if pythonver.version_compare('<3.0')
++   error('Python2 is not supported anymore, please port your code to python3 (@0@ specified)'.format(python.language_version()))
++endif
++
++# 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.26.2