Message ID | 20240225093726.1113403-1-martin.jansa@gmail.com |
---|---|
State | Accepted, archived |
Commit | 258cb46f93af3249fb554a679af6222174bd2e95 |
Headers | show |
Series | glib-2.0: backport a switch from distutils to packaging in codegen | expand |
I am seeing some build failures which seems to be related to this patch https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/3657/steps/15/logs/stdio | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/gattlib/0.2+git/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", line 22, in <module> | import packaging.version | ModuleNotFoundError: No module named 'packaging' | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/networkmanager-fortisslvpn/1.4.0/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", line 22, in <module> | import packaging.version | ModuleNotFoundError: No module named 'packaging' | make: *** [Makefile:2081: src/nm-fortisslvpn-pppd-service-dbus.h] Error 1 On Sun, Feb 25, 2024 at 1:37 AM Martin Jansa <martin.jansa@gmail.com> wrote: > > * to fix build on hosts with python-3.12, now it fails with: > > Traceback (most recent call last): > File "recipe-sysroot-native/usr/bin/gdbus-codegen", line 53, in <module> > from codegen import codegen_main > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/codegen_main.py", line 29, in <module> > from . import dbustypes > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/dbustypes.py", line 22, in <module> > from . import utils > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", line 22, in <module> > import distutils.version > ModuleNotFoundError: No module named 'distutils' > CMake Error at CMakeLists.txt:90 (message): > Error in generating code for connman interface using gdbus-codegen > > Signed-off-by: Martin Jansa <martin.jansa@gmail.com> > --- > ...deprecated-distutils-module-to-the-p.patch | 34 +++++++++++++++++++ > meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb | 1 + > meta/recipes-core/glib-2.0/glib.inc | 4 +-- > 3 files changed, 36 insertions(+), 3 deletions(-) > create mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > new file mode 100644 > index 0000000000..50368ed22c > --- /dev/null > +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > @@ -0,0 +1,34 @@ > +From 05f0674c93d94fe6b29c1b707980aac469ddcd72 Mon Sep 17 00:00:00 2001 > +From: Jordan Williams <jordan@jwillikers.com> > +Date: Fri, 1 Dec 2023 09:53:50 -0600 > +Subject: [PATCH] Switch from the deprecated distutils module to the packaging > + module > + > +The distutils module was removed in Python 3.12. > + > +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6ef967a0f930ce37a8c9b5aff969693b34714291] > + > +Signed-off-by: Martin Jansa <martin.jansa@gmail.com> > +--- > + gio/gdbus-2.0/codegen/utils.py | 4 ++-- > + 1 file changed, 2 insertions(+), 2 deletions(-) > + > +diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py > +index 0204610..08f1ba9 100644 > +--- a/gio/gdbus-2.0/codegen/utils.py > ++++ b/gio/gdbus-2.0/codegen/utils.py > +@@ -19,7 +19,7 @@ > + # > + # Author: David Zeuthen <davidz@redhat.com> > + > +-import distutils.version > ++import packaging.version > + import os > + import sys > + > +@@ -166,4 +166,4 @@ def version_cmp_key(key): > + v = str(key[0]) > + else: > + v = "0" > +- return (distutils.version.LooseVersion(v), key[1]) > ++ return (packaging.version.Version(v), key[1]) > diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > index 42814ba544..6c3e99c641 100644 > --- a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > @@ -14,6 +14,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ > file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ > file://0001-meson-Run-atomics-test-on-clang-as-well.patch \ > file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \ > + file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \ > file://memory-monitor.patch \ > file://native-gtkdoc.patch \ > " > diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc > index 5a57549d85..fac8875d84 100644 > --- a/meta/recipes-core/glib-2.0/glib.inc > +++ b/meta/recipes-core/glib-2.0/glib.inc > @@ -144,9 +144,7 @@ do_install:append:mingw32() { > rm -f ${D}${bindir}/gtester-report > } > > -# remove setuptools dependency when usage of distutils is dropped in > -# https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/gdbus-2.0/codegen/utils.py > -CODEGEN_PYTHON_RDEPENDS = "python3 python3-setuptools python3-xml" > +CODEGEN_PYTHON_RDEPENDS = "python3 python3-packaging python3-xml" > CODEGEN_PYTHON_RDEPENDS:mingw32 = "" > > RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" > -- > 2.43.2 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#196136): https://lists.openembedded.org/g/openembedded-core/message/196136 > Mute This Topic: https://lists.openembedded.org/mt/104560766/1997914 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Thanks Khem, will try to reproduce tomorrow. Maybe these don't use CODEGEN_PYTHON_RDEPENDS. With this patch backported to kirkstone I've seen glib-2.0-native failing with the same issue as python3native there doesn't include python3-packaging. Maybe these recipes aren't using python3native and were depending on packaging from host, will debug tomorrow. On Tue, Feb 27, 2024 at 12:16 AM Khem Raj <raj.khem@gmail.com> wrote: > > I am seeing some build failures which seems to be related to this patch > > https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/3657/steps/15/logs/stdio > > | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/gattlib/0.2+git/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", > line 22, in <module> > | import packaging.version > | ModuleNotFoundError: No module named 'packaging' > > > > | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/networkmanager-fortisslvpn/1.4.0/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", > line 22, in <module> > | import packaging.version > | ModuleNotFoundError: No module named 'packaging' > | make: *** [Makefile:2081: src/nm-fortisslvpn-pppd-service-dbus.h] Error 1 > > > On Sun, Feb 25, 2024 at 1:37 AM Martin Jansa <martin.jansa@gmail.com> wrote: > > > > * to fix build on hosts with python-3.12, now it fails with: > > > > Traceback (most recent call last): > > File "recipe-sysroot-native/usr/bin/gdbus-codegen", line 53, in <module> > > from codegen import codegen_main > > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/codegen_main.py", line 29, in <module> > > from . import dbustypes > > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/dbustypes.py", line 22, in <module> > > from . import utils > > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", line 22, in <module> > > import distutils.version > > ModuleNotFoundError: No module named 'distutils' > > CMake Error at CMakeLists.txt:90 (message): > > Error in generating code for connman interface using gdbus-codegen > > > > Signed-off-by: Martin Jansa <martin.jansa@gmail.com> > > --- > > ...deprecated-distutils-module-to-the-p.patch | 34 +++++++++++++++++++ > > meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb | 1 + > > meta/recipes-core/glib-2.0/glib.inc | 4 +-- > > 3 files changed, 36 insertions(+), 3 deletions(-) > > create mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > > > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > new file mode 100644 > > index 0000000000..50368ed22c > > --- /dev/null > > +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > @@ -0,0 +1,34 @@ > > +From 05f0674c93d94fe6b29c1b707980aac469ddcd72 Mon Sep 17 00:00:00 2001 > > +From: Jordan Williams <jordan@jwillikers.com> > > +Date: Fri, 1 Dec 2023 09:53:50 -0600 > > +Subject: [PATCH] Switch from the deprecated distutils module to the packaging > > + module > > + > > +The distutils module was removed in Python 3.12. > > + > > +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6ef967a0f930ce37a8c9b5aff969693b34714291] > > + > > +Signed-off-by: Martin Jansa <martin.jansa@gmail.com> > > +--- > > + gio/gdbus-2.0/codegen/utils.py | 4 ++-- > > + 1 file changed, 2 insertions(+), 2 deletions(-) > > + > > +diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py > > +index 0204610..08f1ba9 100644 > > +--- a/gio/gdbus-2.0/codegen/utils.py > > ++++ b/gio/gdbus-2.0/codegen/utils.py > > +@@ -19,7 +19,7 @@ > > + # > > + # Author: David Zeuthen <davidz@redhat.com> > > + > > +-import distutils.version > > ++import packaging.version > > + import os > > + import sys > > + > > +@@ -166,4 +166,4 @@ def version_cmp_key(key): > > + v = str(key[0]) > > + else: > > + v = "0" > > +- return (distutils.version.LooseVersion(v), key[1]) > > ++ return (packaging.version.Version(v), key[1]) > > diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > > index 42814ba544..6c3e99c641 100644 > > --- a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > > +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > > @@ -14,6 +14,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ > > file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ > > file://0001-meson-Run-atomics-test-on-clang-as-well.patch \ > > file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \ > > + file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \ > > file://memory-monitor.patch \ > > file://native-gtkdoc.patch \ > > " > > diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc > > index 5a57549d85..fac8875d84 100644 > > --- a/meta/recipes-core/glib-2.0/glib.inc > > +++ b/meta/recipes-core/glib-2.0/glib.inc > > @@ -144,9 +144,7 @@ do_install:append:mingw32() { > > rm -f ${D}${bindir}/gtester-report > > } > > > > -# remove setuptools dependency when usage of distutils is dropped in > > -# https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/gdbus-2.0/codegen/utils.py > > -CODEGEN_PYTHON_RDEPENDS = "python3 python3-setuptools python3-xml" > > +CODEGEN_PYTHON_RDEPENDS = "python3 python3-packaging python3-xml" > > CODEGEN_PYTHON_RDEPENDS:mingw32 = "" > > > > RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" > > -- > > 2.43.2 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#196136): https://lists.openembedded.org/g/openembedded-core/message/196136 > > Mute This Topic: https://lists.openembedded.org/mt/104560766/1997914 > > Group Owner: openembedded-core+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > > -=-=-=-=-=-=-=-=-=-=-=- > >
Yes, it was reproducible on my host gentoo after removing distutils with dev-python/setuptools (and for updated glib-2.0-native after removing dev-python/packaging) Fixes sent: https://patchwork.yoctoproject.org/project/oe/patch/20240227113711.834767-1-martin.jansa@gmail.com/ https://patchwork.yoctoproject.org/project/oe/patch/20240227113711.834767-2-martin.jansa@gmail.com/ Cheers, On Tue, Feb 27, 2024 at 12:58 AM Martin Jansa via lists.openembedded.org <martin.jansa=gmail.com@lists.openembedded.org> wrote: > > Thanks Khem, will try to reproduce tomorrow. Maybe these don't use > CODEGEN_PYTHON_RDEPENDS. > > With this patch backported to kirkstone I've seen glib-2.0-native > failing with the same issue as python3native there doesn't include > python3-packaging. > > Maybe these recipes aren't using python3native and were depending on > packaging from host, will debug tomorrow. > > On Tue, Feb 27, 2024 at 12:16 AM Khem Raj <raj.khem@gmail.com> wrote: > > > > I am seeing some build failures which seems to be related to this patch > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/3657/steps/15/logs/stdio > > > > | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/gattlib/0.2+git/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", > > line 22, in <module> > > | import packaging.version > > | ModuleNotFoundError: No module named 'packaging' > > > > > > > > | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/networkmanager-fortisslvpn/1.4.0/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", > > line 22, in <module> > > | import packaging.version > > | ModuleNotFoundError: No module named 'packaging' > > | make: *** [Makefile:2081: src/nm-fortisslvpn-pppd-service-dbus.h] Error 1 > > > > > > On Sun, Feb 25, 2024 at 1:37 AM Martin Jansa <martin.jansa@gmail.com> wrote: > > > > > > * to fix build on hosts with python-3.12, now it fails with: > > > > > > Traceback (most recent call last): > > > File "recipe-sysroot-native/usr/bin/gdbus-codegen", line 53, in <module> > > > from codegen import codegen_main > > > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/codegen_main.py", line 29, in <module> > > > from . import dbustypes > > > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/dbustypes.py", line 22, in <module> > > > from . import utils > > > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", line 22, in <module> > > > import distutils.version > > > ModuleNotFoundError: No module named 'distutils' > > > CMake Error at CMakeLists.txt:90 (message): > > > Error in generating code for connman interface using gdbus-codegen > > > > > > Signed-off-by: Martin Jansa <martin.jansa@gmail.com> > > > --- > > > ...deprecated-distutils-module-to-the-p.patch | 34 +++++++++++++++++++ > > > meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb | 1 + > > > meta/recipes-core/glib-2.0/glib.inc | 4 +-- > > > 3 files changed, 36 insertions(+), 3 deletions(-) > > > create mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > > > > > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > > new file mode 100644 > > > index 0000000000..50368ed22c > > > --- /dev/null > > > +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > > @@ -0,0 +1,34 @@ > > > +From 05f0674c93d94fe6b29c1b707980aac469ddcd72 Mon Sep 17 00:00:00 2001 > > > +From: Jordan Williams <jordan@jwillikers.com> > > > +Date: Fri, 1 Dec 2023 09:53:50 -0600 > > > +Subject: [PATCH] Switch from the deprecated distutils module to the packaging > > > + module > > > + > > > +The distutils module was removed in Python 3.12. > > > + > > > +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6ef967a0f930ce37a8c9b5aff969693b34714291] > > > + > > > +Signed-off-by: Martin Jansa <martin.jansa@gmail.com> > > > +--- > > > + gio/gdbus-2.0/codegen/utils.py | 4 ++-- > > > + 1 file changed, 2 insertions(+), 2 deletions(-) > > > + > > > +diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py > > > +index 0204610..08f1ba9 100644 > > > +--- a/gio/gdbus-2.0/codegen/utils.py > > > ++++ b/gio/gdbus-2.0/codegen/utils.py > > > +@@ -19,7 +19,7 @@ > > > + # > > > + # Author: David Zeuthen <davidz@redhat.com> > > > + > > > +-import distutils.version > > > ++import packaging.version > > > + import os > > > + import sys > > > + > > > +@@ -166,4 +166,4 @@ def version_cmp_key(key): > > > + v = str(key[0]) > > > + else: > > > + v = "0" > > > +- return (distutils.version.LooseVersion(v), key[1]) > > > ++ return (packaging.version.Version(v), key[1]) > > > diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > > > index 42814ba544..6c3e99c641 100644 > > > --- a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > > > +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > > > @@ -14,6 +14,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ > > > file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ > > > file://0001-meson-Run-atomics-test-on-clang-as-well.patch \ > > > file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \ > > > + file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \ > > > file://memory-monitor.patch \ > > > file://native-gtkdoc.patch \ > > > " > > > diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc > > > index 5a57549d85..fac8875d84 100644 > > > --- a/meta/recipes-core/glib-2.0/glib.inc > > > +++ b/meta/recipes-core/glib-2.0/glib.inc > > > @@ -144,9 +144,7 @@ do_install:append:mingw32() { > > > rm -f ${D}${bindir}/gtester-report > > > } > > > > > > -# remove setuptools dependency when usage of distutils is dropped in > > > -# https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/gdbus-2.0/codegen/utils.py > > > -CODEGEN_PYTHON_RDEPENDS = "python3 python3-setuptools python3-xml" > > > +CODEGEN_PYTHON_RDEPENDS = "python3 python3-packaging python3-xml" > > > CODEGEN_PYTHON_RDEPENDS:mingw32 = "" > > > > > > RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" > > > -- > > > 2.43.2 > > > > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#196235): https://lists.openembedded.org/g/openembedded-core/message/196235 > Mute This Topic: https://lists.openembedded.org/mt/104560766/3617156 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [martin.jansa@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
some more failures in meta-openembedded layers ( meta-xfce) https://errors.yoctoproject.org/Errors/Details/754995/ https://errors.yoctoproject.org/Errors/Details/754996/ On Tue, Feb 27, 2024 at 3:39 AM Martin Jansa <martin.jansa@gmail.com> wrote: > > Yes, it was reproducible on my host gentoo after removing distutils > with dev-python/setuptools (and for updated glib-2.0-native after > removing dev-python/packaging) > > Fixes sent: > https://patchwork.yoctoproject.org/project/oe/patch/20240227113711.834767-1-martin.jansa@gmail.com/ > https://patchwork.yoctoproject.org/project/oe/patch/20240227113711.834767-2-martin.jansa@gmail.com/ > > Cheers, > > On Tue, Feb 27, 2024 at 12:58 AM Martin Jansa via > lists.openembedded.org <martin.jansa=gmail.com@lists.openembedded.org> > wrote: > > > > Thanks Khem, will try to reproduce tomorrow. Maybe these don't use > > CODEGEN_PYTHON_RDEPENDS. > > > > With this patch backported to kirkstone I've seen glib-2.0-native > > failing with the same issue as python3native there doesn't include > > python3-packaging. > > > > Maybe these recipes aren't using python3native and were depending on > > packaging from host, will debug tomorrow. > > > > On Tue, Feb 27, 2024 at 12:16 AM Khem Raj <raj.khem@gmail.com> wrote: > > > > > > I am seeing some build failures which seems to be related to this patch > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/3657/steps/15/logs/stdio > > > > > > | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/gattlib/0.2+git/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", > > > line 22, in <module> > > > | import packaging.version > > > | ModuleNotFoundError: No module named 'packaging' > > > > > > > > > > > > | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/networkmanager-fortisslvpn/1.4.0/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", > > > line 22, in <module> > > > | import packaging.version > > > | ModuleNotFoundError: No module named 'packaging' > > > | make: *** [Makefile:2081: src/nm-fortisslvpn-pppd-service-dbus.h] Error 1 > > > > > > > > > On Sun, Feb 25, 2024 at 1:37 AM Martin Jansa <martin.jansa@gmail.com> wrote: > > > > > > > > * to fix build on hosts with python-3.12, now it fails with: > > > > > > > > Traceback (most recent call last): > > > > File "recipe-sysroot-native/usr/bin/gdbus-codegen", line 53, in <module> > > > > from codegen import codegen_main > > > > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/codegen_main.py", line 29, in <module> > > > > from . import dbustypes > > > > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/dbustypes.py", line 22, in <module> > > > > from . import utils > > > > File "recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", line 22, in <module> > > > > import distutils.version > > > > ModuleNotFoundError: No module named 'distutils' > > > > CMake Error at CMakeLists.txt:90 (message): > > > > Error in generating code for connman interface using gdbus-codegen > > > > > > > > Signed-off-by: Martin Jansa <martin.jansa@gmail.com> > > > > --- > > > > ...deprecated-distutils-module-to-the-p.patch | 34 +++++++++++++++++++ > > > > meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb | 1 + > > > > meta/recipes-core/glib-2.0/glib.inc | 4 +-- > > > > 3 files changed, 36 insertions(+), 3 deletions(-) > > > > create mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > > > > > > > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > > > new file mode 100644 > > > > index 0000000000..50368ed22c > > > > --- /dev/null > > > > +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch > > > > @@ -0,0 +1,34 @@ > > > > +From 05f0674c93d94fe6b29c1b707980aac469ddcd72 Mon Sep 17 00:00:00 2001 > > > > +From: Jordan Williams <jordan@jwillikers.com> > > > > +Date: Fri, 1 Dec 2023 09:53:50 -0600 > > > > +Subject: [PATCH] Switch from the deprecated distutils module to the packaging > > > > + module > > > > + > > > > +The distutils module was removed in Python 3.12. > > > > + > > > > +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6ef967a0f930ce37a8c9b5aff969693b34714291] > > > > + > > > > +Signed-off-by: Martin Jansa <martin.jansa@gmail.com> > > > > +--- > > > > + gio/gdbus-2.0/codegen/utils.py | 4 ++-- > > > > + 1 file changed, 2 insertions(+), 2 deletions(-) > > > > + > > > > +diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py > > > > +index 0204610..08f1ba9 100644 > > > > +--- a/gio/gdbus-2.0/codegen/utils.py > > > > ++++ b/gio/gdbus-2.0/codegen/utils.py > > > > +@@ -19,7 +19,7 @@ > > > > + # > > > > + # Author: David Zeuthen <davidz@redhat.com> > > > > + > > > > +-import distutils.version > > > > ++import packaging.version > > > > + import os > > > > + import sys > > > > + > > > > +@@ -166,4 +166,4 @@ def version_cmp_key(key): > > > > + v = str(key[0]) > > > > + else: > > > > + v = "0" > > > > +- return (distutils.version.LooseVersion(v), key[1]) > > > > ++ return (packaging.version.Version(v), key[1]) > > > > diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > > > > index 42814ba544..6c3e99c641 100644 > > > > --- a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > > > > +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb > > > > @@ -14,6 +14,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ > > > > file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ > > > > file://0001-meson-Run-atomics-test-on-clang-as-well.patch \ > > > > file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \ > > > > + file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \ > > > > file://memory-monitor.patch \ > > > > file://native-gtkdoc.patch \ > > > > " > > > > diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc > > > > index 5a57549d85..fac8875d84 100644 > > > > --- a/meta/recipes-core/glib-2.0/glib.inc > > > > +++ b/meta/recipes-core/glib-2.0/glib.inc > > > > @@ -144,9 +144,7 @@ do_install:append:mingw32() { > > > > rm -f ${D}${bindir}/gtester-report > > > > } > > > > > > > > -# remove setuptools dependency when usage of distutils is dropped in > > > > -# https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/gdbus-2.0/codegen/utils.py > > > > -CODEGEN_PYTHON_RDEPENDS = "python3 python3-setuptools python3-xml" > > > > +CODEGEN_PYTHON_RDEPENDS = "python3 python3-packaging python3-xml" > > > > CODEGEN_PYTHON_RDEPENDS:mingw32 = "" > > > > > > > > RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" > > > > -- > > > > 2.43.2 > > > > > > > > > > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#196235): https://lists.openembedded.org/g/openembedded-core/message/196235 > > Mute This Topic: https://lists.openembedded.org/mt/104560766/3617156 > > Group Owner: openembedded-core+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [martin.jansa@gmail.com] > > -=-=-=-=-=-=-=-=-=-=-=- > >
> -----Original Message----- > From: openembedded-core@lists.openembedded.org <openembedded- > core@lists.openembedded.org> On Behalf Of Khem Raj > Sent: den 28 februari 2024 19:30 > To: Martin Jansa <martin.jansa@gmail.com> > Cc: openembedded-core@lists.openembedded.org > Subject: Re: [OE-core] [PATCH] glib-2.0: backport a switch from distutils > to packaging in codegen > > some more failures in meta-openembedded layers ( meta-xfce) > > https://errors.yoctoproject.org/Errors/Details/754995/ > https://errors.yoctoproject.org/Errors/Details/754996/ > > On Tue, Feb 27, 2024 at 3:39 AM Martin Jansa <martin.jansa@gmail.com> > wrote: > > > > Yes, it was reproducible on my host gentoo after removing distutils > > with dev-python/setuptools (and for updated glib-2.0-native after > > removing dev-python/packaging) > > > > Fixes sent: > > https://patchwork.yoctoproject.org/project/oe/patch/20240227113711.834767-1-martin.jansa@gmail.com/ > > https://patchwork.yoctoproject.org/project/oe/patch/20240227113711.834767-2-martin.jansa@gmail.com/ > > > > Cheers, > > > > On Tue, Feb 27, 2024 at 12:58 AM Martin Jansa via > > lists.openembedded.org <martin.jansa=gmail.com@lists.openembedded.org> > > wrote: > > > > > > Thanks Khem, will try to reproduce tomorrow. Maybe these don't use > > > CODEGEN_PYTHON_RDEPENDS. > > > > > > With this patch backported to kirkstone I've seen glib-2.0-native > > > failing with the same issue as python3native there doesn't include > > > python3-packaging. > > > > > > Maybe these recipes aren't using python3native and were depending on > > > packaging from host, will debug tomorrow. > > > > > > On Tue, Feb 27, 2024 at 12:16 AM Khem Raj <raj.khem@gmail.com> wrote: > > > > > > > > I am seeing some build failures which seems to be related to this > > > > patch > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/3657/steps/15/logs/stdio > > > > > > > > | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/gattlib/0.2+git/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", line 22, in <module> > > > > | import packaging.version > > > > | ModuleNotFoundError: No module named 'packaging' > > > > > > > > > > > > > > > > | File "/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/networkmanager-fortisslvpn/1.4.0/recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", line 22, in <module> > > > > | import packaging.version > > > > | ModuleNotFoundError: No module named 'packaging' > > > > | make: *** [Makefile:2081: src/nm-fortisslvpn-pppd-service-dbus.h] Error 1 We have a lot of recipes that use gdbus-codegen and are now facing this problem. To solve it, I have added a gdbus-codegen.bbclass that does: DEPENDS:append = " glib-2.0-native python3-packaging-native" inherit python3native This adds the dependencies needed to use gdbus-codegen, and is similar in spirit to pkgconfig.bbclass, which adds the dependencies needed to use pkg-config. I can send a patch to add it to either meta or meta-oe if it sounds like this is something that would be useful to others. //Peter
On Thu, 7 Mar 2024 at 16:49, Peter Kjellerstedt <peter.kjellerstedt@axis.com> wrote: > We have a lot of recipes that use gdbus-codegen and are now facing this > problem. To solve it, I have added a gdbus-codegen.bbclass that does: > > DEPENDS:append = " glib-2.0-native python3-packaging-native" > > inherit python3native > > This adds the dependencies needed to use gdbus-codegen, and is similar > in spirit to pkgconfig.bbclass, which adds the dependencies needed to use > pkg-config. > > I can send a patch to add it to either meta or meta-oe if it sounds > like this is something that would be useful to others. I wonder if instead of a class, this can be solved by tweaking RDEPENDS of glib recipe (perhaps with a class-native override), so that python3-packaging is pulled in through that, and no special dependencies are needed, other than glib-2.0-native. Alex
> -----Original Message----- > From: openembedded-core@lists.openembedded.org <openembedded- > core@lists.openembedded.org> On Behalf Of Alexander Kanavin > Sent: den 7 mars 2024 17:11 > To: Peter Kjellerstedt <peter.kjellerstedt@axis.com> > Cc: Khem Raj <raj.khem@gmail.com>; Martin Jansa <martin.jansa@gmail.com>; > openembedded-core@lists.openembedded.org > Subject: Re: [OE-core] [PATCH] glib-2.0: backport a switch from distutils > to packaging in codegen > > On Thu, 7 Mar 2024 at 16:49, Peter Kjellerstedt > <peter.kjellerstedt@axis.com> wrote: > > > We have a lot of recipes that use gdbus-codegen and are now facing this > > problem. To solve it, I have added a gdbus-codegen.bbclass that does: > > > > DEPENDS:append = " glib-2.0-native python3-packaging-native" > > > > inherit python3native > > > > This adds the dependencies needed to use gdbus-codegen, and is similar > > in spirit to pkgconfig.bbclass, which adds the dependencies needed to use > > pkg-config. > > > > I can send a patch to add it to either meta or meta-oe if it sounds > > like this is something that would be useful to others. > > I wonder if instead of a class, this can be solved by tweaking > RDEPENDS of glib recipe (perhaps with a class-native override), so > that python3-packaging is pulled in through that, and no special > dependencies are needed, other than glib-2.0-native. > > Alex The problem is the need to inherit python3native. Without it, the host packages are used... //Peter
On Thu, Mar 7, 2024 at 4:48 PM Peter Kjellerstedt <peter.kjellerstedt@axis.com> wrote: > > We have a lot of recipes that use gdbus-codegen and are now facing this > problem. To solve it, I have added a gdbus-codegen.bbclass that does: > > DEPENDS:append = " glib-2.0-native python3-packaging-native" > > inherit python3native > > This adds the dependencies needed to use gdbus-codegen, and is similar > in spirit to pkgconfig.bbclass, which adds the dependencies needed to use > pkg-config. > > I can send a patch to add it to either meta or meta-oe if it sounds > like this is something that would be useful to others. I was wondering about the same while changing this, there is already CODEGEN_PYTHON_RDEPENDS = "python3 python3-packaging python3-xml" CODEGEN_PYTHON_RDEPENDS:mingw32 = "" RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" but that won't apply the python3native inherit, unless moving this to some gdbus-codegen.bbclass as you suggested. I've already fixed all recipes in meta-oe and our internal layers so I don't need this anymore, but agree it would be useful. Regards,
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch new file mode 100644 index 0000000000..50368ed22c --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch @@ -0,0 +1,34 @@ +From 05f0674c93d94fe6b29c1b707980aac469ddcd72 Mon Sep 17 00:00:00 2001 +From: Jordan Williams <jordan@jwillikers.com> +Date: Fri, 1 Dec 2023 09:53:50 -0600 +Subject: [PATCH] Switch from the deprecated distutils module to the packaging + module + +The distutils module was removed in Python 3.12. + +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6ef967a0f930ce37a8c9b5aff969693b34714291] + +Signed-off-by: Martin Jansa <martin.jansa@gmail.com> +--- + gio/gdbus-2.0/codegen/utils.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py +index 0204610..08f1ba9 100644 +--- a/gio/gdbus-2.0/codegen/utils.py ++++ b/gio/gdbus-2.0/codegen/utils.py +@@ -19,7 +19,7 @@ + # + # Author: David Zeuthen <davidz@redhat.com> + +-import distutils.version ++import packaging.version + import os + import sys + +@@ -166,4 +166,4 @@ def version_cmp_key(key): + v = str(key[0]) + else: + v = "0" +- return (distutils.version.LooseVersion(v), key[1]) ++ return (packaging.version.Version(v), key[1]) diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb index 42814ba544..6c3e99c641 100644 --- a/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb @@ -14,6 +14,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ file://0001-meson-Run-atomics-test-on-clang-as-well.patch \ file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \ + file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \ file://memory-monitor.patch \ file://native-gtkdoc.patch \ " diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc index 5a57549d85..fac8875d84 100644 --- a/meta/recipes-core/glib-2.0/glib.inc +++ b/meta/recipes-core/glib-2.0/glib.inc @@ -144,9 +144,7 @@ do_install:append:mingw32() { rm -f ${D}${bindir}/gtester-report } -# remove setuptools dependency when usage of distutils is dropped in -# https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/gdbus-2.0/codegen/utils.py -CODEGEN_PYTHON_RDEPENDS = "python3 python3-setuptools python3-xml" +CODEGEN_PYTHON_RDEPENDS = "python3 python3-packaging python3-xml" CODEGEN_PYTHON_RDEPENDS:mingw32 = "" RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}"
* to fix build on hosts with python-3.12, now it fails with: Traceback (most recent call last): File "recipe-sysroot-native/usr/bin/gdbus-codegen", line 53, in <module> from codegen import codegen_main File "recipe-sysroot-native/usr/share/glib-2.0/codegen/codegen_main.py", line 29, in <module> from . import dbustypes File "recipe-sysroot-native/usr/share/glib-2.0/codegen/dbustypes.py", line 22, in <module> from . import utils File "recipe-sysroot-native/usr/share/glib-2.0/codegen/utils.py", line 22, in <module> import distutils.version ModuleNotFoundError: No module named 'distutils' CMake Error at CMakeLists.txt:90 (message): Error in generating code for connman interface using gdbus-codegen Signed-off-by: Martin Jansa <martin.jansa@gmail.com> --- ...deprecated-distutils-module-to-the-p.patch | 34 +++++++++++++++++++ meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb | 1 + meta/recipes-core/glib-2.0/glib.inc | 4 +-- 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch