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 |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
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!
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
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!
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 --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