Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] [RFC] create build_helper for python3 cross-building
@ 2022-08-25 19:30 classabbyamp
  2022-08-25 19:46 ` [PR REVIEW] " ahesford
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: classabbyamp @ 2022-08-25 19:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1484 bytes --]

There is a new pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages xbps-src/py3-build-helper
https://github.com/void-linux/void-packages/pull/38911

[RFC] create build_helper for python3 cross-building
- common/build-helper/python3.sh: add python3 helper
- common/{,environment}/build_style/python3.sh: use python3 build_helper
- brltty: use python3 build_helper, clean up
- i2c-tools: use python3 build_helper
- libpwquality: use python3 build_helper
- tlsh: use python3 build_helper
- wxPython4: use python3 build_helper

My hope with this is to help with cross-building non-python packages that have python3 bindings/modules, but it can be used similar to the `rust` `build_helper` for various common constants, if needed.

One thing I'm not sure on is the usage with the `python3-module` `build_style`. It would cut down on the need to keep those env var definitions up-to-date in multiple places, but I'm open to opinions about it.

There's probably more packages that are marked `nocross`/`broken` because of python3 cross stuff that I didn't find.

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**
    - packages changed seem to build the same thing as before, but weren't extensively tested

A patch file from https://github.com/void-linux/void-packages/pull/38911.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-xbps-src/py3-build-helper-38911.patch --]
[-- Type: text/x-diff, Size: 14538 bytes --]

From 61644bf1b2cec45a79945964ad14ef3f13a6c394 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:18:02 -0400
Subject: [PATCH 1/7] common/build-helper/python3.sh: add python3 helper

---
 common/build-helper/python3.sh | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
 create mode 100644 common/build-helper/python3.sh

diff --git a/common/build-helper/python3.sh b/common/build-helper/python3.sh
new file mode 100644
index 000000000000..3e16755ea483
--- /dev/null
+++ b/common/build-helper/python3.sh
@@ -0,0 +1,14 @@
+# fix building non-pure-python modules on cross
+if [ -n "$CROSS_BUILD" ]; then
+	export PYPREFIX="$XBPS_CROSS_BASE"
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
+	export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
+	export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
+	export LDSHARED="${CC} -shared $LDFLAGS"
+	export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}"
+	for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
+		f=${f##*/}
+		_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
+	done
+	export _PYTHON_SYSCONFIGDATA_NAME
+fi

From 10c64574ee638a51aeb9157818ec413a146822b7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:19:03 -0400
Subject: [PATCH 2/7] common/{,environment}/build_style/python3.sh: use python3
 build_helper

---
 common/build-style/python3-module.sh          | 39 +------------------
 .../environment/build-style/python3-module.sh |  1 +
 2 files changed, 3 insertions(+), 37 deletions(-)

diff --git a/common/build-style/python3-module.sh b/common/build-style/python3-module.sh
index a0a694ee4a97..b76d89c8b502 100644
--- a/common/build-style/python3-module.sh
+++ b/common/build-style/python3-module.sh
@@ -3,24 +3,7 @@
 #
 
 do_build() {
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args}
-	else
-		python3 setup.py build ${make_build_args}
-	fi
+	python3 setup.py build ${make_build_args}
 }
 
 do_check() {
@@ -47,23 +30,5 @@ do_check() {
 }
 
 do_install() {
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py \
-				install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	else
-		python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	fi
+	python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
 }
diff --git a/common/environment/build-style/python3-module.sh b/common/environment/build-style/python3-module.sh
index 56471fe88bc0..638f6be9373a 100644
--- a/common/environment/build-style/python3-module.sh
+++ b/common/environment/build-style/python3-module.sh
@@ -1,2 +1,3 @@
 lib32disabled=yes
 makedepends+=" python3"
+build_helper+=" python3"

From fd23072d7cd4767dc4f20a738b24797a0f3d7224 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:10 -0400
Subject: [PATCH 3/7] brltty: use python3 build_helper, clean up

---
 srcpkgs/brltty/template | 33 ++++++++++-----------------------
 1 file changed, 10 insertions(+), 23 deletions(-)

diff --git a/srcpkgs/brltty/template b/srcpkgs/brltty/template
index 08707f8dc86c..cf7c198b5253 100644
--- a/srcpkgs/brltty/template
+++ b/srcpkgs/brltty/template
@@ -1,8 +1,9 @@
 # Template file for 'brltty'
 pkgname=brltty
 version=6.4
-revision=5
+revision=6
 build_style=gnu-configure
+build_helper=python3
 configure_args="--enable-gpm --with-screen-driver=lx,sc
  --with-tables-directory=/usr/share/brltty PYTHON=/usr/bin/python3"
 hostmakedepends="pkg-config python3-Cython"
@@ -10,8 +11,8 @@ makedepends="ncurses-devel alsa-lib-devel gpm-devel icu-devel python3-devel libb
 short_desc="Braille display driver for Linux/Unix"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later"
-homepage="http://mielke.cc/brltty/"
-distfiles="http://mielke.cc/brltty/archive/brltty-${version}.tar.xz"
+homepage="https://brltty.app"
+distfiles="https://brltty.app/archive/brltty-${version}.tar.xz"
 checksum=bc7573b0d0ab865c36607945b64c209312405571788f3b409397726f6143eaa6
 python_version=3
 
@@ -25,8 +26,8 @@ esac
 
 pre_configure() {
 	case "$XBPS_TARGET_MACHINE" in
-	*-musl) # There is no ldconfig in musl libc
-		sed -e "s;/sbin/ldconfig -n;echo;" -i configure
+		*-musl) # There is no ldconfig in musl libc
+			sed -e "s;/sbin/ldconfig -n;echo;" -i configure ;;
 	esac
 	export PYTHON_LIBS="-L${XBPS_CROSS_BASE}/usr/lib -lpython${py3_ver}${py3_abiver}"
 	export PYTHON_CPPFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc}"
@@ -34,31 +35,17 @@ pre_configure() {
 
 post_configure() {
 	case "$XBPS_TARGET_MACHINE" in
-	arm*-musl) # Fix erroneously detected "#define HAVE_SYS_IO_H 1"
-		sed -i config.h -e"s;#define HAVE_SYS_IO_H 1;#undef HAVE_SYS_IO_H;"
+		arm*-musl) # Fix erroneously detected "#define HAVE_SYS_IO_H 1"
+			sed -i config.h -e"s;#define HAVE_SYS_IO_H 1;#undef HAVE_SYS_IO_H;" ;;
 	esac
 }
 
-pre_build() {
-	if [ "$CROSS_BUILD" ]; then
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			export _PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		export PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}
-	fi
-}
-
-pre_install() {
-	pre_build
-}
-
 do_install() {
 	make INSTALL_ROOT=${DESTDIR} install
-	vsv $pkgname
+	vsv brltty
 	vsconf Documents/brltty.conf
 	vdoc Documents/ChangeLog
-	vcopy Documents/Manual-BRLTTY usr/share/doc/${pkgname}
+	vcopy Documents/Manual-BRLTTY usr/share/doc/brltty
 }
 
 brltty-devel_package() {

From 5fde1615b98e75fab0b96eb6be834be9a558eec2 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:12 -0400
Subject: [PATCH 4/7] i2c-tools: use python3 build_helper

---
 srcpkgs/i2c-tools/template | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/i2c-tools/template b/srcpkgs/i2c-tools/template
index ec522fd6f71b..1f0b2bcd1f6b 100644
--- a/srcpkgs/i2c-tools/template
+++ b/srcpkgs/i2c-tools/template
@@ -1,8 +1,9 @@
 # Template file for 'i2c-tools'
 pkgname=i2c-tools
 version=4.3
-revision=2
+revision=3
 build_style=gnu-makefile
+build_helper=python3
 make_build_args="EXTRA=py-smbus"
 make_install_args="sbindir=/usr/bin EXTRA=py-smbus"
 hostmakedepends="python3 python3-setuptools"
@@ -16,21 +17,6 @@ distfiles="https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/i2c-tool
 checksum=1f899e43603184fac32f34d72498fc737952dbc9c97a8dd9467fadfdf4600cf9
 system_groups="i2c"
 
-
-if [ -n "$CROSS_BUILD" ]; then
-	export PYPREFIX="$XBPS_CROSS_BASE"
-	export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-	export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-	export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-	export LDSHARED="${CC} -shared $LDFLAGS"
-	export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}"
-	for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-	done
-	export _PYTHON_SYSCONFIGDATA_NAME
-fi
-
 post_install() {
 	vinstall "${FILESDIR}/45-i2c-tools.rules" 644 usr/lib/udev/rules.d
 }

From 023a4fee139320c872ea591727f938a06b69a5cf Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:13 -0400
Subject: [PATCH 5/7] libpwquality: use python3 build_helper

---
 srcpkgs/libpwquality/template | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/srcpkgs/libpwquality/template b/srcpkgs/libpwquality/template
index 9d72a5539baa..e89a8a0c5cf7 100644
--- a/srcpkgs/libpwquality/template
+++ b/srcpkgs/libpwquality/template
@@ -1,10 +1,11 @@
 # Template file for 'libpwquality'
 pkgname=libpwquality
 version=1.4.2
-revision=5
+revision=6
 build_style=gnu-configure
+build_helper=python3
 configure_args="--disable-static --enable-pam --with-securedir=/usr/lib/security"
-hostmakedepends="libtool automake gettext-devel python3-devel"
+hostmakedepends="libtool automake gettext-devel python3"
 makedepends="cracklib-devel pam-devel python3-devel"
 depends="cracklib"
 conf_files="/etc/security/pwquality.conf"
@@ -13,29 +14,13 @@ maintainer="bra1nwave <bra1nwave@protonmail.com>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/libpwquality/libpwquality"
 changelog="https://raw.githubusercontent.com/libpwquality/libpwquality/master/NEWS"
-distfiles="${homepage}/releases/download/libpwquality-${version}/libpwquality-${version}.tar.bz2"
+distfiles="https://github.com/libpwquality/libpwquality/releases/download/libpwquality-${version}/libpwquality-${version}.tar.bz2"
 checksum=5263e09ee62269c092f790ac159112aed3e66826a795e3afec85fdeac4281c8e
 
-CFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc}"
-
 pre_configure() {
-	vsed -i python/Makefile.am -e 's|CFLAGS=.*|LDSHARED="${CC} -pthread -shared" &|g'
 	autoreconf -fi
 }
 
-pre_build() {
-	if [ "$CROSS_BUILD" ]; then
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			export _PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		export PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}
-	fi
-}
-pre_install() {
-	pre_build
-}
-
 libpwquality-devel_package() {
 	depends="cracklib-devel ${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - development files"

From ce23827589df954d7310e83fbc6425355c7eeb70 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:13 -0400
Subject: [PATCH 6/7] tlsh: use python3 build_helper

---
 srcpkgs/tlsh/template | 42 ++++--------------------------------------
 1 file changed, 4 insertions(+), 38 deletions(-)

diff --git a/srcpkgs/tlsh/template b/srcpkgs/tlsh/template
index c4625ea2c74d..3801747eb959 100644
--- a/srcpkgs/tlsh/template
+++ b/srcpkgs/tlsh/template
@@ -1,8 +1,9 @@
 # Template file for 'tlsh'
 pkgname=tlsh
 version=3.19.1
-revision=3
+revision=4
 build_style=cmake
+build_helper=python3
 hostmakedepends="python3"
 makedepends="python3-devel"
 short_desc="Fuzzy matching library"
@@ -19,24 +20,7 @@ pre_configure() {
 
 post_build() {
 	cd py_ext
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args}
-	else
-		python3 setup.py build ${make_build_args}
-	fi
+	python3 setup.py build ${make_build_args}
 }
 
 
@@ -47,25 +31,7 @@ pre_check() {
 post_install() {
 	vlicense LICENSE
 	cd py_ext
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py \
-				install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	else
-		python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	fi
+	python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
 }
 
 tlsh-devel_package() {

From db5922cf1e34a31d45fa2c620c6963d8f578b119 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:14 -0400
Subject: [PATCH 7/7] wxPython4: use python3 build_helper

---
 srcpkgs/wxPython4/template | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/srcpkgs/wxPython4/template b/srcpkgs/wxPython4/template
index 554174105a36..6e2b7f10269f 100644
--- a/srcpkgs/wxPython4/template
+++ b/srcpkgs/wxPython4/template
@@ -1,9 +1,10 @@
 # Template file for 'wxPython4'
 pkgname=wxPython4
 version=4.0.7
-revision=4
+revision=5
 wrksrc="wxPython-${version}"
 build_style=python3-module
+build_helper=python3
 make_build_args="--skip-build"
 make_install_args="--skip-build"
 hostmakedepends="pkg-config python3-setuptools python3-pathlib2"
@@ -23,18 +24,7 @@ fi
 
 pre_build() {
 	chmod -R go+rX $wrksrc
-	if [ "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHON_CONFIG="${XBPS_CROSS_BASE}/usr/bin/python3-config" \
-			LDFLAGS="$LDFLAGS" python3 build.py build_py --use_syswx
-	else
-		python3 build.py build_py --use_syswx
-	fi
+	python3 build.py build_py --use_syswx
 }
 
 post_install() {

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PR REVIEW] [RFC] create build_helper for python3 cross-building
  2022-08-25 19:30 [PR PATCH] [RFC] create build_helper for python3 cross-building classabbyamp
@ 2022-08-25 19:46 ` ahesford
  2022-08-25 20:14 ` [PR PATCH] [Updated] " classabbyamp
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: ahesford @ 2022-08-25 19:46 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 795 bytes --]

New review comment by ahesford on void-packages repository

https://github.com/void-linux/void-packages/pull/38911#discussion_r955356365

Comment:
```suggestion
	for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
		[ -f "$f" ] || continue
		f=${f##*/}
		_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
	done
	[ -n "$_PYTHON_SYSCONFIGDATA_NAME" ] && export _PYTHON_SYSCONFIGDATA_NAME
```
This loop has always kind of bugged me. I've always wondered whether we should break after the first match or continue looping to pick the last match. (In practice, there is probably only one, so it shouldn't matter, but still...)

Without taking a position on that matter, let's at least confirm the file exists to avoid picking up a null match and make sure we picked something before exporting it.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PR PATCH] [Updated] [RFC] create build_helper for python3 cross-building
  2022-08-25 19:30 [PR PATCH] [RFC] create build_helper for python3 cross-building classabbyamp
  2022-08-25 19:46 ` [PR REVIEW] " ahesford
@ 2022-08-25 20:14 ` classabbyamp
  2022-08-25 20:52 ` classabbyamp
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: classabbyamp @ 2022-08-25 20:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1489 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages xbps-src/py3-build-helper
https://github.com/void-linux/void-packages/pull/38911

[RFC] create build_helper for python3 cross-building
- common/build-helper/python3.sh: add python3 helper
- common/{,environment}/build_style/python3.sh: use python3 build_helper
- brltty: use python3 build_helper, clean up
- i2c-tools: use python3 build_helper
- libpwquality: use python3 build_helper
- tlsh: use python3 build_helper
- wxPython4: use python3 build_helper

My hope with this is to help with cross-building non-python packages that have python3 bindings/modules, but it can be used similar to the `rust` `build_helper` for various common constants, if needed.

One thing I'm not sure on is the usage with the `python3-module` `build_style`. It would cut down on the need to keep those env var definitions up-to-date in multiple places, but I'm open to opinions about it.

There's probably more packages that are marked `nocross`/`broken` because of python3 cross stuff that I didn't find.

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**
    - packages changed seem to build the same thing as before, but weren't extensively tested

A patch file from https://github.com/void-linux/void-packages/pull/38911.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-xbps-src/py3-build-helper-38911.patch --]
[-- Type: text/x-diff, Size: 15350 bytes --]

From 5f6a6831c2eb765f869c24ea1758af6e3de2fd17 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:18:02 -0400
Subject: [PATCH 1/7] common/build-helper/python3.sh: add python3 helper

---
 common/build-helper/python3.sh | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 common/build-helper/python3.sh

diff --git a/common/build-helper/python3.sh b/common/build-helper/python3.sh
new file mode 100644
index 000000000000..4707599ef0e0
--- /dev/null
+++ b/common/build-helper/python3.sh
@@ -0,0 +1,16 @@
+# fix building non-pure-python modules on cross
+if [ -n "$CROSS_BUILD" ]; then
+	export PYPREFIX="$XBPS_CROSS_BASE"
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
+	export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
+	export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
+	export LDSHARED="${CC} -shared $LDFLAGS"
+	export PYTHON_CONFIG="${XBPS_CROSS_BASE}/usr/bin/python3-config"
+	export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}"
+	for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
+		[ -f "$f" ] || continue
+		f=${f##*/}
+		_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
+	done
+	[ -n "$_PYTHON_SYSCONFIGDATA_NAME" ] && export _PYTHON_SYSCONFIGDATA_NAME
+fi

From eb84ee2a4a25205e4487f3c80505cb4f9f9745a6 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:19:03 -0400
Subject: [PATCH 2/7] common/{,environment}/build_style/python3.sh: use python3
 build_helper

---
 common/build-style/python3-module.sh          | 39 +------------------
 .../environment/build-style/python3-module.sh |  1 +
 2 files changed, 3 insertions(+), 37 deletions(-)

diff --git a/common/build-style/python3-module.sh b/common/build-style/python3-module.sh
index a0a694ee4a97..b76d89c8b502 100644
--- a/common/build-style/python3-module.sh
+++ b/common/build-style/python3-module.sh
@@ -3,24 +3,7 @@
 #
 
 do_build() {
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args}
-	else
-		python3 setup.py build ${make_build_args}
-	fi
+	python3 setup.py build ${make_build_args}
 }
 
 do_check() {
@@ -47,23 +30,5 @@ do_check() {
 }
 
 do_install() {
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py \
-				install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	else
-		python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	fi
+	python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
 }
diff --git a/common/environment/build-style/python3-module.sh b/common/environment/build-style/python3-module.sh
index 56471fe88bc0..638f6be9373a 100644
--- a/common/environment/build-style/python3-module.sh
+++ b/common/environment/build-style/python3-module.sh
@@ -1,2 +1,3 @@
 lib32disabled=yes
 makedepends+=" python3"
+build_helper+=" python3"

From f8564527b520842be964c5436911e5f1c47dab85 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:10 -0400
Subject: [PATCH 3/7] brltty: use python3 build_helper, clean up

---
 srcpkgs/brltty/template | 33 ++++++++++-----------------------
 1 file changed, 10 insertions(+), 23 deletions(-)

diff --git a/srcpkgs/brltty/template b/srcpkgs/brltty/template
index 08707f8dc86c..cf7c198b5253 100644
--- a/srcpkgs/brltty/template
+++ b/srcpkgs/brltty/template
@@ -1,8 +1,9 @@
 # Template file for 'brltty'
 pkgname=brltty
 version=6.4
-revision=5
+revision=6
 build_style=gnu-configure
+build_helper=python3
 configure_args="--enable-gpm --with-screen-driver=lx,sc
  --with-tables-directory=/usr/share/brltty PYTHON=/usr/bin/python3"
 hostmakedepends="pkg-config python3-Cython"
@@ -10,8 +11,8 @@ makedepends="ncurses-devel alsa-lib-devel gpm-devel icu-devel python3-devel libb
 short_desc="Braille display driver for Linux/Unix"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later"
-homepage="http://mielke.cc/brltty/"
-distfiles="http://mielke.cc/brltty/archive/brltty-${version}.tar.xz"
+homepage="https://brltty.app"
+distfiles="https://brltty.app/archive/brltty-${version}.tar.xz"
 checksum=bc7573b0d0ab865c36607945b64c209312405571788f3b409397726f6143eaa6
 python_version=3
 
@@ -25,8 +26,8 @@ esac
 
 pre_configure() {
 	case "$XBPS_TARGET_MACHINE" in
-	*-musl) # There is no ldconfig in musl libc
-		sed -e "s;/sbin/ldconfig -n;echo;" -i configure
+		*-musl) # There is no ldconfig in musl libc
+			sed -e "s;/sbin/ldconfig -n;echo;" -i configure ;;
 	esac
 	export PYTHON_LIBS="-L${XBPS_CROSS_BASE}/usr/lib -lpython${py3_ver}${py3_abiver}"
 	export PYTHON_CPPFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc}"
