Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Dec 2022 14:10:24 GMT
From:      Matthew Seaman <matthew@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: d057cd7ccacd - main - textproc/py-wcmatch: update to 8.4.1
Message-ID:  <202212121410.2BCEAORP038044@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by matthew:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d057cd7ccacdc1c055dc8dc53bc9d49d06e52d0f

commit d057cd7ccacdc1c055dc8dc53bc9d49d06e52d0f
Author:     Matthew Seaman <matthew@FreeBSD.org>
AuthorDate: 2022-12-12 13:38:19 +0000
Commit:     Matthew Seaman <matthew@FreeBSD.org>
CommitDate: 2022-12-12 14:10:19 +0000

    textproc/py-wcmatch: update to 8.4.1
    
    The upstream package nolonger uses python setuptools, instead building
    a wheel using hatchling.  There is no build target to install the
    python module directly -- the generated wheel has to be processed by
    pip.  Indeed, with the PEP-517 support in recent versions of pip, the
    whole package can be built and installed in one commandline using pip.
    
    There are two approaches here:
    
      * maintain our own setup.py etc. to recreate the setuptools support
        from older versions -- an approach taken in
        textproc/py-pymdown-extensions, which is another package by the
        same upstream author with similar tooling.
    
      * alternatively, embrace the new python build system, using
        hatchling to create a python wheel and pip to install it to
        staging.
    
    I chose the latter, but it is trickier than it seems.  pip is not
    really designed for installing to a staging location as required when
    building a port.  pip options for manipulating the installation prefix
    (--root, --prefix) pollute the installed _pycache_ files with the
    staging directory path.  In fact, this only works at all, because
    everything in this package is installed under PYTHON_SITELIBDIR and we
    can set the `--target` option to ${STAGING}${PYTHON_SITELIBDIR} to
    achive the desired effect.
    
    The PEP-517 ideal would be to use pip to build and install everything,
    and manage all the dependency resolution etc., but that's not
    compatible with port building.  Fortunately, it is possible to turn
    off all of the unrequired functionality.
    
    It would be cleaner to implement a python module to directly convert
    wheels into FreeBSD pkgs, or vice-versa.
    
    Changes:        https://github.com/facelessuser/wcmatch/releases/tag/8.4
    Changes:        https://github.com/facelessuser/wcmatch/releases/tag/8.4.1
---
 textproc/py-wcmatch/Makefile  | 24 ++++++++++++++++++++----
 textproc/py-wcmatch/distinfo  |  6 +++---
 textproc/py-wcmatch/pkg-plist | 28 ++++++++++++++++++++++++++++
 3 files changed, 51 insertions(+), 7 deletions(-)

diff --git a/textproc/py-wcmatch/Makefile b/textproc/py-wcmatch/Makefile
index 9cb0f07b092e..9df8a0ea6e2b 100644
--- a/textproc/py-wcmatch/Makefile
+++ b/textproc/py-wcmatch/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	wcmatch
-PORTVERSION=	8.3
-PORTREVISION=	1
+PORTVERSION=	8.4.1
 CATEGORIES=	textproc python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -12,17 +11,34 @@ WWW=		https://pypi.org/project/wcmatch/
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE.md
 
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}hatchling>=0.21.1:devel/py-hatchling@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pip>=22.2:devel/py-pip@${PY_FLAVOR}
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}bracex>=2.1.1:textproc/py-bracex@${PY_FLAVOR}
 
 TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}coverage>0:devel/py-coverage@${PY_FLAVOR}
 
-USES=		python:3.6+
-USE_PYTHON=	autoplist distutils
+USES=		python:3.7+
+USE_PYTHON=	flavors
+
+
+# PYTHON_EXT_SUFFIX could be used here, except that it is
+# special-cased for python3.7 which we don't want.
+PYCACHE_SUFFIX=	.cpython-${PYTHON_SUFFIX}.pyc
+
+PLIST_SUB+=	PORTVERSION=${PORTVERSION} PYCACHE_SUFFIX=${PYCACHE_SUFFIX}
 
 NO_ARCH=	yes
 
+do-build:
+	cd ${WRKSRC} && ${PYTHON_CMD} -m hatchling build -t wheel
+
+do-install:
+	${PYTHON_CMD} -m pip --no-cache-dir install --no-deps --ignore-installed \
+	  --disable-pip-version-check --target ${STAGEDIR}${PYTHON_SITELIBDIR} \
+	  ${WRKSRC}/dist/${PORTNAME}-${PORTVERSION}-py3-none-any.whl
+
 do-test:
 	@(cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest)
 
diff --git a/textproc/py-wcmatch/distinfo b/textproc/py-wcmatch/distinfo
index ff8bf4e9ac12..8d36b0959c37 100644
--- a/textproc/py-wcmatch/distinfo
+++ b/textproc/py-wcmatch/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1636198668
-SHA256 (wcmatch-8.3.tar.gz) = 371072912398af61d1e4e78609e18801c6faecd3cb36c54c82556a60abc965db
-SIZE (wcmatch-8.3.tar.gz) = 118523
+TIMESTAMP = 1669241366
+SHA256 (wcmatch-8.4.1.tar.gz) = b1f042a899ea4c458b7321da1b5e3331e3e0ec781583434de1301946ceadb943
+SIZE (wcmatch-8.4.1.tar.gz) = 114362
diff --git a/textproc/py-wcmatch/pkg-plist b/textproc/py-wcmatch/pkg-plist
new file mode 100644
index 000000000000..751f7c1af749
--- /dev/null
+++ b/textproc/py-wcmatch/pkg-plist
@@ -0,0 +1,28 @@
+%%PYTHON_LIBDIR%%/site-packages/wcmatch-%%PORTVERSION%%.dist-info/WHEEL
+%%PYTHON_LIBDIR%%/site-packages/wcmatch-%%PORTVERSION%%.dist-info/REQUESTED
+%%PYTHON_LIBDIR%%/site-packages/wcmatch-%%PORTVERSION%%.dist-info/RECORD
+%%PYTHON_LIBDIR%%/site-packages/wcmatch-%%PORTVERSION%%.dist-info/INSTALLER
+%%PYTHON_LIBDIR%%/site-packages/wcmatch-%%PORTVERSION%%.dist-info/direct_url.json
+%%PYTHON_LIBDIR%%/site-packages/wcmatch-%%PORTVERSION%%.dist-info/METADATA
+%%PYTHON_LIBDIR%%/site-packages/wcmatch-%%PORTVERSION%%.dist-info/licenses/LICENSE.md
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/fnmatch.py
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/_wcparse.py
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/posix.py
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/_wcparse%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/glob%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/fnmatch%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/_wcmatch%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/wcmatch%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/pathlib%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/__init__%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/__meta__%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/posix%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__pycache__/util%%PYCACHE_SUFFIX%%
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/glob.py
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__init__.py
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/__meta__.py
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/util.py
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/_wcmatch.py
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/py.typed
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/pathlib.py
+%%PYTHON_LIBDIR%%/site-packages/wcmatch/wcmatch.py



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202212121410.2BCEAORP038044>