From 076cc35afc9441cd84e303a88e268c2994fda97b Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Mon, 18 Sep 2023 15:40:49 -0400 Subject: [PATCH 1/6] common/build-helper/meson.sh: new build helper, used by meson build style --- common/build-helper/meson.sh | 82 ++++++++++++++++++++++++ common/build-style/meson.sh | 85 +------------------------ common/environment/build-style/meson.sh | 1 + 3 files changed, 84 insertions(+), 84 deletions(-) create mode 100644 common/build-helper/meson.sh diff --git a/common/build-helper/meson.sh b/common/build-helper/meson.sh new file mode 100644 index 0000000000000..1933306c18a4b --- /dev/null +++ b/common/build-helper/meson.sh @@ -0,0 +1,82 @@ +# This bulid-helper writes a Meson cross-file, allowing other build styles +# to properly drive cross-builds in Meson when appropriate + +if [ "$CROSS_BUILD" ]; then + mkdir -p "${XBPS_WRAPPERDIR}/meson" + + _MESON_TARGET_ENDIAN=little + # drop the -musl suffix to the target cpu, meson doesn't recognize it + _MESON_TARGET_CPU=${XBPS_TARGET_MACHINE/-musl/} + case "$XBPS_TARGET_MACHINE" in + mips|mips-musl|mipshf-musl) + _MESON_TARGET_ENDIAN=big + _MESON_CPU_FAMILY=mips + ;; + armv*) + _MESON_CPU_FAMILY=arm + ;; + i686*) + _MESON_CPU_FAMILY=x86 + ;; + ppc64le*) + _MESON_CPU_FAMILY=ppc64 + ;; + ppc64*) + _MESON_TARGET_ENDIAN=big + _MESON_CPU_FAMILY=ppc64 + ;; + ppcle*) + _MESON_CPU_FAMILY=ppc + ;; + ppc*) + _MESON_TARGET_ENDIAN=big + _MESON_CPU_FAMILY=ppc + ;; + *) + # if we reached here that means that the cpu and cpu_family + # are the same like 'x86_64' and 'aarch64' + _MESON_CPU_FAMILY=${_MESON_TARGET_CPU} + ;; + esac + + # Tell meson to run binaries with qemu if desired + _MESON_EXE_WRAPPER="" + if [[ "${build_helper}" = *qemu* ]]; then + _MESON_EXE_WRAPPER="exe_wrapper = '/usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static'" + fi + + # Record cross-compiling information in cross file. + # + # CFLAGS, CXXFLAGS and LDFLAGS are not yet available and + # will be taken from the environment at configure time. + cat > "${XBPS_WRAPPERDIR}/meson/xbps_meson.cross" <<-EOF + [binaries] + ${_MESON_EXE_WRAPPER:-# exe_wrapper is not set} + c = '${CC}' + cpp = '${CXX}' + ar = '${XBPS_CROSS_TRIPLET}-gcc-ar' + nm = '${NM}' + ld = '${LD}' + strip = '${STRIP}' + readelf = '${READELF}' + objcopy = '${OBJCOPY}' + pkgconfig = '${PKG_CONFIG}' + rust = ['rustc', '--target', '${RUST_TARGET}' ,'--sysroot', '${XBPS_CROSS_BASE}/usr'] + g-ir-scanner = '${XBPS_CROSS_BASE}/usr/bin/g-ir-scanner' + g-ir-compiler = '${XBPS_CROSS_BASE}/usr/bin/g-ir-compiler' + g-ir-generate = '${XBPS_CROSS_BASE}/usr/bin/g-ir-generate' + llvm-config = '/usr/bin/llvm-config' + cups-config = '${XBPS_CROSS_BASE}/usr/bin/cups-config' + + [properties] + needs_exe_wrapper = true + + [host_machine] + system = 'linux' + cpu_family = '${_MESON_CPU_FAMILY}' + cpu = '${_MESON_TARGET_CPU}' + endian = '${_MESON_TARGET_ENDIAN}' + EOF + + unset _MESON_CPU_FAMILY _MESON_TARGET_CPU _MESON_TARGET_ENDIAN _MESON_EXE_WRAPPER +fi diff --git a/common/build-style/meson.sh b/common/build-style/meson.sh index e983c5f42c2f7..5ea2eeda40097 100644 --- a/common/build-style/meson.sh +++ b/common/build-style/meson.sh @@ -1,94 +1,11 @@ # # This helper is for templates using meson. # -do_patch() { - : ${meson_crossfile:=xbps_meson.cross} - - if [ "$CROSS_BUILD" ]; then - _MESON_TARGET_ENDIAN=little - # drop the -musl suffix to the target cpu, meson doesn't recognize it - _MESON_TARGET_CPU=${XBPS_TARGET_MACHINE/-musl/} - case "$XBPS_TARGET_MACHINE" in - mips|mips-musl|mipshf-musl) - _MESON_TARGET_ENDIAN=big - _MESON_CPU_FAMILY=mips - ;; - armv*) - _MESON_CPU_FAMILY=arm - ;; - i686*) - _MESON_CPU_FAMILY=x86 - ;; - ppc64le*) - _MESON_CPU_FAMILY=ppc64 - ;; - ppc64*) - _MESON_TARGET_ENDIAN=big - _MESON_CPU_FAMILY=ppc64 - ;; - ppcle*) - _MESON_CPU_FAMILY=ppc - ;; - ppc*) - _MESON_TARGET_ENDIAN=big - _MESON_CPU_FAMILY=ppc - ;; - *) - # if we reached here that means that the cpu and cpu_family - # are the same like 'x86_64' and 'aarch64' - _MESON_CPU_FAMILY=${_MESON_TARGET_CPU} - ;; - esac - - # Record cross-compiling information in cross file. - # CFLAGS and LDFLAGS must be set as c_args and c_link_args. - cat > ${meson_crossfile} < Date: Wed, 20 Sep 2023 19:32:18 -0300 Subject: [PATCH 2/6] python3-pybind11: add standard symlinks --- .../13-pkg-config-clean-xbps-cross-base-ref.sh | 3 ++- srcpkgs/python3-pybind11/template | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/common/hooks/post-install/13-pkg-config-clean-xbps-cross-base-ref.sh b/common/hooks/post-install/13-pkg-config-clean-xbps-cross-base-ref.sh index 5cdfb0e9bfd2b..88ad06c41983a 100644 --- a/common/hooks/post-install/13-pkg-config-clean-xbps-cross-base-ref.sh +++ b/common/hooks/post-install/13-pkg-config-clean-xbps-cross-base-ref.sh @@ -16,7 +16,8 @@ hook() { # s,/usr/armv7l-linux-musleabihf/usr,/usr,g # trailing /usr to avoid clashing with # other $XBPS_CROSS_BASE and $XBPS_CROSS_TRIPLET. - sed -i -e "s,$XBPS_CROSS_BASE/usr,/usr,g" "$f" + sed -i --follow-symlinks \ + -e "s,$XBPS_CROSS_BASE/usr,/usr,g" "$f" fi done } diff --git a/srcpkgs/python3-pybind11/template b/srcpkgs/python3-pybind11/template index 3b6ce5b98688f..de80678f261cb 100644 --- a/srcpkgs/python3-pybind11/template +++ b/srcpkgs/python3-pybind11/template @@ -1,7 +1,7 @@ # Template file for 'python3-pybind11' pkgname=python3-pybind11 version=2.11.1 -revision=1 +revision=2 build_style=python3-module hostmakedepends="cmake python3-setuptools python3-pytest python3-sphinx_rtd_theme python3-breathe" @@ -44,6 +44,15 @@ do_check() { post_install() { vlicense LICENSE + # symlink headers, cmake and pkgconfig into /usr + vmkdir usr/include + vmkdir usr/lib/cmake + vmkdir usr/lib/pkgconfig + _pybind11=${DESTDIR}/${py3_sitelib}/pybind11 + ln -rs $_pybind11/include/pybind11 ${DESTDIR}/usr/include/ + ln -rs $_pybind11/share/cmake/pybind11 ${DESTDIR}/usr/lib/cmake/ + ln -rs $_pybind11/share/pkgconfig/pybind11.pc ${DESTDIR}/usr/lib/pkgconfig/ + # Copy the man page, but make it section 7 _manpage=docs/.build/man/pybind11.1 vsed -i ${_manpage} -e '/^\.TH/ s/"1"/"7"/' From 4dbe5bc8d27490b7d4bc06fd57dff27fabb014cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Wed, 20 Sep 2023 19:38:13 -0300 Subject: [PATCH 3/6] common/build-style/python3-pep517.sh: improve build_args 1. The options `--no-isolation --wheel` are always required for the way the build-style works; we separate them from the `make_build_args` variable so the latter can be changed more easily. 2. When using the meson build-helper in a cross build, we add the correct argument to pass the crossfile to meson. 3. Now `make_build_args` is free to use in the template without having to worry about repeating the standard arguments. For instance `--skip-dependency-check` is a useful one (cf: pylint) --- common/build-style/python3-pep517.sh | 9 +++++++-- srcpkgs/pylint/template | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/common/build-style/python3-pep517.sh b/common/build-style/python3-pep517.sh index 2d5ff7caf34eb..7ff4cbb49907d 100644 --- a/common/build-style/python3-pep517.sh +++ b/common/build-style/python3-pep517.sh @@ -4,8 +4,13 @@ do_build() { : ${make_build_target:=.} - : ${make_build_args:=--no-isolation --wheel} - python3 -m build ${make_build_args} ${make_build_target} + local build_args="--no-isolation --wheel" + if [ $CROSS_BUILD ] && [[ " $build_helper " = *" meson "* ]]; then + build_args+=" + -Csetup-args=--cross-file=${XBPS_WRAPPERDIR}/meson/xbps_meson.cross" + fi + python3 -m build $build_args \ + ${make_build_args} ${make_build_target} } do_check() { diff --git a/srcpkgs/pylint/template b/srcpkgs/pylint/template index 6032da0fb413e..cb56f4bdad1ec 100644 --- a/srcpkgs/pylint/template +++ b/srcpkgs/pylint/template @@ -3,7 +3,7 @@ pkgname=pylint version=2.17.4 revision=1 build_style=python3-pep517 -make_build_args="--skip-dependency-check --no-isolation --wheel" +make_build_args="--skip-dependency-check" make_check_args="--deselect=tests/benchmark/test_baseline_benchmarks.py" hostmakedepends="python3-wheel" depends="python3-astroid python3-isort python3-mccabe python3-tomlkit From b9ff72466eb645e82c8a1a54fed9c134dfd037a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 7 May 2023 21:47:30 -0300 Subject: [PATCH 4/6] python3-contourpy: update to 1.1.1. --- srcpkgs/python3-contourpy/template | 15 ++++++++++----- srcpkgs/python3-contourpy/update | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 srcpkgs/python3-contourpy/update diff --git a/srcpkgs/python3-contourpy/template b/srcpkgs/python3-contourpy/template index 70e3833c8b55a..69f741a9b0eff 100644 --- a/srcpkgs/python3-contourpy/template +++ b/srcpkgs/python3-contourpy/template @@ -1,9 +1,10 @@ # Template file for 'python3-contourpy' pkgname=python3-contourpy -version=1.0.5 -revision=2 -build_style=python3-module -hostmakedepends="python3-setuptools python3-pybind11" +version=1.1.1 +revision=1 +build_style=python3-pep517 +build_helper=meson +hostmakedepends="python3-meson-python python3-pybind11 pkg-config" makedepends="python3-pybind11" depends="python3" checkdepends="${depends} python3-pytest-xdist python3-numpy" @@ -11,8 +12,12 @@ short_desc="Python library for calculating contours of 2D quadrilateral grids" maintainer="Alex Childs " license="BSD-3-Clause" homepage="https://github.com/contourpy/contourpy" +changelog="https://raw.githubusercontent.com/contourpy/contourpy/main/docs/changelog.rst" distfiles="${PYPI_SITE}/c/contourpy/contourpy-${version}.tar.gz" -checksum=896631cd40222aef3697e4e51177d14c3709fda49d30983269d584f034acc8a4 +checksum=96ba37c2e24b7212a77da85004c38e7c4d155d3e72a45eeaf22c1f03f607e8ab + +# This test needs `wurlitzer`, not packaged +make_check_args="--deselect=tests/test_internal.py::test_write_cache" # Pulling python3-matplotlib creates a build-time dependency if [ "$XBPS_CHECK_PKGS" = full ]; then diff --git a/srcpkgs/python3-contourpy/update b/srcpkgs/python3-contourpy/update new file mode 100644 index 0000000000000..e299d00ea67cd --- /dev/null +++ b/srcpkgs/python3-contourpy/update @@ -0,0 +1 @@ +ignore="*rc*" From 18ce4b006f53d2f648512df42ea30b1b0572f4bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 7 May 2023 21:56:57 -0300 Subject: [PATCH 5/6] python3-kiwisolver: update to 1.4.5, adopt. --- srcpkgs/python3-kiwisolver/template | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/srcpkgs/python3-kiwisolver/template b/srcpkgs/python3-kiwisolver/template index 3e4e2d55823da..ecea82d14e06c 100644 --- a/srcpkgs/python3-kiwisolver/template +++ b/srcpkgs/python3-kiwisolver/template @@ -1,25 +1,19 @@ # Template file for 'python3-kiwisolver' pkgname=python3-kiwisolver -version=1.3.1 -revision=4 -build_style=python3-module -hostmakedepends="python3-setuptools python3-cppy" +version=1.4.5 +revision=1 +build_style=python3-pep517 +hostmakedepends="python3-setuptools_scm python3-wheel python3-cppy" makedepends="python3-devel python3-cppy" depends="python3" +checkdepends="python3-pytest" short_desc="Fast implementation of the Cassowary constraint solver (Python3)" -maintainer="Orphaned " +maintainer="Gonzalo TornarĂ­a " license="BSD-3-Clause" homepage="https://github.com/nucleic/kiwi" +changelog="https://github.com/nucleic/kiwi/raw/main/releasenotes.rst" distfiles="${PYPI_SITE}/k/kiwisolver/kiwisolver-${version}.tar.gz" -checksum=950a199911a8d94683a6b10321f9345d5a3a8433ec58b217ace979e18f16e248 - -post_patch() { - # When cross building, make sure target cppy headers are used - if [ -n "${XBPS_CROSS_BASE}" ]; then - vsed -i setup.py \ - -e "s@cppy.get_include()@&.replace('/usr/', '${XBPS_CROSS_BASE}/usr/')@" - fi -} +checksum=e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec post_install() { vlicense LICENSE From 58f982db0fb150839b0957b5115999a27b08eb7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sat, 16 Sep 2023 13:15:51 -0300 Subject: [PATCH 6/6] python3-matplotlib: update to 3.8.0. --- srcpkgs/python3-matplotlib/template | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/srcpkgs/python3-matplotlib/template b/srcpkgs/python3-matplotlib/template index e8c3b07f9b9ca..90e899c2b2f52 100644 --- a/srcpkgs/python3-matplotlib/template +++ b/srcpkgs/python3-matplotlib/template @@ -1,11 +1,11 @@ # Template file for 'python3-matplotlib' pkgname=python3-matplotlib -version=3.7.2 +version=3.8.0 revision=1 -build_style=python3-module +build_style=python3-pep517 build_helper="numpy" hostmakedepends="pkg-config python3-setuptools_scm python3-certifi - python3-numpy python3-pybind11" + python3-numpy python3-pybind11 python3-wheel" makedepends="python3-devel freetype-devel libpng-devel libqhull-devel python3-pybind11" depends="python3-cycler fonttools python3-kiwisolver python3-numpy python3-packaging python3-Pillow python3-parsing python3-dateutil @@ -14,8 +14,9 @@ short_desc="Python3 2D/3D plotting library" maintainer="Andrew J. Hesford " license="custom:matplotlib, BSD-3-Clause, MIT" homepage="https://matplotlib.org/" +changelog="https://github.com/matplotlib/matplotlib/releases" distfiles="${PYPI_SITE}/m/matplotlib/matplotlib-${version}.tar.gz" -checksum=a8cdb91dddb04436bd2f098b8fdf4b81352e68cf4d2c6756fcc414791076569b +checksum=df8505e1c19d5c2c26aff3497a7cbd3ccfc2e97043d1e4db3e76afa399164b69 replaces="python3-matplotlib-data>=0" # Comparison of images is too frail for validation make_check="no" @@ -26,6 +27,7 @@ pre_build() { system_freetype = true system_qhull = true EOF + vsed -e "s|'-flto'|'-flto=auto'|" -i setup.py } post_install() {