@@ -34,31 +35,17 @@ pre_configure() {
 
 post_configure() {
 	case "$XBPS_TARGET_MACHINE" in
-	arm*-musl) # Fix erroneously detected "#define HAVE_SYS_IO_H 1"
-		sed -i config.h -e"s;#define HAVE_SYS_IO_H 1;#undef HAVE_SYS_IO_H;"
+		arm*-musl) # Fix erroneously detected "#define HAVE_SYS_IO_H 1"
+			sed -i config.h -e"s;#define HAVE_SYS_IO_H 1;#undef HAVE_SYS_IO_H;" ;;
 	esac
 }
 
-pre_build() {
-	if [ "$CROSS_BUILD" ]; then
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			export _PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		export PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}
-	fi
-}
-
-pre_install() {
-	pre_build
-}
-
 do_install() {
 	make INSTALL_ROOT=${DESTDIR} install
-	vsv $pkgname
+	vsv brltty
 	vsconf Documents/brltty.conf
 	vdoc Documents/ChangeLog
-	vcopy Documents/Manual-BRLTTY usr/share/doc/${pkgname}
+	vcopy Documents/Manual-BRLTTY usr/share/doc/brltty
 }
 
 brltty-devel_package() {

From a1be43fbcd0af6fd486c360b68f29e8bdb77f683 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:12 -0400
Subject: [PATCH 4/7] i2c-tools: use python3 build_helper

---
 srcpkgs/i2c-tools/template | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/i2c-tools/template b/srcpkgs/i2c-tools/template
index ec522fd6f71b..1f0b2bcd1f6b 100644
--- a/srcpkgs/i2c-tools/template
+++ b/srcpkgs/i2c-tools/template
@@ -1,8 +1,9 @@
 # Template file for 'i2c-tools'
 pkgname=i2c-tools
 version=4.3
-revision=2
+revision=3
 build_style=gnu-makefile
+build_helper=python3
 make_build_args="EXTRA=py-smbus"
 make_install_args="sbindir=/usr/bin EXTRA=py-smbus"
 hostmakedepends="python3 python3-setuptools"
@@ -16,21 +17,6 @@ distfiles="https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/i2c-tool
 checksum=1f899e43603184fac32f34d72498fc737952dbc9c97a8dd9467fadfdf4600cf9
 system_groups="i2c"
 
-
-if [ -n "$CROSS_BUILD" ]; then
-	export PYPREFIX="$XBPS_CROSS_BASE"
-	export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-	export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-	export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-	export LDSHARED="${CC} -shared $LDFLAGS"
-	export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}"
-	for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-	done
-	export _PYTHON_SYSCONFIGDATA_NAME
-fi
-
 post_install() {
 	vinstall "${FILESDIR}/45-i2c-tools.rules" 644 usr/lib/udev/rules.d
 }

From e423952a4ea87e92e030c1377c932d61026c462c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:13 -0400
Subject: [PATCH 5/7] libpwquality: use python3 build_helper

---
 srcpkgs/libpwquality/template | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/srcpkgs/libpwquality/template b/srcpkgs/libpwquality/template
index 9d72a5539baa..e89a8a0c5cf7 100644
--- a/srcpkgs/libpwquality/template
+++ b/srcpkgs/libpwquality/template
@@ -1,10 +1,11 @@
 # Template file for 'libpwquality'
 pkgname=libpwquality
 version=1.4.2
-revision=5
+revision=6
 build_style=gnu-configure
+build_helper=python3
 configure_args="--disable-static --enable-pam --with-securedir=/usr/lib/security"
-hostmakedepends="libtool automake gettext-devel python3-devel"
+hostmakedepends="libtool automake gettext-devel python3"
 makedepends="cracklib-devel pam-devel python3-devel"
 depends="cracklib"
 conf_files="/etc/security/pwquality.conf"
@@ -13,29 +14,13 @@ maintainer="bra1nwave <bra1nwave@protonmail.com>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/libpwquality/libpwquality"
 changelog="https://raw.githubusercontent.com/libpwquality/libpwquality/master/NEWS"
-distfiles="${homepage}/releases/download/libpwquality-${version}/libpwquality-${version}.tar.bz2"
+distfiles="https://github.com/libpwquality/libpwquality/releases/download/libpwquality-${version}/libpwquality-${version}.tar.bz2"
 checksum=5263e09ee62269c092f790ac159112aed3e66826a795e3afec85fdeac4281c8e
 
-CFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc}"
-
 pre_configure() {
-	vsed -i python/Makefile.am -e 's|CFLAGS=.*|LDSHARED="${CC} -pthread -shared" &|g'
 	autoreconf -fi
 }
 
-pre_build() {
-	if [ "$CROSS_BUILD" ]; then
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			export _PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		export PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}
-	fi
-}
-pre_install() {
-	pre_build
-}
-
 libpwquality-devel_package() {
 	depends="cracklib-devel ${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - development files"

From fb45a81e443bddd5b56adfee6846a47040d41ab8 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:13 -0400
Subject: [PATCH 6/7] tlsh: use python3 build_helper

---
 srcpkgs/tlsh/template | 42 ++++--------------------------------------
 1 file changed, 4 insertions(+), 38 deletions(-)

diff --git a/srcpkgs/tlsh/template b/srcpkgs/tlsh/template
index c4625ea2c74d..3801747eb959 100644
--- a/srcpkgs/tlsh/template
+++ b/srcpkgs/tlsh/template
@@ -1,8 +1,9 @@
 # Template file for 'tlsh'
 pkgname=tlsh
 version=3.19.1
-revision=3
+revision=4
 build_style=cmake
+build_helper=python3
 hostmakedepends="python3"
 makedepends="python3-devel"
 short_desc="Fuzzy matching library"
@@ -19,24 +20,7 @@ pre_configure() {
 
 post_build() {
 	cd py_ext
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args}
-	else
-		python3 setup.py build ${make_build_args}
-	fi
+	python3 setup.py build ${make_build_args}
 }
 
 
@@ -47,25 +31,7 @@ pre_check() {
 post_install() {
 	vlicense LICENSE
 	cd py_ext
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py \
-				install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	else
-		python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	fi
+	python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
 }
 
 tlsh-devel_package() {

From e069ba4981343a2f78cc3dadc8b46a7ba03b0950 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:14 -0400
Subject: [PATCH 7/7] wxPython4: use python3 build_helper, fix check

---
 srcpkgs/wxPython4/template | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/srcpkgs/wxPython4/template b/srcpkgs/wxPython4/template
index 554174105a36..825faea73802 100644
--- a/srcpkgs/wxPython4/template
+++ b/srcpkgs/wxPython4/template
@@ -1,15 +1,17 @@
 # Template file for 'wxPython4'
 pkgname=wxPython4
 version=4.0.7
-revision=4
+revision=5
 wrksrc="wxPython-${version}"
 build_style=python3-module
+build_helper=python3
 make_build_args="--skip-build"
 make_install_args="--skip-build"
 hostmakedepends="pkg-config python3-setuptools python3-pathlib2"
 makedepends="python3-devel wxWidgets-gtk3-devel SDL2-devel webkit2gtk-devel
  gst-plugins-base1-devel"
 depends="python3 python3-six python3-numpy python3-Pillow"
+checkdepends="$depends python3-pytest-xdist python3-pytest-timeout"
 short_desc="WxWidgets GUI toolkit library (Python3 Bindings)"
 maintainer="Jasper Chan <jasperchan515@gmail.com>"
 license="custom:wxWindows"
@@ -17,24 +19,9 @@ homepage="http://www.wxpython.org/"
 distfiles="${PYPI_SITE}/w/wxPython/wxPython-${version}.tar.gz"
 checksum=3be608bfdede3063678cc703453850ab0a018b82bafd5ee057302250b18f0233
 
-if [ "$CROSS_BUILD" ]; then
-	CFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-fi
-
 pre_build() {
 	chmod -R go+rX $wrksrc
-	if [ "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHON_CONFIG="${XBPS_CROSS_BASE}/usr/bin/python3-config" \
-			LDFLAGS="$LDFLAGS" python3 build.py build_py --use_syswx
-	else
-		python3 build.py build_py --use_syswx
-	fi
+	python3 build.py build_py --use_syswx
 }
 
 post_install() {

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PR PATCH] [Updated] [RFC] create build_helper for python3 cross-building
  2022-08-25 19:30 [PR PATCH] [RFC] create build_helper for python3 cross-building classabbyamp
  2022-08-25 19:46 ` [PR REVIEW] " ahesford
  2022-08-25 20:14 ` [PR PATCH] [Updated] " classabbyamp
@ 2022-08-25 20:52 ` classabbyamp
  2022-08-26  5:37 ` classabbyamp
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: classabbyamp @ 2022-08-25 20:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1489 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages xbps-src/py3-build-helper
https://github.com/void-linux/void-packages/pull/38911

[RFC] create build_helper for python3 cross-building
- common/build-helper/python3.sh: add python3 helper
- common/{,environment}/build_style/python3.sh: use python3 build_helper
- brltty: use python3 build_helper, clean up
- i2c-tools: use python3 build_helper
- libpwquality: use python3 build_helper
- tlsh: use python3 build_helper
- wxPython4: use python3 build_helper

My hope with this is to help with cross-building non-python packages that have python3 bindings/modules, but it can be used similar to the `rust` `build_helper` for various common constants, if needed.

One thing I'm not sure on is the usage with the `python3-module` `build_style`. It would cut down on the need to keep those env var definitions up-to-date in multiple places, but I'm open to opinions about it.

There's probably more packages that are marked `nocross`/`broken` because of python3 cross stuff that I didn't find.

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**
    - packages changed seem to build the same thing as before, but weren't extensively tested

A patch file from https://github.com/void-linux/void-packages/pull/38911.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-xbps-src/py3-build-helper-38911.patch --]
[-- Type: text/x-diff, Size: 15413 bytes --]

From 5f6a6831c2eb765f869c24ea1758af6e3de2fd17 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:18:02 -0400
Subject: [PATCH 1/7] common/build-helper/python3.sh: add python3 helper

---
 common/build-helper/python3.sh | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 common/build-helper/python3.sh

diff --git a/common/build-helper/python3.sh b/common/build-helper/python3.sh
new file mode 100644
index 000000000000..4707599ef0e0
--- /dev/null
+++ b/common/build-helper/python3.sh
@@ -0,0 +1,16 @@
+# fix building non-pure-python modules on cross
+if [ -n "$CROSS_BUILD" ]; then
+	export PYPREFIX="$XBPS_CROSS_BASE"
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
+	export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
+	export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
+	export LDSHARED="${CC} -shared $LDFLAGS"
+	export PYTHON_CONFIG="${XBPS_CROSS_BASE}/usr/bin/python3-config"
+	export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}"
+	for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
+		[ -f "$f" ] || continue
+		f=${f##*/}
+		_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
+	done
+	[ -n "$_PYTHON_SYSCONFIGDATA_NAME" ] && export _PYTHON_SYSCONFIGDATA_NAME
+fi

From eb84ee2a4a25205e4487f3c80505cb4f9f9745a6 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:19:03 -0400
Subject: [PATCH 2/7] common/{,environment}/build_style/python3.sh: use python3
 build_helper

---
 common/build-style/python3-module.sh          | 39 +------------------
 .../environment/build-style/python3-module.sh |  1 +
 2 files changed, 3 insertions(+), 37 deletions(-)

diff --git a/common/build-style/python3-module.sh b/common/build-style/python3-module.sh
index a0a694ee4a97..b76d89c8b502 100644
--- a/common/build-style/python3-module.sh
+++ b/common/build-style/python3-module.sh
@@ -3,24 +3,7 @@
 #
 
 do_build() {
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args}
-	else
-		python3 setup.py build ${make_build_args}
-	fi
+	python3 setup.py build ${make_build_args}
 }
 
 do_check() {
@@ -47,23 +30,5 @@ do_check() {
 }
 
 do_install() {
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py \
-				install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	else
-		python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	fi
+	python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
 }
diff --git a/common/environment/build-style/python3-module.sh b/common/environment/build-style/python3-module.sh
index 56471fe88bc0..638f6be9373a 100644
--- a/common/environment/build-style/python3-module.sh
+++ b/common/environment/build-style/python3-module.sh
@@ -1,2 +1,3 @@
 lib32disabled=yes
 makedepends+=" python3"
+build_helper+=" python3"

From f8564527b520842be964c5436911e5f1c47dab85 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:10 -0400
Subject: [PATCH 3/7] brltty: use python3 build_helper, clean up

---
 srcpkgs/brltty/template | 33 ++++++++++-----------------------
 1 file changed, 10 insertions(+), 23 deletions(-)

diff --git a/srcpkgs/brltty/template b/srcpkgs/brltty/template
index 08707f8dc86c..cf7c198b5253 100644
--- a/srcpkgs/brltty/template
+++ b/srcpkgs/brltty/template
@@ -1,8 +1,9 @@
 # Template file for 'brltty'
 pkgname=brltty
 version=6.4
-revision=5
+revision=6
 build_style=gnu-configure
+build_helper=python3
 configure_args="--enable-gpm --with-screen-driver=lx,sc
  --with-tables-directory=/usr/share/brltty PYTHON=/usr/bin/python3"
 hostmakedepends="pkg-config python3-Cython"
@@ -10,8 +11,8 @@ makedepends="ncurses-devel alsa-lib-devel gpm-devel icu-devel python3-devel libb
 short_desc="Braille display driver for Linux/Unix"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later"
-homepage="http://mielke.cc/brltty/"
-distfiles="http://mielke.cc/brltty/archive/brltty-${version}.tar.xz"
+homepage="https://brltty.app"
+distfiles="https://brltty.app/archive/brltty-${version}.tar.xz"
 checksum=bc7573b0d0ab865c36607945b64c209312405571788f3b409397726f6143eaa6
 python_version=3
 
@@ -25,8 +26,8 @@ esac
 
 pre_configure() {
 	case "$XBPS_TARGET_MACHINE" in
-	*-musl) # There is no ldconfig in musl libc
-		sed -e "s;/sbin/ldconfig -n;echo;" -i configure
+		*-musl) # There is no ldconfig in musl libc
+			sed -e "s;/sbin/ldconfig -n;echo;" -i configure ;;
 	esac
 	export PYTHON_LIBS="-L${XBPS_CROSS_BASE}/usr/lib -lpython${py3_ver}${py3_abiver}"
 	export PYTHON_CPPFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc}"
@@ -34,31 +35,17 @@ pre_configure() {
 
 post_configure() {
 	case "$XBPS_TARGET_MACHINE" in
-	arm*-musl) # Fix erroneously detected "#define HAVE_SYS_IO_H 1"
-		sed -i config.h -e"s;#define HAVE_SYS_IO_H 1;#undef HAVE_SYS_IO_H;"
+		arm*-musl) # Fix erroneously detected "#define HAVE_SYS_IO_H 1"
+			sed -i config.h -e"s;#define HAVE_SYS_IO_H 1;#undef HAVE_SYS_IO_H;" ;;
 	esac
 }
 
-pre_build() {
-	if [ "$CROSS_BUILD" ]; then
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			export _PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		export PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}
-	fi
-}
-
-pre_install() {
-	pre_build
-}
-
 do_install() {
 	make INSTALL_ROOT=${DESTDIR} install
-	vsv $pkgname
+	vsv brltty
 	vsconf Documents/brltty.conf
 	vdoc Documents/ChangeLog
-	vcopy Documents/Manual-BRLTTY usr/share/doc/${pkgname}
+	vcopy Documents/Manual-BRLTTY usr/share/doc/brltty
 }
 
 brltty-devel_package() {

From a1be43fbcd0af6fd486c360b68f29e8bdb77f683 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:12 -0400
Subject: [PATCH 4/7] i2c-tools: use python3 build_helper

---
 srcpkgs/i2c-tools/template | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/i2c-tools/template b/srcpkgs/i2c-tools/template
index ec522fd6f71b..1f0b2bcd1f6b 100644
--- a/srcpkgs/i2c-tools/template
+++ b/srcpkgs/i2c-tools/template
@@ -1,8 +1,9 @@
 # Template file for 'i2c-tools'
 pkgname=i2c-tools
 version=4.3
-revision=2
+revision=3
 build_style=gnu-makefile
+build_helper=python3
 make_build_args="EXTRA=py-smbus"
 make_install_args="sbindir=/usr/bin EXTRA=py-smbus"
 hostmakedepends="python3 python3-setuptools"
@@ -16,21 +17,6 @@ distfiles="https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/i2c-tool
 checksum=1f899e43603184fac32f34d72498fc737952dbc9c97a8dd9467fadfdf4600cf9
 system_groups="i2c"
 
-
-if [ -n "$CROSS_BUILD" ]; then
-	export PYPREFIX="$XBPS_CROSS_BASE"
-	export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-	export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-	export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-	export LDSHARED="${CC} -shared $LDFLAGS"
-	export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}"
-	for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-	done
-	export _PYTHON_SYSCONFIGDATA_NAME
-fi
-
 post_install() {
 	vinstall "${FILESDIR}/45-i2c-tools.rules" 644 usr/lib/udev/rules.d
 }

