[PATCH] python3-dtc: fix packaging by using setuptools


Bruce Ashfield
 

On Wed, Jan 19, 2022 at 8:32 AM Bruce Ashfield via
lists.yoctoproject.org
<bruce.ashfield=gmail.com@...> wrote:

On Wed, Jan 19, 2022 at 7:52 AM Peter Hoyes <Peter.Hoyes@...> wrote:

On 18/01/2022 13:52, Bruce Ashfield via lists.yoctoproject.org wrote:
On Tue, Jan 18, 2022 at 6:18 AM Ross Burton <ross@...> wrote:
On Mon, 17 Jan 2022 at 18:07, Bruce Ashfield <bruce.ashfield@...> wrote:
Your change + my update are now queued:

https://git.yoctoproject.org/meta-virtualization/commit/?h=master-next&id=ed4bd1de0d2e040c303a8497ac0cd961aa8b8a7b

If you have any cycles for test build, that would be great .. since
somehow my own build didn't notice the empty package, so I can't say I
fully trust it.
SETUPTOOLS_SETUP_PATH defaults to S, so you can remove the assignment entirely.
done. And pushed to master.

Bruce

Ross
Hi Bruce,

I am now seeing the following failure on our build when attempting to
use python3-dtc:

usr/lib/python3.10/site-packages/_libfdt.cpython-310-x86_64-linux-gnu.so:
undefined symbol: fdt_overlay_target_offset

I think this is because the updated SRCREV includes 45f3d1a which
requires libfdt to export the symbol above, but poky/dtc is still on an
older revision. Maybe its necessary to roll back the SRCREV patch until
poky updates?
Hmm. That's a last resort, thrashing around the SRCREVs is never a
good idea.

I'll temporarily carry a newer dtc in meta-virt to get things working.
I split the difference.

The PV was wrong on the updated package anyway, so I've pushed a
change that uses SRCPV to show that I'm running ahead of oe-core DTC,
and I've reverted the one commit that introduces the problematic
symbol.

This gets me what I need for lopper, and I can now build and construct
xen-image-mininal for qemuarm64

Bruce



Bruce


Cheers,

Peter

--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II



--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Bruce Ashfield
 

On Wed, Jan 19, 2022 at 7:52 AM Peter Hoyes <Peter.Hoyes@...> wrote:

On 18/01/2022 13:52, Bruce Ashfield via lists.yoctoproject.org wrote:
On Tue, Jan 18, 2022 at 6:18 AM Ross Burton <ross@...> wrote:
On Mon, 17 Jan 2022 at 18:07, Bruce Ashfield <bruce.ashfield@...> wrote:
Your change + my update are now queued:

https://git.yoctoproject.org/meta-virtualization/commit/?h=master-next&id=ed4bd1de0d2e040c303a8497ac0cd961aa8b8a7b

If you have any cycles for test build, that would be great .. since
somehow my own build didn't notice the empty package, so I can't say I
fully trust it.
SETUPTOOLS_SETUP_PATH defaults to S, so you can remove the assignment entirely.
done. And pushed to master.

Bruce

Ross
Hi Bruce,

I am now seeing the following failure on our build when attempting to
use python3-dtc:

usr/lib/python3.10/site-packages/_libfdt.cpython-310-x86_64-linux-gnu.so:
undefined symbol: fdt_overlay_target_offset

I think this is because the updated SRCREV includes 45f3d1a which
requires libfdt to export the symbol above, but poky/dtc is still on an
older revision. Maybe its necessary to roll back the SRCREV patch until
poky updates?
Hmm. That's a last resort, thrashing around the SRCREVs is never a
good idea.

I'll temporarily carry a newer dtc in meta-virt to get things working.

Bruce


Cheers,

Peter

--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Peter Hoyes
 

On 18/01/2022 13:52, Bruce Ashfield via lists.yoctoproject.org wrote:
On Tue, Jan 18, 2022 at 6:18 AM Ross Burton <ross@...> wrote:
On Mon, 17 Jan 2022 at 18:07, Bruce Ashfield <bruce.ashfield@...> wrote:
Your change + my update are now queued:

https://git.yoctoproject.org/meta-virtualization/commit/?h=master-next&id=ed4bd1de0d2e040c303a8497ac0cd961aa8b8a7b

If you have any cycles for test build, that would be great .. since
somehow my own build didn't notice the empty package, so I can't say I
fully trust it.
SETUPTOOLS_SETUP_PATH defaults to S, so you can remove the assignment entirely.
done. And pushed to master.

