* [Buildroot] [PATCH v2,1/1] package/nut: fix python build
@ 2023-11-05 16:58 Fabrice Fontaine
2023-11-06 21:42 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Fabrice Fontaine @ 2023-11-05 16:58 UTC (permalink / raw)
To: buildroot; +Cc: Bernd Kuhls, Yann E . MORIN, Fabrice Fontaine
Fix the following build failure raised since bump to version 2.8.1 in
commit 9c874557aa863d5282ca38b28a379730297496c8 and
https://github.com/networkupstools/nut/commit/cada4bc8c4051fb961ae7c21d0bb329f79cc330c
and
https://github.com/networkupstools/nut/commit/902ce1327e912dfb6198900204b12e6804d1224b:
checking python3 site-packages location... /home/thomas/autobuild/instance-3/output-1/host/lib/python3.11/site-packages
[...]
/usr/bin/install -c -m 644 module/PyNUT.py '/home/thomas/autobuild/instance-3/output-1/host/powerpc64le-buildroot-linux-gnu/sysroot/home/thomas/autobuild/instance-3/output-1/host/lib/python3.11/site-packages'
[...]
nut: installs files in /home/thomas/autobuild/instance-3/output-1/host/powerpc64le-buildroot-linux-gnu/sysroot//home/thomas/autobuild/instance-3/output-1
Fixes:
- http://autobuild.buildroot.org/results/0b2d0e292a9872f7ab7c2eeccbb7bb12e4afe36c
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2 (after review of Thomas Petazzoni):
- Add Upstream link to patch
...hon.m4-allow-overriding-of-PYTHON-2-.patch | 106 ++++++++++++++++++
package/nut/nut.mk | 15 +++
2 files changed, 121 insertions(+)
create mode 100644 package/nut/0002-m4-nut_check_python.m4-allow-overriding-of-PYTHON-2-.patch
diff --git a/package/nut/0002-m4-nut_check_python.m4-allow-overriding-of-PYTHON-2-.patch b/package/nut/0002-m4-nut_check_python.m4-allow-overriding-of-PYTHON-2-.patch
new file mode 100644
index 0000000000..d2571cf438
--- /dev/null
+++ b/package/nut/0002-m4-nut_check_python.m4-allow-overriding-of-PYTHON-2-.patch
@@ -0,0 +1,106 @@
+From 511ee899ee687216fa8fcf2231a60941b9e4cf81 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Fri, 3 Nov 2023 14:34:54 +0100
+Subject: [PATCH] m4/nut_check_python.m4: allow overriding of
+ PYTHON{2,3}_SITE_PACKAGES
+
+Allow the end-user to override PYTHON{2,3}_SITE_PACKAGES as this can be
+useful when cross-compiling
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Upstream: https://github.com/networkupstools/nut/pull/2147
+---
+ m4/nut_check_python.m4 | 60 +++++++++++++++++++++---------------------
+ 1 file changed, 30 insertions(+), 30 deletions(-)
+
+diff --git a/m4/nut_check_python.m4 b/m4/nut_check_python.m4
+index 995a3e7c..7f29558e 100644
+--- a/m4/nut_check_python.m4
++++ b/m4/nut_check_python.m4
+@@ -116,17 +116,17 @@ AC_DEFUN([NUT_CHECK_PYTHON],
+ AM_CONDITIONAL([HAVE_PYTHON], [test -n "${PYTHON}" && test "${PYTHON}" != "no"])
+ AS_IF([test -n "${PYTHON}" && test "${PYTHON}" != "no"], [
+ export PYTHON
+- AC_MSG_CHECKING([python site-packages location])
+- PYTHON_SITE_PACKAGES="`${PYTHON} -c 'import site; print(site.getsitepackages().pop(0))'`"
+- AS_CASE(["$PYTHON_SITE_PACKAGES"],
+- [*:*], [
+- dnl Note: on Windows MSYS2 this embeds "C:/msys64/mingw..." into the string [nut#1584]
+- PYTHON_SITE_PACKAGES="`cd "$PYTHON_SITE_PACKAGES" && pwd`"
+- ]
+- )
+- AC_MSG_RESULT([${PYTHON_SITE_PACKAGES}])
++ AC_CACHE_CHECK([python site-packages location], [nut_cv_PYTHON_SITE_PACKAGES], [
++ nut_cv_PYTHON_SITE_PACKAGES="`${PYTHON} -c 'import site; print(site.getsitepackages().pop(0))'`"
++ AS_CASE(["$nut_cv_PYTHON_SITE_PACKAGES"],
++ [*:*], [
++ dnl Note: on Windows MSYS2 this embeds "C:/msys64/mingw..." into the string [nut#1584]
++ nut_cv_PYTHON_SITE_PACKAGES="`cd "$nut_cv_PYTHON_SITE_PACKAGES" && pwd`"
++ ]
++ )
++ ])
+ ])
+- AC_SUBST([PYTHON_SITE_PACKAGES], [${PYTHON_SITE_PACKAGES}])
++ AC_SUBST([PYTHON_SITE_PACKAGES], [${nut_cv_PYTHON_SITE_PACKAGES}])
+ AM_CONDITIONAL([HAVE_PYTHON_SITE_PACKAGES], [test x"${PYTHON_SITE_PACKAGES}" != "x"])
+ ])
+ ])
+@@ -228,17 +228,17 @@ AC_DEFUN([NUT_CHECK_PYTHON2],
+ AM_CONDITIONAL([HAVE_PYTHON2], [test -n "${PYTHON2}" && test "${PYTHON2}" != "no"])
+ AS_IF([test -n "${PYTHON2}" && test "${PYTHON2}" != "no"], [
+ export PYTHON2
+- AC_MSG_CHECKING([python2 site-packages location])
+- PYTHON2_SITE_PACKAGES="`${PYTHON2} -c 'import site; print(site.getsitepackages().pop(0))'`"
+- AS_CASE(["$PYTHON2_SITE_PACKAGES"],
+- [*:*], [
+- dnl Note: on Windows MSYS2 this embeds "C:/msys64/mingw..." into the string [nut#1584]
+- PYTHON2_SITE_PACKAGES="`cd "$PYTHON2_SITE_PACKAGES" && pwd`"
+- ]
+- )
+- AC_MSG_RESULT([${PYTHON2_SITE_PACKAGES}])
++ AC_CACHE_CHECK([python2 site-packages location], [nut_cv_PYTHON2_SITE_PACKAGES], [
++ nut_cv_PYTHON2_SITE_PACKAGES="`${PYTHON2} -c 'import site; print(site.getsitepackages().pop(0))'`"
++ AS_CASE(["$nut_cv_PYTHON2_SITE_PACKAGES"],
++ [*:*], [
++ dnl Note: on Windows MSYS2 this embeds "C:/msys64/mingw..." into the string [nut#1584]
++ nut_cv_PYTHON2_SITE_PACKAGES="`cd "$nut_cv_PYTHON2_SITE_PACKAGES" && pwd`"
++ ]
++ )
++ ])
+ ])
+- AC_SUBST([PYTHON2_SITE_PACKAGES], [${PYTHON2_SITE_PACKAGES}])
++ AC_SUBST([PYTHON2_SITE_PACKAGES], [${nut_cv_PYTHON2_SITE_PACKAGES}])
+ AM_CONDITIONAL([HAVE_PYTHON2_SITE_PACKAGES], [test x"${PYTHON2_SITE_PACKAGES}" != "x"])
+ ])
+ ])
+@@ -340,17 +340,17 @@ AC_DEFUN([NUT_CHECK_PYTHON3],
+ AM_CONDITIONAL([HAVE_PYTHON3], [test -n "${PYTHON3}" && test "${PYTHON3}" != "no"])
+ AS_IF([test -n "${PYTHON3}" && test "${PYTHON3}" != "no"], [
+ export PYTHON3
+- AC_MSG_CHECKING([python3 site-packages location])
+- PYTHON3_SITE_PACKAGES="`${PYTHON3} -c 'import site; print(site.getsitepackages().pop(0))'`"
+- AS_CASE(["$PYTHON3_SITE_PACKAGES"],
+- [*:*], [
+- dnl Note: on Windows MSYS2 this embeds "C:/msys64/mingw..." into the string [nut#1584]
+- PYTHON3_SITE_PACKAGES="`cd "$PYTHON3_SITE_PACKAGES" && pwd`"
+- ]
+- )
+- AC_MSG_RESULT([${PYTHON3_SITE_PACKAGES}])
++ AC_CACHE_CHECK([python3 site-packages location], [nut_cv_PYTHON3_SITE_PACKAGES], [
++ nut_cv_PYTHON3_SITE_PACKAGES="`${PYTHON3} -c 'import site; print(site.getsitepackages().pop(0))'`"
++ AS_CASE(["$nut_cv_PYTHON3_SITE_PACKAGES"],
++ [*:*], [
++ dnl Note: on Windows MSYS2 this embeds "C:/msys64/mingw..." into the string [nut#1584]
++ nut_cv_PYTHON3_SITE_PACKAGES="`cd "$nut_cv_PYTHON3_SITE_PACKAGES" && pwd`"
++ ]
++ )
++ ])
+ ])
+- AC_SUBST([PYTHON3_SITE_PACKAGES], [${PYTHON3_SITE_PACKAGES}])
++ AC_SUBST([PYTHON3_SITE_PACKAGES], [${nut_cv_PYTHON3_SITE_PACKAGES}])
+ AM_CONDITIONAL([HAVE_PYTHON3_SITE_PACKAGES], [test x"${PYTHON3_SITE_PACKAGES}" != "x"])
+ ])
+ ])
+--
+2.42.0
+
diff --git a/package/nut/nut.mk b/package/nut/nut.mk
index ba71319f90..371c783783 100644
--- a/package/nut/nut.mk
+++ b/package/nut/nut.mk
@@ -12,6 +12,7 @@ NUT_SELINUX_MODULES = apache nut
NUT_INSTALL_STAGING = YES
NUT_DEPENDENCIES = host-pkgconf
# We're patching m4/nut_compiler_family.m4
+# We're patching m4/nut_check_python.m4
NUT_AUTORECONF = YES
# Put the PID files in a read-write place (/var/run is a tmpfs)
@@ -20,6 +21,8 @@ NUT_CONF_OPTS = \
--with-altpidpath=/var/run/upsd \
--with-dev \
--without-doc \
+ --without-python \
+ --without-python2 \
--with-user=nut \
--with-group=nut
@@ -107,4 +110,16 @@ else
NUT_CONF_OPTS += --without-ssl
endif
+ifeq ($(BR2_PACKAGE_PYTHON3),y)
+NUT_DEPENDENCIES += python3
+NUT_CONF_ENV += nut_cv_PYTHON3_SITE_PACKAGES=/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages
+NUT_CONF_OPTS += \
+ --with-pynut \
+ --with-python3
+else
+NUT_CONF_OPTS += \
+ --without-pynut \
+ --without-python3
+endif
+
$(eval $(autotools-package))
--
2.42.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Buildroot] [PATCH v2,1/1] package/nut: fix python build
2023-11-05 16:58 [Buildroot] [PATCH v2,1/1] package/nut: fix python build Fabrice Fontaine
@ 2023-11-06 21:42 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-11-06 21:42 UTC (permalink / raw)
To: Fabrice Fontaine; +Cc: Bernd Kuhls, Yann E . MORIN, buildroot
On Sun, 5 Nov 2023 17:58:22 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
> Fix the following build failure raised since bump to version 2.8.1 in
> commit 9c874557aa863d5282ca38b28a379730297496c8 and
> https://github.com/networkupstools/nut/commit/cada4bc8c4051fb961ae7c21d0bb329f79cc330c
> and
> https://github.com/networkupstools/nut/commit/902ce1327e912dfb6198900204b12e6804d1224b:
>
> checking python3 site-packages location... /home/thomas/autobuild/instance-3/output-1/host/lib/python3.11/site-packages
> [...]
> /usr/bin/install -c -m 644 module/PyNUT.py '/home/thomas/autobuild/instance-3/output-1/host/powerpc64le-buildroot-linux-gnu/sysroot/home/thomas/autobuild/instance-3/output-1/host/lib/python3.11/site-packages'
> [...]
> nut: installs files in /home/thomas/autobuild/instance-3/output-1/host/powerpc64le-buildroot-linux-gnu/sysroot//home/thomas/autobuild/instance-3/output-1
>
> Fixes:
> - http://autobuild.buildroot.org/results/0b2d0e292a9872f7ab7c2eeccbb7bb12e4afe36c
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> Changes v1 -> v2 (after review of Thomas Petazzoni):
> - Add Upstream link to patch
I have applied because your patch was accepted upstream. However, the
issue could perhaps have been fixed without a patch, by doing something
like this:
NUT_CONF_ENV += _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)"
This normally allows host-python to use the sysconfigdata from the
target python, and therefore return the correct values when
cross-compiling Python modules.
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-11-06 21:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-05 16:58 [Buildroot] [PATCH v2,1/1] package/nut: fix python build Fabrice Fontaine
2023-11-06 21:42 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.