Sat May 28 11:23:46 2016 UTC ()
Rectify fixup-python-writeable-source by putting egg-infodir related fixup
in egg.mk and simply forcing CHECK_PERMS_AUTOFIX=yes in extensions.mk


(richard)
diff -r1.21 -r1.22 pkgsrc/lang/python/egg.mk
diff -r1.45 -r1.46 pkgsrc/lang/python/extension.mk

cvs diff -r1.21 -r1.22 pkgsrc/lang/python/egg.mk (expand / switch to unified diff)

--- pkgsrc/lang/python/egg.mk 2016/04/10 16:39:28 1.21
+++ pkgsrc/lang/python/egg.mk 2016/05/28 11:23:46 1.22
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: egg.mk,v 1.21 2016/04/10 16:39:28 joerg Exp $ 1# $NetBSD: egg.mk,v 1.22 2016/05/28 11:23:46 richard Exp $
2# 2#
3# Common logic to handle Python Eggs 3# Common logic to handle Python Eggs
4# 4#
5.include "../../mk/bsd.fast.prefs.mk" 5.include "../../mk/bsd.fast.prefs.mk"
6.include "../../lang/python/pyversion.mk" 6.include "../../lang/python/pyversion.mk"
7 7
8# This file should be included to package python "distributions" which 8# This file should be included to package python "distributions" which
9# use setuptools to create an egg. Some distributions use distutils, 9# use setuptools to create an egg. Some distributions use distutils,
10# which creates an egg-info file; those should use distutils.mk 10# which creates an egg-info file; those should use distutils.mk
11 11
12EGG_NAME?= ${DISTNAME:C/-([^0-9])/_\1/g} 12EGG_NAME?= ${DISTNAME:C/-([^0-9])/_\1/g}
13EGG_INFODIR?= ${EGG_NAME}-py${PYVERSSUFFIX}.egg-info 13EGG_INFODIR?= ${EGG_NAME}-py${PYVERSSUFFIX}.egg-info
14 14
@@ -29,14 +29,21 @@ PY_PATCHPLIST= yes @@ -29,14 +29,21 @@ PY_PATCHPLIST= yes
29PLIST_SUBST+= EGG_NAME=${EGG_NAME}-py${PYVERSSUFFIX} 29PLIST_SUBST+= EGG_NAME=${EGG_NAME}-py${PYVERSSUFFIX}
30PLIST_SUBST+= EGG_INFODIR=${EGG_INFODIR} 30PLIST_SUBST+= EGG_INFODIR=${EGG_INFODIR}
31PRINT_PLIST_AWK+= { gsub(/${EGG_NAME}-py${PYVERSSUFFIX}.egg-info/, \ 31PRINT_PLIST_AWK+= { gsub(/${EGG_NAME}-py${PYVERSSUFFIX}.egg-info/, \
32 "$${EGG_INFODIR}") } 32 "$${EGG_INFODIR}") }
33PRINT_PLIST_AWK+= { gsub(/${EGG_NAME}-py${PYVERSSUFFIX}-nspkg.pth/, \ 33PRINT_PLIST_AWK+= { gsub(/${EGG_NAME}-py${PYVERSSUFFIX}-nspkg.pth/, \
34 "$${EGG_NAME}-nspkg.pth") } 34 "$${EGG_NAME}-nspkg.pth") }
35 35
36_PYSETUPTOOLSINSTALLARGS= --single-version-externally-managed 36_PYSETUPTOOLSINSTALLARGS= --single-version-externally-managed
37 37
38DEPENDS+= ${PYPKGPREFIX}-setuptools>=0.8:../../devel/py-setuptools 38DEPENDS+= ${PYPKGPREFIX}-setuptools>=0.8:../../devel/py-setuptools
39 39
40INSTALLATION_DIRS+= ${PYSITELIB} 40INSTALLATION_DIRS+= ${PYSITELIB}
41 41
 42privileged-install-hook: fixup-egg-info
 43.PHONY: fixup-egg-info
 44fixup-egg-info: # ensure egg-info directory contents are always 644
 45 ${TEST} -d "${DESTDIR}${PREFIX}/${PYSITELIB}/${EGG_INFODIR}" && \
 46 ${FIND} ${DESTDIR}${PREFIX}/${PYSITELIB}/${EGG_INFODIR} -type f \
 47 -exec ${CHMOD} ${SHAREMODE} '{}' +
 48
42.include "../../lang/python/extension.mk" 49.include "../../lang/python/extension.mk"

cvs diff -r1.45 -r1.46 pkgsrc/lang/python/extension.mk (expand / switch to unified diff)