Bruce

Ross
Hi Bruce,

I am now seeing the following failure on our build when attempting to use python3-dtc:

usr/lib/python3.10/site-packages/_libfdt.cpython-310-x86_64-linux-gnu.so: undefined symbol: fdt_overlay_target_offset

I think this is because the updated SRCREV includes 45f3d1a which requires libfdt to export the symbol above, but poky/dtc is still on an older revision. Maybe its necessary to roll back the SRCREV patch until poky updates?

Cheers,

Peter


Bruce Ashfield
 

On Tue, Jan 18, 2022 at 6:18 AM Ross Burton <ross@...> wrote:

On Mon, 17 Jan 2022 at 18:07, Bruce Ashfield <bruce.ashfield@...> wrote:
Your change + my update are now queued:

https://git.yoctoproject.org/meta-virtualization/commit/?h=master-next&id=ed4bd1de0d2e040c303a8497ac0cd961aa8b8a7b

If you have any cycles for test build, that would be great .. since
somehow my own build didn't notice the empty package, so I can't say I
fully trust it.
SETUPTOOLS_SETUP_PATH defaults to S, so you can remove the assignment entirely.
done. And pushed to master.

Bruce

Ross


--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Ross Burton <ross@...>
 

On Mon, 17 Jan 2022 at 18:07, Bruce Ashfield <bruce.ashfield@...> wrote:
Your change + my update are now queued:

https://git.yoctoproject.org/meta-virtualization/commit/?h=master-next&id=ed4bd1de0d2e040c303a8497ac0cd961aa8b8a7b

If you have any cycles for test build, that would be great .. since
somehow my own build didn't notice the empty package, so I can't say I
fully trust it.
SETUPTOOLS_SETUP_PATH defaults to S, so you can remove the assignment entirely.

Ross


Bruce Ashfield
 

On Mon, Jan 17, 2022 at 8:35 AM Bruce Ashfield via
lists.yoctoproject.org
<bruce.ashfield=gmail.com@...> wrote:

On Mon, Jan 17, 2022 at 7:58 AM Ross Burton <ross@...> wrote:

Inheriting setuptools3-base doesn't actually define any tasks, so commit
1ef6050 to drop distutils3 had the side-effect of not building any code.

Backport a commit from upstream to switch to setuptools, inherit
setuptool3, and change DISTUTILS_SETUP_PATH to SETUPTOOLS_SETUP_PATH.
I have a SRCREV bump ready to go for dtc, so I've applied this and
then the bump on top.
Your change + my update are now queued:

https://git.yoctoproject.org/meta-virtualization/commit/?h=master-next&id=ed4bd1de0d2e040c303a8497ac0cd961aa8b8a7b

If you have any cycles for test build, that would be great .. since
somehow my own build didn't notice the empty package, so I can't say I
fully trust it.

Bruce


Bruce

Signed-off-by: Ross Burton <ross.burton@...>
---
recipes-kernel/dtc/files/setuptools.patch | 34 +++++++++++++++++++++++
recipes-kernel/dtc/python3-dtc_1.6.1.bb | 7 +++--
2 files changed, 38 insertions(+), 3 deletions(-)
create mode 100644 recipes-kernel/dtc/files/setuptools.patch