From e423952a4ea87e92e030c1377c932d61026c462c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:13 -0400
Subject: [PATCH 5/7] libpwquality: use python3 build_helper

---
 srcpkgs/libpwquality/template | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/srcpkgs/libpwquality/template b/srcpkgs/libpwquality/template
index 9d72a5539baa..e89a8a0c5cf7 100644
--- a/srcpkgs/libpwquality/template
+++ b/srcpkgs/libpwquality/template
@@ -1,10 +1,11 @@
 # Template file for 'libpwquality'
 pkgname=libpwquality
 version=1.4.2
-revision=5
+revision=6
 build_style=gnu-configure
+build_helper=python3
 configure_args="--disable-static --enable-pam --with-securedir=/usr/lib/security"
-hostmakedepends="libtool automake gettext-devel python3-devel"
+hostmakedepends="libtool automake gettext-devel python3"
 makedepends="cracklib-devel pam-devel python3-devel"
 depends="cracklib"
 conf_files="/etc/security/pwquality.conf"
@@ -13,29 +14,13 @@ maintainer="bra1nwave <bra1nwave@protonmail.com>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/libpwquality/libpwquality"
 changelog="https://raw.githubusercontent.com/libpwquality/libpwquality/master/NEWS"
-distfiles="${homepage}/releases/download/libpwquality-${version}/libpwquality-${version}.tar.bz2"
+distfiles="https://github.com/libpwquality/libpwquality/releases/download/libpwquality-${version}/libpwquality-${version}.tar.bz2"
 checksum=5263e09ee62269c092f790ac159112aed3e66826a795e3afec85fdeac4281c8e
 
-CFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc}"
-
 pre_configure() {
-	vsed -i python/Makefile.am -e 's|CFLAGS=.*|LDSHARED="${CC} -pthread -shared" &|g'
 	autoreconf -fi
 }
 
-pre_build() {
-	if [ "$CROSS_BUILD" ]; then
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			export _PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		export PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}
-	fi
-}
-pre_install() {
-	pre_build
-}
-
 libpwquality-devel_package() {
 	depends="cracklib-devel ${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - development files"

From fb45a81e443bddd5b56adfee6846a47040d41ab8 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:13 -0400
Subject: [PATCH 6/7] tlsh: use python3 build_helper

---
 srcpkgs/tlsh/template | 42 ++++--------------------------------------
 1 file changed, 4 insertions(+), 38 deletions(-)

diff --git a/srcpkgs/tlsh/template b/srcpkgs/tlsh/template
index c4625ea2c74d..3801747eb959 100644
--- a/srcpkgs/tlsh/template
+++ b/srcpkgs/tlsh/template
@@ -1,8 +1,9 @@
 # Template file for 'tlsh'
 pkgname=tlsh
 version=3.19.1
-revision=3
+revision=4
 build_style=cmake
+build_helper=python3
 hostmakedepends="python3"
 makedepends="python3-devel"
 short_desc="Fuzzy matching library"
@@ -19,24 +20,7 @@ pre_configure() {
 
 post_build() {
 	cd py_ext
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args}
-	else
-		python3 setup.py build ${make_build_args}
-	fi
+	python3 setup.py build ${make_build_args}
 }
 
 
@@ -47,25 +31,7 @@ pre_check() {
 post_install() {
 	vlicense LICENSE
 	cd py_ext
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py \
-				install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	else
-		python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	fi
+	python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
 }
 
 tlsh-devel_package() {

From 85e082d231e5af8543e3d8533c2bedf1df0dd7d3 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:14 -0400
Subject: [PATCH 7/7] wxPython4: use python3 build_helper, fix check

---
 srcpkgs/wxPython4/template | 23 +++++++----------------
 1 file changed, 7 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/wxPython4/template b/srcpkgs/wxPython4/template
index 554174105a36..d87e0a8bc5b7 100644
--- a/srcpkgs/wxPython4/template
+++ b/srcpkgs/wxPython4/template
@@ -1,15 +1,17 @@
 # Template file for 'wxPython4'
 pkgname=wxPython4
 version=4.0.7
-revision=4
+revision=5
 wrksrc="wxPython-${version}"
 build_style=python3-module
+build_helper=python3
 make_build_args="--skip-build"
 make_install_args="--skip-build"
 hostmakedepends="pkg-config python3-setuptools python3-pathlib2"
 makedepends="python3-devel wxWidgets-gtk3-devel SDL2-devel webkit2gtk-devel
  gst-plugins-base1-devel"
 depends="python3 python3-six python3-numpy python3-Pillow"
+checkdepends="$depends python3-pytest-timeout xvfb-run"
 short_desc="WxWidgets GUI toolkit library (Python3 Bindings)"
 maintainer="Jasper Chan <jasperchan515@gmail.com>"
 license="custom:wxWindows"
@@ -17,24 +19,13 @@ homepage="http://www.wxpython.org/"
 distfiles="${PYPI_SITE}/w/wxPython/wxPython-${version}.tar.gz"
 checksum=3be608bfdede3063678cc703453850ab0a018b82bafd5ee057302250b18f0233
 
-if [ "$CROSS_BUILD" ]; then
-	CFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-fi
+make_check_pre="xvfb-run"
+# segfaults part-way through
+make_check=no
 
 pre_build() {
 	chmod -R go+rX $wrksrc
-	if [ "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHON_CONFIG="${XBPS_CROSS_BASE}/usr/bin/python3-config" \
-			LDFLAGS="$LDFLAGS" python3 build.py build_py --use_syswx
-	else
-		python3 build.py build_py --use_syswx
-	fi
+	python3 build.py build_py --use_syswx
 }
 
 post_install() {

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PR PATCH] [Updated] [RFC] create build_helper for python3 cross-building
  2022-08-25 19:30 [PR PATCH] [RFC] create build_helper for python3 cross-building classabbyamp
                   ` (2 preceding siblings ...)
  2022-08-25 20:52 ` classabbyamp
@ 2022-08-26  5:37 ` classabbyamp
  2022-08-26  7:50 ` [PR REVIEW] " classabbyamp
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: classabbyamp @ 2022-08-26  5:37 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1489 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages xbps-src/py3-build-helper
https://github.com/void-linux/void-packages/pull/38911

[RFC] create build_helper for python3 cross-building
- common/build-helper/python3.sh: add python3 helper
- common/{,environment}/build_style/python3.sh: use python3 build_helper
- brltty: use python3 build_helper, clean up
- i2c-tools: use python3 build_helper
- libpwquality: use python3 build_helper
- tlsh: use python3 build_helper
- wxPython4: use python3 build_helper

My hope with this is to help with cross-building non-python packages that have python3 bindings/modules, but it can be used similar to the `rust` `build_helper` for various common constants, if needed.

One thing I'm not sure on is the usage with the `python3-module` `build_style`. It would cut down on the need to keep those env var definitions up-to-date in multiple places, but I'm open to opinions about it.

There's probably more packages that are marked `nocross`/`broken` because of python3 cross stuff that I didn't find.

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**
    - packages changed seem to build the same thing as before, but weren't extensively tested

A patch file from https://github.com/void-linux/void-packages/pull/38911.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-xbps-src/py3-build-helper-38911.patch --]
[-- Type: text/x-diff, Size: 13240 bytes --]

From 5f6a6831c2eb765f869c24ea1758af6e3de2fd17 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:18:02 -0400
Subject: [PATCH 1/6] common/build-helper/python3.sh: add python3 helper

---
 common/build-helper/python3.sh | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 common/build-helper/python3.sh

diff --git a/common/build-helper/python3.sh b/common/build-helper/python3.sh
new file mode 100644
index 000000000000..4707599ef0e0
--- /dev/null
+++ b/common/build-helper/python3.sh
@@ -0,0 +1,16 @@
+# fix building non-pure-python modules on cross
+if [ -n "$CROSS_BUILD" ]; then
+	export PYPREFIX="$XBPS_CROSS_BASE"
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
+	export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
+	export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
+	export LDSHARED="${CC} -shared $LDFLAGS"
+	export PYTHON_CONFIG="${XBPS_CROSS_BASE}/usr/bin/python3-config"
+	export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}"
+	for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
+		[ -f "$f" ] || continue
+		f=${f##*/}
+		_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
+	done
+	[ -n "$_PYTHON_SYSCONFIGDATA_NAME" ] && export _PYTHON_SYSCONFIGDATA_NAME
+fi

From eb84ee2a4a25205e4487f3c80505cb4f9f9745a6 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:19:03 -0400
Subject: [PATCH 2/6] common/{,environment}/build_style/python3.sh: use python3
 build_helper

---
 common/build-style/python3-module.sh          | 39 +------------------
 .../environment/build-style/python3-module.sh |  1 +
 2 files changed, 3 insertions(+), 37 deletions(-)

diff --git a/common/build-style/python3-module.sh b/common/build-style/python3-module.sh
index a0a694ee4a97..b76d89c8b502 100644
--- a/common/build-style/python3-module.sh
+++ b/common/build-style/python3-module.sh
@@ -3,24 +3,7 @@
 #
 
 do_build() {
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args}
-	else
-		python3 setup.py build ${make_build_args}
-	fi
+	python3 setup.py build ${make_build_args}
 }
 
 do_check() {
@@ -47,23 +30,5 @@ do_check() {
 }
 
 do_install() {
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py \
-				install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	else
-		python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	fi
+	python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
 }
diff --git a/common/environment/build-style/python3-module.sh b/common/environment/build-style/python3-module.sh
index 56471fe88bc0..638f6be9373a 100644
--- a/common/environment/build-style/python3-module.sh
+++ b/common/environment/build-style/python3-module.sh
@@ -1,2 +1,3 @@
 lib32disabled=yes
 makedepends+=" python3"
+build_helper+=" python3"

From f8564527b520842be964c5436911e5f1c47dab85 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:10 -0400
Subject: [PATCH 3/6] brltty: use python3 build_helper, clean up

---
 srcpkgs/brltty/template | 33 ++++++++++-----------------------
 1 file changed, 10 insertions(+), 23 deletions(-)

diff --git a/srcpkgs/brltty/template b/srcpkgs/brltty/template
index 08707f8dc86c..cf7c198b5253 100644
--- a/srcpkgs/brltty/template
+++ b/srcpkgs/brltty/template
@@ -1,8 +1,9 @@
 # Template file for 'brltty'
 pkgname=brltty
 version=6.4
-revision=5
+revision=6
 build_style=gnu-configure
+build_helper=python3
 configure_args="--enable-gpm --with-screen-driver=lx,sc
  --with-tables-directory=/usr/share/brltty PYTHON=/usr/bin/python3"
 hostmakedepends="pkg-config python3-Cython"
@@ -10,8 +11,8 @@ makedepends="ncurses-devel alsa-lib-devel gpm-devel icu-devel python3-devel libb
 short_desc="Braille display driver for Linux/Unix"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later"
-homepage="http://mielke.cc/brltty/"
-distfiles="http://mielke.cc/brltty/archive/brltty-${version}.tar.xz"
+homepage="https://brltty.app"
+distfiles="https://brltty.app/archive/brltty-${version}.tar.xz"
 checksum=bc7573b0d0ab865c36607945b64c209312405571788f3b409397726f6143eaa6
 python_version=3
 
@@ -25,8 +26,8 @@ esac
 
 pre_configure() {
 	case "$XBPS_TARGET_MACHINE" in
-	*-musl) # There is no ldconfig in musl libc
-		sed -e "s;/sbin/ldconfig -n;echo;" -i configure
+		*-musl) # There is no ldconfig in musl libc
+			sed -e "s;/sbin/ldconfig -n;echo;" -i configure ;;
 	esac
 	export PYTHON_LIBS="-L${XBPS_CROSS_BASE}/usr/lib -lpython${py3_ver}${py3_abiver}"
 	export PYTHON_CPPFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc}"
@@ -34,31 +35,17 @@ pre_configure() {
 
 post_configure() {
 	case "$XBPS_TARGET_MACHINE" in
-	arm*-musl) # Fix erroneously detected "#define HAVE_SYS_IO_H 1"
-		sed -i config.h -e"s;#define HAVE_SYS_IO_H 1;#undef HAVE_SYS_IO_H;"
+		arm*-musl) # Fix erroneously detected "#define HAVE_SYS_IO_H 1"
+			sed -i config.h -e"s;#define HAVE_SYS_IO_H 1;#undef HAVE_SYS_IO_H;" ;;
 	esac
 }
 
-pre_build() {
-	if [ "$CROSS_BUILD" ]; then
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			export _PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		export PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}
-	fi
-}
-
-pre_install() {
-	pre_build
-}
-
 do_install() {
 	make INSTALL_ROOT=${DESTDIR} install
-	vsv $pkgname
+	vsv brltty
 	vsconf Documents/brltty.conf
 	vdoc Documents/ChangeLog
-	vcopy Documents/Manual-BRLTTY usr/share/doc/${pkgname}
+	vcopy Documents/Manual-BRLTTY usr/share/doc/brltty
 }
 
 brltty-devel_package() {

From a1be43fbcd0af6fd486c360b68f29e8bdb77f683 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:12 -0400
Subject: [PATCH 4/6] i2c-tools: use python3 build_helper

---
 srcpkgs/i2c-tools/template | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/i2c-tools/template b/srcpkgs/i2c-tools/template
index ec522fd6f71b..1f0b2bcd1f6b 100644
--- a/srcpkgs/i2c-tools/template
+++ b/srcpkgs/i2c-tools/template
@@ -1,8 +1,9 @@
 # Template file for 'i2c-tools'
 pkgname=i2c-tools
 version=4.3
-revision=2
+revision=3
 build_style=gnu-makefile
+build_helper=python3
 make_build_args="EXTRA=py-smbus"
 make_install_args="sbindir=/usr/bin EXTRA=py-smbus"
 hostmakedepends="python3 python3-setuptools"
@@ -16,21 +17,6 @@ distfiles="https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/i2c-tool
 checksum=1f899e43603184fac32f34d72498fc737952dbc9c97a8dd9467fadfdf4600cf9
 system_groups="i2c"
 
-
-if [ -n "$CROSS_BUILD" ]; then
-	export PYPREFIX="$XBPS_CROSS_BASE"
-	export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-	export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-	export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-	export LDSHARED="${CC} -shared $LDFLAGS"
-	export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}"
-	for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-	done
-	export _PYTHON_SYSCONFIGDATA_NAME
-fi
-
 post_install() {
 	vinstall "${FILESDIR}/45-i2c-tools.rules" 644 usr/lib/udev/rules.d
 }

