Fix installation of init_cov_core.pth to be in the package rather than the build host.

This commit is contained in:
Bryan Drewery 2018-03-15 19:54:36 +00:00
parent 35a8fe569b
commit 7644658f48
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=464627
2 changed files with 50 additions and 0 deletions

View file

@ -3,6 +3,7 @@
PORTNAME= cov-core
PORTVERSION= 1.15.0
PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@ -18,4 +19,9 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>=3.6:devel/py-coverage@${FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
PLIST_FILES+= ${PYTHON_SITELIBDIR}/init_cov_core.pth
post-install:
${INSTALL_DATA} ${WRKSRC}/init_cov_core.pth \
${STAGEDIR}${PYTHON_SITELIBDIR}/
.include <bsd.port.mk>

View file

@ -0,0 +1,44 @@
Based on debian patch:
Author: Barry Warsaw <barry@debian.org>
Patch-Name: pth-installation-path
Subject: Calculate the correct .pth path
cov-core wants to install the file init_cov_core.pth so that cov_core_init
will be imported and initialized automatically for subprocess coverage, if
the environment variable COV_CORE_SOURCE is set (which e.g. nose does
automatically). However the upstream setup.py tries to install this file
directly into /usr/lib/pythonX.Y/{site,dist}-packages, which clearly doesn't
work when building the package. This patch hard codes the .pth path for a
location within the build directory. dh_python{2,3} does the rest.
Forwarded: not-needed
--- setup.py
+++ setup.py
@@ -48,23 +48,6 @@
'Topic :: Software Development :: Testing'])
if sys.argv[1] in ('install', 'develop'):
- for path in sys.path:
- if (path.endswith('site-packages')) or (path.endswith('dist-packages')
- and 'local' in path):
- path = os.path.join(path, PTH_FILE_NAME)
- try:
- pth_file = open(path, 'w')
- pth_file.write(PTH_FILE)
- pth_file.close()
- sys.stdout.write('\nWrote pth file for subprocess '
- 'measurement to %s\n' % path)
- break
- except Exception:
- sys.stdout.write('\nFailed to write pth file for subprocess '
- 'measurement to %s\n' % path)
- sys.stdout.write(PTH_FILE_FAILURE)
- break
- else:
- sys.stdout.write('\nFailed to find site-packages or dist-packages '
- 'dir to put pth file in.\n')
- sys.stdout.write(PTH_FILE_FAILURE)
+ pth_path = PTH_FILE_NAME
+ with open(pth_path, 'w') as fp:
+ fp.write(PTH_FILE)