diff --git a/recipes-kernel/dtc/files/setuptools.patch b/recipes-kernel/dtc/files/setuptools.patch
new file mode 100644
index 0000000..3d37ebd
--- /dev/null
+++ b/recipes-kernel/dtc/files/setuptools.patch
@@ -0,0 +1,34 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@...>
+
+From c691776ddb26acbd3674722caafacaf7b6e3e807 Mon Sep 17 00:00:00 2001
+From: Rob Herring <robh@...>
+Date: Wed, 10 Nov 2021 19:11:32 -0600
+Subject: [PATCH] pylibfdt: Use setuptools instead of distutils
+
+The use of setuptools is favored over distutils. setuptools is needed to
+support building Python 'wheels' and for pip support.
+
+Signed-off-by: Rob Herring <robh@...>
+Message-Id: <20211111011135.2386773-2-robh@...>
+Signed-off-by: David Gibson <david@...>
+---
+ pylibfdt/setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py
+index ef40f15..f065a59 100755
+--- a/pylibfdt/setup.py
++++ b/pylibfdt/setup.py
+@@ -10,7 +10,7 @@ Copyright (C) 2017 Google, Inc.
+ Written by Simon Glass <sjg@...>
+ """
+
+-from distutils.core import setup, Extension
++from setuptools import setup, Extension
+ import os
+ import re
+ import sys
+--
+2.25.1
+
diff --git a/recipes-kernel/dtc/python3-dtc_1.6.1.bb b/recipes-kernel/dtc/python3-dtc_1.6.1.bb
index e9b8499..6e02db6 100644
--- a/recipes-kernel/dtc/python3-dtc_1.6.1.bb
+++ b/recipes-kernel/dtc/python3-dtc_1.6.1.bb
@@ -7,6 +7,7 @@ LICENSE = "GPLv2 | BSD-2-Clause"
DEPENDS = "flex-native bison-native swig-native libyaml dtc"

SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \
+ file://setuptools.patch \
file://ssize.patch"

UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
@@ -17,13 +18,13 @@ SRCREV = "ecaeb97fec013973360e94888a7de645f084345c"

S = "${WORKDIR}/git"

-inherit setuptools3-base pkgconfig
+inherit setuptools3 pkgconfig

-DISTUTILS_SETUP_PATH = "${S}/pylibfdt"
+SETUPTOOLS_SETUP_PATH = "${S}/pylibfdt"

do_configure:prepend() {
oe_runmake -C "${S}" version_gen.h
- mv "${S}/version_gen.h" "${DISTUTILS_SETUP_PATH}/"
+ mv "${S}/version_gen.h" "${SETUPTOOLS_SETUP_PATH}/"
}

BBCLASSEXTEND = "native nativesdk"
--
2.25.1




--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II



--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Bruce Ashfield
 

On Mon, Jan 17, 2022 at 7:58 AM Ross Burton <ross@...> wrote:

Inheriting setuptools3-base doesn't actually define any tasks, so commit
1ef6050 to drop distutils3 had the side-effect of not building any code.

Backport a commit from upstream to switch to setuptools, inherit
setuptool3, and change DISTUTILS_SETUP_PATH to SETUPTOOLS_SETUP_PATH.
I have a SRCREV bump ready to go for dtc, so I've applied this and
then the bump on top.

Bruce

Signed-off-by: Ross Burton <ross.burton@...>
---
recipes-kernel/dtc/files/setuptools.patch | 34 +++++++++++++++++++++++
recipes-kernel/dtc/python3-dtc_1.6.1.bb | 7 +++--
2 files changed, 38 insertions(+), 3 deletions(-)
create mode 100644 recipes-kernel/dtc/files/setuptools.patch

diff --git a/recipes-kernel/dtc/files/setuptools.patch b/recipes-kernel/dtc/files/setuptools.patch
new file mode 100644
index 0000000..3d37ebd
--- /dev/null
+++ b/recipes-kernel/dtc/files/setuptools.patch
@@ -0,0 +1,34 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@...>
+
+From c691776ddb26acbd3674722caafacaf7b6e3e807 Mon Sep 17 00:00:00 2001
+From: Rob Herring <robh@...>
+Date: Wed, 10 Nov 2021 19:11:32 -0600
+Subject: [PATCH] pylibfdt: Use setuptools instead of distutils
+
+The use of setuptools is favored over distutils. setuptools is needed to
+support building Python 'wheels' and for pip support.
+
+Signed-off-by: Rob Herring <robh@...>
+Message-Id: <20211111011135.2386773-2-robh@...>
+Signed-off-by: David Gibson <david@...>
+---
+ pylibfdt/setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py
+index ef40f15..f065a59 100755
+--- a/pylibfdt/setup.py
++++ b/pylibfdt/setup.py
+@@ -10,7 +10,7 @@ Copyright (C) 2017 Google, Inc.
+ Written by Simon Glass <sjg@...>
+ """
+
+-from distutils.core import setup, Extension
++from setuptools import setup, Extension
+ import os
+ import re
+ import sys
+--
+2.25.1
+
diff --git a/recipes-kernel/dtc/python3-dtc_1.6.1.bb b/recipes-kernel/dtc/python3-dtc_1.6.1.bb
index e9b8499..6e02db6 100644
--- a/recipes-kernel/dtc/python3-dtc_1.6.1.bb
+++ b/recipes-kernel/dtc/python3-dtc_1.6.1.bb
@@ -7,6 +7,7 @@ LICENSE = "GPLv2 | BSD-2-Clause"
DEPENDS = "flex-native bison-native swig-native libyaml dtc"

SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \
+ file://setuptools.patch \
file://ssize.patch"

UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
@@ -17,13 +18,13 @@ SRCREV = "ecaeb97fec013973360e94888a7de645f084345c"

S = "${WORKDIR}/git"

-inherit setuptools3-base pkgconfig
+inherit setuptools3 pkgconfig

-DISTUTILS_SETUP_PATH = "${S}/pylibfdt"
+SETUPTOOLS_SETUP_PATH = "${S}/pylibfdt"

do_configure:prepend() {
oe_runmake -C "${S}" version_gen.h
- mv "${S}/version_gen.h" "${DISTUTILS_SETUP_PATH}/"
+ mv "${S}/version_gen.h" "${SETUPTOOLS_SETUP_PATH}/"
}

BBCLASSEXTEND = "native nativesdk"
--
2.25.1




--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Ross Burton <ross@...>
 

Inheriting setuptools3-base doesn't actually define any tasks, so commit
1ef6050 to drop distutils3 had the side-effect of not building any code.

Backport a commit from upstream to switch to setuptools, inherit
setuptool3, and change DISTUTILS_SETUP_PATH to SETUPTOOLS_SETUP_PATH.

Signed-off-by: Ross Burton <ross.burton@...>
---
recipes-kernel/dtc/files/setuptools.patch | 34 +++++++++++++++++++++++
recipes-kernel/dtc/python3-dtc_1.6.1.bb | 7 +++--
2 files changed, 38 insertions(+), 3 deletions(-)
create mode 100644 recipes-kernel/dtc/files/setuptools.patch

diff --git a/recipes-kernel/dtc/files/setuptools.patch b/recipes-kernel/d=
tc/files/setuptools.patch
new file mode 100644
index 0000000..3d37ebd
--- /dev/null
+++ b/recipes-kernel/dtc/files/setuptools.patch
@@ -0,0 +1,34 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@...>
+
+From c691776ddb26acbd3674722caafacaf7b6e3e807 Mon Sep 17 00:00:00 2001
+From: Rob Herring <robh@...>
+Date: Wed, 10 Nov 2021 19:11:32 -0600
+Subject: [PATCH] pylibfdt: Use setuptools instead of distutils
+
+The use of setuptools is favored over distutils. setuptools is needed to
+support building Python 'wheels' and for pip support.
+
+Signed-off-by: Rob Herring <robh@...>
+Message-Id: <20211111011135.2386773-2-robh@...>
+Signed-off-by: David Gibson <david@...>
+---
+ pylibfdt/setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py
+index ef40f15..f065a59 100755
+--- a/pylibfdt/setup.py
++++ b/pylibfdt/setup.py
+@@ -10,7 +10,7 @@ Copyright (C) 2017 Google, Inc.
+ Written by Simon Glass <sjg@...>
+ """
+=20
+-from distutils.core import setup, Extension
++from setuptools import setup, Extension
+ import os
+ import re
+ import sys
+--=20
+2.25.1
+
diff --git a/recipes-kernel/dtc/python3-dtc_1.6.1.bb b/recipes-kernel/dtc=
/python3-dtc_1.6.1.bb
index e9b8499..6e02db6 100644
--- a/recipes-kernel/dtc/python3-dtc_1.6.1.bb
+++ b/recipes-kernel/dtc/python3-dtc_1.6.1.bb
@@ -7,6 +7,7 @@ LICENSE =3D "GPLv2 | BSD-2-Clause"
DEPENDS =3D "flex-native bison-native swig-native libyaml dtc"
=20
SRC_URI =3D "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=3Dmas=
ter \
+ file://setuptools.patch \
file://ssize.patch"
=20
UPSTREAM_CHECK_GITTAGREGEX =3D "v(?P<pver>\d+(\.\d+)+)"
@@ -17,13 +18,13 @@ SRCREV =3D "ecaeb97fec013973360e94888a7de645f084345c"
=20
S =3D "${WORKDIR}/git"
=20
-inherit setuptools3-base pkgconfig
+inherit setuptools3 pkgconfig
=20
-DISTUTILS_SETUP_PATH =3D "${S}/pylibfdt"
+SETUPTOOLS_SETUP_PATH =3D "${S}/pylibfdt"
=20
do_configure:prepend() {
oe_runmake -C "${S}" version_gen.h
- mv "${S}/version_gen.h" "${DISTUTILS_SETUP_PATH}/"
+ mv "${S}/version_gen.h" "${SETUPTOOLS_SETUP_PATH}/"
}
=20
BBCLASSEXTEND =3D "native nativesdk"
--=20
2.25.1