From 8c0dcc9f8f58dec44bbb7930bfcff76d9cb620dd Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Tue, 8 Nov 2022 10:18:53 -0500 Subject: [PATCH 1/6] python3-flit_core: update to 3.8.0. --- srcpkgs/python3-flit_core/template | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/srcpkgs/python3-flit_core/template b/srcpkgs/python3-flit_core/template index 73e8809560e8..e5342b7e1a9f 100644 --- a/srcpkgs/python3-flit_core/template +++ b/srcpkgs/python3-flit_core/template @@ -1,10 +1,13 @@ # Template file for 'python3-flit_core' pkgname=python3-flit_core -version=3.7.1 -revision=2 +version=3.8.0 +revision=1 build_wrksrc="flit_core" -build_style=python3-pep517 -depends="python3-tomli" +# This package is required by python3-build and python3-installer, used by the +# python3-pep517 style; so using that style here would create a cycle +build_style=python3-module +hostmakedepends="python3-pip" +depends="python3" checkdepends="python3-pytest python3-testpath $depends" short_desc="Simplified packaging of Python modules - PEP 517 build backend" maintainer="Andrew J. Hesford " @@ -12,8 +15,16 @@ license="BSD-3-Clause" homepage="https://flit.readthedocs.io" changelog="https://flit.readthedocs.io/en/latest/history.html" distfiles="${PYPI_SITE}/f/flit/flit-${version}.tar.gz" -checksum=3c9bd9c140515bfe62dd938c6610d10d6efb9e35cc647fc614fe5fb3a5036682 +checksum=d0f2a8f4bd45dc794befbf5839ecc0fd3830d65a57bd52b5997542fac5d5e937 -post_install() { +do_build() { + python3 -m flit_core.wheel +} + +do_install() { + mkdir -p build + TMPDIR="${PWD}/build" python3 -m pip install --use-pep517 --prefix /usr \ + --root "${DESTDIR}" --no-deps --no-build-isolation --no-clean \ + "dist/flit_core-${version}-py3-none-any.whl" vlicense ../LICENSE } From 9db95b7cff594a7476afa912eccad9892bc97710 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Tue, 8 Nov 2022 11:00:25 -0500 Subject: [PATCH 2/6] New package: python3-installer-0.5.1 --- srcpkgs/python3-installer/template | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 srcpkgs/python3-installer/template diff --git a/srcpkgs/python3-installer/template b/srcpkgs/python3-installer/template new file mode 100644 index 000000000000..2fc406f6fa7d --- /dev/null +++ b/srcpkgs/python3-installer/template @@ -0,0 +1,30 @@ +# Template file for 'python3-installer' +pkgname=python3-installer +version=0.5.1 +revision=1 +# This package is used by the python3-pep517 build style; using that style here +# would create a build cycle +build_style=python3-module +hostmakedepends="python3-flit_core" +depends="python3" +checkdepends="python3-pytest-xdist" +short_desc="Low-level library for installing from a Python wheel" +maintainer="Andrew J. Hesford " +license="MIT" +homepage="https://installer.readthedocs.io/" +distfiles="${PYPI_SITE}/i/installer/installer-${version}.tar.gz" +checksum=f970995ec2bb815e2fdaf7977b26b2091e1e386f0f42eafd5ac811953dc5d445 + +do_build() { + python3 -m flit_core.wheel +} + +do_check() { + PYTHONPATH=src python3 -m pytest -n $XBPS_MAKEJOBS +} + +do_install() { + (cd src && python3 -m installer --destdir "${DESTDIR}" \ + "../dist/installer-${version}-py3-none-any.whl" ) + vlicense LICENSE +} From fd3c07fb8eeb47abd9b5d41a0baaf8a946d70011 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Tue, 8 Nov 2022 10:33:01 -0500 Subject: [PATCH 3/6] New package: python3-pyproject-hooks-0.13.0 --- srcpkgs/python3-pyproject-hooks/template | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 srcpkgs/python3-pyproject-hooks/template diff --git a/srcpkgs/python3-pyproject-hooks/template b/srcpkgs/python3-pyproject-hooks/template new file mode 100644 index 000000000000..b1dff85b3eda --- /dev/null +++ b/srcpkgs/python3-pyproject-hooks/template @@ -0,0 +1,31 @@ +# Template file for 'python3-pyproject-hooks' +pkgname=python3-pyproject-hooks +version=0.13.0 +revision=1 +# This package is required by python3-build, used by the python3-pep517 style; +# using that style here would create a cycle +build_style=python3-module +hostmakedepends="python3-flit_core python3-installer" +depends="python3" +checkdepends="python3-pytest-xdist python3-testpath" +short_desc="Low-level library for calling Python build backends" +maintainer="Andrew J. Hesford " +license="MIT" +homepage="https://pyproject-hooks.readthedocs.io/" +distfiles="${PYPI_SITE}/p/pep517/pep517-${version}.tar.gz" +checksum=ae69927c5c172be1add9203726d4b84cf3ebad1edcd5f71fcdc746e66e829f59 + +do_build() { + python3 -m flit_core.wheel +} + +do_check() { + rm pytest.ini + python3 -m pytest -n $XBPS_MAKEJOBS +} + +do_install() { + python3 -m installer --destdir "${DESTDIR}" \ + "dist/pep517-${version}-py3-none-any.whl" + vlicense LICENSE +} From 9de4314cfcf0d0411e9d9c1ca757b7ba0b8d6784 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Tue, 8 Nov 2022 10:54:30 -0500 Subject: [PATCH 4/6] New package: python3-build-0.9.0 --- srcpkgs/python3-build/template | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 srcpkgs/python3-build/template diff --git a/srcpkgs/python3-build/template b/srcpkgs/python3-build/template new file mode 100644 index 000000000000..4501669ba063 --- /dev/null +++ b/srcpkgs/python3-build/template @@ -0,0 +1,29 @@ +# Template file for 'python3-build' +pkgname=python3-build +version=0.9.0 +revision=1 +# This package is used by the python3-pep517 build style; using that style here +# would create a build cycle +build_style=python3-module +_depends="python3-packaging python3-pyproject-hooks" +hostmakedepends="python3-setuptools python3-wheel python3-installer $_depends" +depends="$_depends" +short_desc="Simple, correct PEP 517 build frontend" +maintainer="Andrew J. Hesford " +license="MIT" +homepage="https://pypa-build.readthedocs.io/" +changelog="https://raw.githubusercontent.com/pypa/build/main/CHANGELOG.rst" +distfiles="${PYPI_SITE}/b/build/build-${version}.tar.gz" +checksum=1a07724e891cbd898923145eb7752ee7653674c511378eb9c7691aab1612bc3c +# PyPI package provides no tests +make_check=no + +do_build() { + (cd src && python3 -m build --no-isolation --wheel ..) +} + +do_install() { + python3 -m installer --destdir "${DESTDIR}" \ + "dist/build-${version}-py3-none-any.whl" + vlicense LICENSE +} From 9f7d3426c4fcb4fa618c4086a1a7bfc6d00225b9 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Tue, 8 Nov 2022 11:48:04 -0500 Subject: [PATCH 5/6] build-style/python3-pep517.sh: abandon pip --- common/build-style/python3-pep517.sh | 18 +++++------------- .../environment/build-style/python3-pep517.sh | 3 ++- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/common/build-style/python3-pep517.sh b/common/build-style/python3-pep517.sh index da1e238e1192..6eb36924f813 100644 --- a/common/build-style/python3-pep517.sh +++ b/common/build-style/python3-pep517.sh @@ -3,13 +3,9 @@ # do_build() { - # No PEP517 build tool currently supports compiled extensions - # Thus, there is no need to accommodate cross compilation here : ${make_build_target:=.} - - mkdir -p build - TMPDIR="${PWD}/build" python3 -m pip wheel --no-deps --use-pep517 --no-clean \ - --no-build-isolation ${make_build_args} ${make_build_target} + : ${make_build_args:=--no-isolation --wheel} + python3 -m build ${make_build_args} ${make_build_target} } do_check() { @@ -26,16 +22,12 @@ do_check() { } do_install() { - # As with do_build, no need to accommodate cross compilation here if [ -z "${make_install_target}" ]; then # Default wheel name normalizes hyphens to underscores local wheelbase="${pkgname#python3-}" - make_install_target="${wheelbase//-/_}-${version}-*-*-*.whl" + make_install_target="dist/${wheelbase//-/_}-${version}-*-*-*.whl" fi - # If do_build was overridden, make sure the TMPDIR exists - mkdir -p build - TMPDIR="${PWD}/build" python3 -m pip install --use-pep517 --prefix /usr \ - --root ${DESTDIR} --no-deps --no-build-isolation \ - --no-clean ${make_install_args} ${make_install_target} + python3 -m installer --destdir ${DESTDIR} \ + ${make_install_args} ${make_install_target} } diff --git a/common/environment/build-style/python3-pep517.sh b/common/environment/build-style/python3-pep517.sh index 48f0c1b17f47..f4faf980f508 100644 --- a/common/environment/build-style/python3-pep517.sh +++ b/common/environment/build-style/python3-pep517.sh @@ -1,2 +1,3 @@ -hostmakedepends+=" python3-pip" +hostmakedepends+=" python3-build python3-installer" lib32disabled=yes +build_helper+=" python3" From 586c535457296da110846f635d1312833364c93e Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Tue, 8 Nov 2022 10:21:01 -0500 Subject: [PATCH 6/6] python3-tomli: build with packaged python3-flit_core --- srcpkgs/python3-tomli/template | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/srcpkgs/python3-tomli/template b/srcpkgs/python3-tomli/template index 8e95733a2f9d..ec26197b0a62 100644 --- a/srcpkgs/python3-tomli/template +++ b/srcpkgs/python3-tomli/template @@ -1,35 +1,19 @@ # Template file for 'python3-tomli' pkgname=python3-tomli version=2.0.1 -revision=2 -create_wrksrc=yes -build_wrksrc="tomli-${version}" +revision=3 build_style=python3-pep517 -hostmakedepends="python3" +hostmakedepends="python3-flit_core" depends="python3" short_desc="Little TOML parser for Python" maintainer="Andrew J. Hesford " license="MIT" homepage="https://github.com/hukkin/tomli" -# flit_core>=3.4.0 requires tomli to run, while tomli requires flit_core to -# build. Both upstreams are aware of the cycle, but neither cares: -# https://github.com/hukkin/tomli/issues/130 -# https://github.com/takluyver/flit/issues/451 -# As a result, we can't use python3-flit_core to build this package, so we have -# to just fetch the flit_core tarball to bootstrap tomli. Sigh. -_flit_version=3.6.0 -distfiles="${PYPI_SITE}/t/tomli/tomli-${version}.tar.gz - ${PYPI_SITE}/f/flit_core/flit_core-${_flit_version}.tar.gz" -checksum="de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f - 5892962ab8b8ea945835b3a288fe9dd69316f1903d5288c3f5cafdcdd04756ad" +distfiles="${PYPI_SITE}/t/tomli/tomli-${version}.tar.gz" +checksum="de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" # Archive includes no tests make_check=no -pre_build() { - # Build requires that tomli be able to import flit_core *and* itself! - export PYTHONPATH="${PWD}:${wrksrc}/flit_core-${_flit_version}" -} - post_install() { vlicense LICENSE }