--- pkgsrc/lang/python/extension.mk 2016/05/21 05:22:40 1.45
+++ pkgsrc/lang/python/extension.mk 2016/05/28 11:23:46 1.46
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: extension.mk,v 1.45 2016/05/21 05:22:40 richard Exp $ 1# $NetBSD: extension.mk,v 1.46 2016/05/28 11:23:46 richard Exp $
2 2
3.include "../../lang/python/pyversion.mk" 3.include "../../lang/python/pyversion.mk"
4 4
5# Packages that are a non-egg distutils extension should set 5# Packages that are a non-egg distutils extension should set
6# PYDISTUTILSPKG=YES and include this mk file. 6# PYDISTUTILSPKG=YES and include this mk file.
7 7
8# This mk fragment is included to handle packages that create 8# This mk fragment is included to handle packages that create
9# extensions to python, which by definition are those that place files 9# extensions to python, which by definition are those that place files
10# in ${PYSITELIB}. Extensions can be implemented via setuptools as 10# in ${PYSITELIB}. Extensions can be implemented via setuptools as
11# eggs (see egg.mk), via distutils (confusing, with an egg-info file, 11# eggs (see egg.mk), via distutils (confusing, with an egg-info file,
12# even though they are not eggs), or via more ad hocs methods. 12# even though they are not eggs), or via more ad hocs methods.
13 13
14.if defined(PYDISTUTILSPKG) 14.if defined(PYDISTUTILSPKG)
@@ -18,31 +18,27 @@ PYSETUP?= setup.py @@ -18,31 +18,27 @@ PYSETUP?= setup.py
18PYSETUPBUILDTARGET?= build 18PYSETUPBUILDTARGET?= build
19PYSETUPBUILDARGS?= #empty 19PYSETUPBUILDARGS?= #empty
20PYSETUPARGS?= #empty 20PYSETUPARGS?= #empty
21PYSETUPINSTALLARGS?= #empty 21PYSETUPINSTALLARGS?= #empty
22PYSETUPOPTARGS?= -c -O1 22PYSETUPOPTARGS?= -c -O1
23_PYSETUPINSTALLARGS= ${PYSETUPINSTALLARGS} ${PYSETUPOPTARGS} ${_PYSETUPTOOLSINSTALLARGS} 23_PYSETUPINSTALLARGS= ${PYSETUPINSTALLARGS} ${PYSETUPOPTARGS} ${_PYSETUPTOOLSINSTALLARGS}
24_PYSETUPINSTALLARGS+= --root=${DESTDIR:Q} 24_PYSETUPINSTALLARGS+= --root=${DESTDIR:Q}
25PY_PATCHPLIST?= yes 25PY_PATCHPLIST?= yes
26PYSETUPINSTALLARGS?= #empty 26PYSETUPINSTALLARGS?= #empty
27PYSETUPTESTTARGET?= test 27PYSETUPTESTTARGET?= test
28PYSETUPTESTARGS?= #empty 28PYSETUPTESTARGS?= #empty
29PYSETUPSUBDIR?= #empty 29PYSETUPSUBDIR?= #empty
30 30
31post-install: fixup-python-writeable-source 31CHECK_PERMS_AUTOFIX= yes # fixup most mode related warnings/errors
32.PHONY: fixup-python-writeable-source 
33fixup-python-writeable-source: 
34 ${FIND} ${DESTDIR} -type f \( -perm -g+w -o -perm -o+w \) \ 
35 -exec ${CHMOD} go-w '{}' + 
36 32
37do-build: 33do-build:
38 (cd ${WRKSRC}/${PYSETUPSUBDIR} && ${SETENV} ${MAKE_ENV} ${PYTHONBIN} \ 34 (cd ${WRKSRC}/${PYSETUPSUBDIR} && ${SETENV} ${MAKE_ENV} ${PYTHONBIN} \
39 ${PYSETUP} ${PYSETUPARGS} ${PYSETUPBUILDTARGET} ${PYSETUPBUILDARGS}) 35 ${PYSETUP} ${PYSETUPARGS} ${PYSETUPBUILDTARGET} ${PYSETUPBUILDARGS})
40 36
41do-install: 37do-install:
42 (cd ${WRKSRC}/${PYSETUPSUBDIR} && ${SETENV} ${INSTALL_ENV} ${MAKE_ENV} \ 38 (cd ${WRKSRC}/${PYSETUPSUBDIR} && ${SETENV} ${INSTALL_ENV} ${MAKE_ENV} \
43 ${PYTHONBIN} ${PYSETUP} ${PYSETUPARGS} "install" ${_PYSETUPINSTALLARGS}) 39 ${PYTHONBIN} ${PYSETUP} ${PYSETUPARGS} "install" ${_PYSETUPINSTALLARGS})
44.if !target(do-test) && !(defined(TEST_TARGET) && !empty(TEST_TARGET)) 40.if !target(do-test) && !(defined(TEST_TARGET) && !empty(TEST_TARGET))
45do-test: 41do-test:
46 (cd ${WRKSRC}/${PYSETUPSUBDIR} && ${SETENV} ${MAKE_ENV} ${PYTHONBIN} \ 42 (cd ${WRKSRC}/${PYSETUPSUBDIR} && ${SETENV} ${MAKE_ENV} ${PYTHONBIN} \
47 ${PYSETUP} ${PYSETUPARGS} ${PYSETUPTESTTARGET} ${PYSETUPTESTARGS}) 43 ${PYSETUP} ${PYSETUPARGS} ${PYSETUPTESTTARGET} ${PYSETUPTESTARGS})
48.endif 44.endif