From e423952a4ea87e92e030c1377c932d61026c462c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:13 -0400
Subject: [PATCH 5/6] libpwquality: use python3 build_helper

---
 srcpkgs/libpwquality/template | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/srcpkgs/libpwquality/template b/srcpkgs/libpwquality/template
index 9d72a5539baa..e89a8a0c5cf7 100644
--- a/srcpkgs/libpwquality/template
+++ b/srcpkgs/libpwquality/template
@@ -1,10 +1,11 @@
 # Template file for 'libpwquality'
 pkgname=libpwquality
 version=1.4.2
-revision=5
+revision=6
 build_style=gnu-configure
+build_helper=python3
 configure_args="--disable-static --enable-pam --with-securedir=/usr/lib/security"
-hostmakedepends="libtool automake gettext-devel python3-devel"
+hostmakedepends="libtool automake gettext-devel python3"
 makedepends="cracklib-devel pam-devel python3-devel"
 depends="cracklib"
 conf_files="/etc/security/pwquality.conf"
@@ -13,29 +14,13 @@ maintainer="bra1nwave <bra1nwave@protonmail.com>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/libpwquality/libpwquality"
 changelog="https://raw.githubusercontent.com/libpwquality/libpwquality/master/NEWS"
-distfiles="${homepage}/releases/download/libpwquality-${version}/libpwquality-${version}.tar.bz2"
+distfiles="https://github.com/libpwquality/libpwquality/releases/download/libpwquality-${version}/libpwquality-${version}.tar.bz2"
 checksum=5263e09ee62269c092f790ac159112aed3e66826a795e3afec85fdeac4281c8e
 
-CFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc}"
-
 pre_configure() {
-	vsed -i python/Makefile.am -e 's|CFLAGS=.*|LDSHARED="${CC} -pthread -shared" &|g'
 	autoreconf -fi
 }
 
-pre_build() {
-	if [ "$CROSS_BUILD" ]; then
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			export _PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		export PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}
-	fi
-}
-pre_install() {
-	pre_build
-}
-
 libpwquality-devel_package() {
 	depends="cracklib-devel ${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - development files"

From fb45a81e443bddd5b56adfee6846a47040d41ab8 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 25 Aug 2022 15:20:13 -0400
Subject: [PATCH 6/6] tlsh: use python3 build_helper

---
 srcpkgs/tlsh/template | 42 ++++--------------------------------------
 1 file changed, 4 insertions(+), 38 deletions(-)

diff --git a/srcpkgs/tlsh/template b/srcpkgs/tlsh/template
index c4625ea2c74d..3801747eb959 100644
--- a/srcpkgs/tlsh/template
+++ b/srcpkgs/tlsh/template
@@ -1,8 +1,9 @@
 # Template file for 'tlsh'
 pkgname=tlsh
 version=3.19.1
-revision=3
+revision=4
 build_style=cmake
+build_helper=python3
 hostmakedepends="python3"
 makedepends="python3-devel"
 short_desc="Fuzzy matching library"
@@ -19,24 +20,7 @@ pre_configure() {
 
 post_build() {
 	cd py_ext
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args}
-	else
-		python3 setup.py build ${make_build_args}
-	fi
+	python3 setup.py build ${make_build_args}
 }
 
 
@@ -47,25 +31,7 @@ pre_check() {
 post_install() {
 	vlicense LICENSE
 	cd py_ext
-	if [ -n "$CROSS_BUILD" ]; then
-		PYPREFIX="$XBPS_CROSS_BASE"
-		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
-		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
-		CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
-		LDSHARED="${CC} -shared $LDFLAGS"
-		for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
-			f=${f##*/}
-			_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
-		done
-		env CC="$CC" LDSHARED="$LDSHARED" \
-			PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
-			PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
-			_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
-			LDFLAGS="$LDFLAGS" python3 setup.py \
-				install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	else
-		python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
-	fi
+	python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
 }
 
 tlsh-devel_package() {

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PR REVIEW] [RFC] create build_helper for python3 cross-building
  2022-08-25 19:30 [PR PATCH] [RFC] create build_helper for python3 cross-building classabbyamp
                   ` (3 preceding siblings ...)
  2022-08-26  5:37 ` classabbyamp
@ 2022-08-26  7:50 ` classabbyamp
  2022-08-29  5:32 ` classabbyamp
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: classabbyamp @ 2022-08-26  7:50 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 347 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/38911#discussion_r955761197

Comment:
fixed that loop.

based on a cursory glance, the numpy and this build helper should not conflict. the only thing they do in common is add to C/LD flags, but both are `+=` so it _should_ be fine

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC] create build_helper for python3 cross-building
  2022-08-25 19:30 [PR PATCH] [RFC] create build_helper for python3 cross-building classabbyamp
                   ` (4 preceding siblings ...)
  2022-08-26  7:50 ` [PR REVIEW] " classabbyamp
@ 2022-08-29  5:32 ` classabbyamp
  2022-08-29 11:10 ` ahesford
  2022-08-30  3:25 ` [PR PATCH] [Merged]: " classabbyamp
  7 siblings, 0 replies; 9+ messages in thread
From: classabbyamp @ 2022-08-29  5:32 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 477 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/38911#issuecomment-1229797482

Comment:
can confirm that three of those four packages crossbuild fine with the new helper, but I haven't run-tested them.

`python3-h5py` fails because of `hdf5-devel`:
```
=> ERROR: hdf5-devel-1.10.5_2: cannot be cross compiled...
=> ERROR: hdf5-devel-1.10.5_2: https://portal.hdfgroup.org/pages/viewpage.action?pageId=48808266
```

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC] create build_helper for python3 cross-building
  2022-08-25 19:30 [PR PATCH] [RFC] create build_helper for python3 cross-building classabbyamp
                   ` (5 preceding siblings ...)
  2022-08-29  5:32 ` classabbyamp
@ 2022-08-29 11:10 ` ahesford
  2022-08-30  3:25 ` [PR PATCH] [Merged]: " classabbyamp
  7 siblings, 0 replies; 9+ messages in thread
From: ahesford @ 2022-08-29 11:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 203 bytes --]

New comment by ahesford on void-packages repository

https://github.com/void-linux/void-packages/pull/38911#issuecomment-1230138295

Comment:
I forgot that HDF5 is nocross. Everything looks good to me. 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PR PATCH] [Merged]: [RFC] create build_helper for python3 cross-building
  2022-08-25 19:30 [PR PATCH] [RFC] create build_helper for python3 cross-building classabbyamp
                   ` (6 preceding siblings ...)
  2022-08-29 11:10 ` ahesford
@ 2022-08-30  3:25 ` classabbyamp
  7 siblings, 0 replies; 9+ messages in thread
From: classabbyamp @ 2022-08-30  3:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1266 bytes --]

There's a merged pull request on the void-packages repository

[RFC] create build_helper for python3 cross-building
https://github.com/void-linux/void-packages/pull/38911

Description:
- common/build-helper/python3.sh: add python3 helper
- common/{,environment}/build_style/python3.sh: use python3 build_helper
- brltty: use python3 build_helper, clean up
- i2c-tools: use python3 build_helper
- libpwquality: use python3 build_helper
- tlsh: use python3 build_helper

My hope with this is to help with cross-building non-python packages that have python3 bindings/modules, but it can be used similar to the `rust` `build_helper` for various common constants, if needed.

One thing I'm not sure on is the usage with the `python3-module` `build_style`. It would cut down on the need to keep those env var definitions up-to-date in multiple places, but I'm open to opinions about it.

There's probably more packages that are marked `nocross`/`broken` because of python3 cross stuff that I didn't find.

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**
    - packages changed seem to build the same thing as before, but weren't extensively tested

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-08-30  3:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-25 19:30 [PR PATCH] [RFC] create build_helper for python3 cross-building classabbyamp
2022-08-25 19:46 ` [PR REVIEW] " ahesford
2022-08-25 20:14 ` [PR PATCH] [Updated] " classabbyamp
2022-08-25 20:52 ` classabbyamp
2022-08-26  5:37 ` classabbyamp
2022-08-26  7:50 ` [PR REVIEW] " classabbyamp
2022-08-29  5:32 ` classabbyamp
2022-08-29 11:10 ` ahesford
2022-08-30  3:25 ` [PR PATCH] [Merged]: " classabbyamp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).