aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Li <vishwin@FreeBSD.org>2023-03-09 03:33:57 +0000
committerCharlie Li <vishwin@FreeBSD.org>2023-03-09 03:33:57 +0000
commit16a6fecb4ff8b051ba1b238267b7cd15b19cda75 (patch)
tree32f97272a03c5492e6d9e56460051539d6046365
parent1e9c9994ae538c009fc0f6ad05da4e1789885a4c (diff)
python.mk: use script to process RECORD for the first pass
RECORD is a CSV file [0] containing more data than our plist format accepts. The original processing method used sed(1) exclusively, but paths containing quotes, spaces and commas throw it off. Process the CSV properly instead for the first pass. References: https://packaging.python.org/en/latest/specifications/recording-installed-packages/#the-record-file [0]
-rw-r--r--Mk/Uses/python.mk7
1 files changed, 4 insertions, 3 deletions
diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk
index d0754dc02097..6e25d0427cb2 100644
--- a/Mk/Uses/python.mk
+++ b/Mk/Uses/python.mk
@@ -870,7 +870,9 @@ do-build:
do-install:
@${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
@cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${PEP517_INSTALL_CMD}
- @${SED} -e 's|^|${PYTHONPREFIX_SITELIBDIR}/|' \
+ @${PYTHON_CMD} -B ${PORTSDIR}/Tools/scripts/strip_RECORD.py \
+ ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME:C/[-_]+/_/g}-${PORTVERSION}.dist-info/RECORD >> ${_PYTHONPKGLIST}
+ @${REINPLACE_CMD} -e 's|^|${PYTHONPREFIX_SITELIBDIR}/|' \
-e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../etc/|etc/|' \
-e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../bin/|bin/|' \
-e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../include/|include/|' \
@@ -880,8 +882,7 @@ do-install:
-e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../man/|man/|' \
-e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../sbin/|sbin/|' \
-e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../share/|share/|' \
- -e 's|\,.*$$||' \
- ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME:C/[-_]+/_/g}-${PORTVERSION}.dist-info/RECORD >> ${_PYTHONPKGLIST}
+ ${_PYTHONPKGLIST}
. endif
. endif # defined(_PYTHON_FEATURE_PEP517)