Tue Mar 26 16:12:28 2019 UTC ()
lang/python27: Add comments about NIS detection

The logic to determine inclusion of NIS PLIST entries is confusing.
Add comments to explain some and question some.

This is a comment-only change.


(gdt)
diff -r1.77 -r1.78 pkgsrc/lang/python27/Makefile

cvs diff -r1.77 -r1.78 pkgsrc/lang/python27/Makefile (switch to unified diff)

--- pkgsrc/lang/python27/Makefile 2019/03/05 12:43:40 1.77
+++ pkgsrc/lang/python27/Makefile 2019/03/26 16:12:28 1.78
@@ -1,225 +1,232 @@ @@ -1,225 +1,232 @@
1# $NetBSD: Makefile,v 1.77 2019/03/05 12:43:40 adam Exp $ 1# $NetBSD: Makefile,v 1.78 2019/03/26 16:12:28 gdt Exp $
2 2
3.include "dist.mk" 3.include "dist.mk"
4 4
5PKGNAME= python27-${PY_DISTVERSION} 5PKGNAME= python27-${PY_DISTVERSION}
6CATEGORIES= lang python 6CATEGORIES= lang python
7 7
8MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= https://www.python.org/ 9HOMEPAGE= https://www.python.org/
10COMMENT= Interpreted, interactive, object-oriented programming language 10COMMENT= Interpreted, interactive, object-oriented programming language
11LICENSE= python-software-foundation 11LICENSE= python-software-foundation
12 12
13DEPENDS= mozilla-rootcerts>=1.0.20150804nb1:../../security/mozilla-rootcerts 13DEPENDS= mozilla-rootcerts>=1.0.20150804nb1:../../security/mozilla-rootcerts
14 14
15CONFLICTS+= python-[0-9]* 15CONFLICTS+= python-[0-9]*
16 16
17USE_LANGUAGES= c c++ 17USE_LANGUAGES= c c++
18GNU_CONFIGURE= yes 18GNU_CONFIGURE= yes
19CONFIGURE_ARGS+= --enable-shared 19CONFIGURE_ARGS+= --enable-shared
20CONFIGURE_ARGS+= --with-dbmliborder=ndbm:bdb 20CONFIGURE_ARGS+= --with-dbmliborder=ndbm:bdb
21CONFIGURE_ARGS+= --with-system-ffi 21CONFIGURE_ARGS+= --with-system-ffi
22CONFIGURE_ARGS+= --with-threads 22CONFIGURE_ARGS+= --with-threads
23CONFIGURE_ENV+= MKDIR_P=${MKDIR:Q} 23CONFIGURE_ENV+= MKDIR_P=${MKDIR:Q}
24CONFIGURE_ENV+= OPT=${CFLAGS:M*:Q} 24CONFIGURE_ENV+= OPT=${CFLAGS:M*:Q}
25PKGCONFIG_OVERRIDE+= Misc/python.pc.in 25PKGCONFIG_OVERRIDE+= Misc/python.pc.in
26 26
27LDFLAGS+= -L${WRKSRC} 27LDFLAGS+= -L${WRKSRC}
28 28
29# $RANDOM usage there is fine 29# $RANDOM usage there is fine
30CHECK_PORTABILITY_SKIP= Tools/faqwiz/move-faqwiz.sh 30CHECK_PORTABILITY_SKIP= Tools/faqwiz/move-faqwiz.sh
31 31
32PTHREAD_OPTS+= require 32PTHREAD_OPTS+= require
33PTHREAD_AUTO_VARS= yes 33PTHREAD_AUTO_VARS= yes
34.include "../../mk/pthread.buildlink3.mk" 34.include "../../mk/pthread.buildlink3.mk"
35.if ${PTHREAD_TYPE} == "pth" 35.if ${PTHREAD_TYPE} == "pth"
36CONFIGURE_ARGS+= --with-pth 36CONFIGURE_ARGS+= --with-pth
37.endif 37.endif
38 38
39.include "../../mk/compiler.mk" 39.include "../../mk/compiler.mk"
40 40
41# Clang needs -fwrapv 41# Clang needs -fwrapv
42.if !empty(PKGSRC_COMPILER:Mclang) 42.if !empty(PKGSRC_COMPILER:Mclang)
43CFLAGS+= -fwrapv 43CFLAGS+= -fwrapv
44.endif 44.endif
45 45
46.include "../../mk/bsd.prefs.mk" 46.include "../../mk/bsd.prefs.mk"
47 47
48# fdatasync() 48# fdatasync()
49LIBS.SunOS+= -lrt 49LIBS.SunOS+= -lrt
50 50
51PY_VER_SUFFIX= 2.7 51PY_VER_SUFFIX= 2.7
52 52
53.if ${OPSYS} == "NetBSD" 53.if ${OPSYS} == "NetBSD"
54# XXX work around a botched autoconf check which ignores libintl 54# XXX work around a botched autoconf check which ignores libintl
55CONFIGURE_ENV+= ac_cv_func_bind_textdomain_codeset=yes 55CONFIGURE_ENV+= ac_cv_func_bind_textdomain_codeset=yes
56.endif 56.endif
57 57
58.if ${OPSYS} == "Cygwin" || ${OPSYS} == "Darwin" || ${OPSYS} == "Interix" 58.if ${OPSYS} == "Cygwin" || ${OPSYS} == "Darwin" || ${OPSYS} == "Interix"
59PY_PLATNAME= ${LOWER_OPSYS} 59PY_PLATNAME= ${LOWER_OPSYS}
60USE_TOOLS+= gmake 60USE_TOOLS+= gmake
61.elif ${OPSYS} == "IRIX" 61.elif ${OPSYS} == "IRIX"
62PY_PLATNAME= ${LOWER_OPSYS:C/\..*//} 62PY_PLATNAME= ${LOWER_OPSYS:C/\..*//}
63.elif ${OPSYS} == "SunOS" 63.elif ${OPSYS} == "SunOS"
64PY_PLATNAME= sunos${OS_VERSION:C/\..*//} 64PY_PLATNAME= sunos${OS_VERSION:C/\..*//}
65.elif ${OPSYS} == "HPUX" 65.elif ${OPSYS} == "HPUX"
66PY_PLATNAME= hp-ux11 66PY_PLATNAME= hp-ux11
67.elif ${OPSYS} == "Linux" 67.elif ${OPSYS} == "Linux"
68PY_PLATNAME= linux2 68PY_PLATNAME= linux2
69.elif ${OS_VARIANT} == "SCOOSR5" 69.elif ${OS_VARIANT} == "SCOOSR5"
70PY_PLATNAME= sco_sv3 70PY_PLATNAME= sco_sv3
71.else 71.else
72PY_PLATNAME= ${LOWER_OPSYS}${OS_VERSION:C/\..*//} 72PY_PLATNAME= ${LOWER_OPSYS}${OS_VERSION:C/\..*//}
73.endif 73.endif
74PLIST_SUBST+= PY_PLATNAME=${PY_PLATNAME:Q} 74PLIST_SUBST+= PY_PLATNAME=${PY_PLATNAME:Q}
75 75
76.if !empty(LP64PLATFORMS:@.PLAT.@${MACHINE_PLATFORM:M${.PLAT.}}@) || \ 76.if !empty(LP64PLATFORMS:@.PLAT.@${MACHINE_PLATFORM:M${.PLAT.}}@) || \
77 (defined(ABI) && ${ABI} == "64") 77 (defined(ABI) && ${ABI} == "64")
78IS_64BIT_PLATFORM?= yes 78IS_64BIT_PLATFORM?= yes
79.else 79.else
80IS_64BIT_PLATFORM?= no 80IS_64BIT_PLATFORM?= no
81.endif 81.endif
82 82
83PLIST_VARS+= dl dll extra-so nis no-nis qt 83PLIST_VARS+= dl dll extra-so nis no-nis qt
84 84
85# the dl module isn't built for 64 bit archs 85# the dl module isn't built for 64 bit archs
86.if empty(IS_64BIT_PLATFORM:M[yY][eE][sS]) 86.if empty(IS_64BIT_PLATFORM:M[yY][eE][sS])
87PLIST.dl= yes 87PLIST.dl= yes
88.endif 88.endif
89 89
90# setup.py causes some modules to be built if the platform is *not* 64bit. 90# setup.py causes some modules to be built if the platform is *not* 64bit.
91.if !empty(IS_64BIT_PLATFORM:M[nN][oO]) 91.if !empty(IS_64BIT_PLATFORM:M[nN][oO])
92PLIST.extra-so= yes 92PLIST.extra-so= yes
93.endif 93.endif
94 94
95# For Xcode 5 we need to search the SDK path for headers, otherwise certain 95# For Xcode 5 we need to search the SDK path for headers, otherwise certain
96# modules will not be built. 96# modules will not be built.
97.if ${OPSYS} == "Darwin" 97.if ${OPSYS} == "Darwin"
98. if exists(${OSX_SDK_PATH}/usr/include) 98. if exists(${OSX_SDK_PATH}/usr/include)
99CFLAGS+= -I${OSX_SDK_PATH:Q}/usr/include 99CFLAGS+= -I${OSX_SDK_PATH:Q}/usr/include
100. endif 100. endif
101. if exists(${OSX_SDK_PATH}/System/Library/Frameworks/QuickTime.framework) 101. if exists(${OSX_SDK_PATH}/System/Library/Frameworks/QuickTime.framework)
102PLIST.qt= yes 102PLIST.qt= yes
103. endif 103. endif
104.endif 104.endif
105 105
106.if ${OPSYS} == "IRIX" 106.if ${OPSYS} == "IRIX"
 107# Assume that IRIX (and IRIX alone) does not support a libpython.so.
 108# Assume that 32-bit IRIX has NIS and 64-bit IRIX does not.
107. if ${ABI} == "64" 109. if ${ABI} == "64"
108PLIST.no-nis= yes 110PLIST.no-nis= yes
109. else 111. else
110PLIST.nis= yes 112PLIST.nis= yes
111. endif 113. endif
112.else 114.else
113PLIST.dll= yes 115PLIST.dll= yes
 116# Determine if lib-dynload/nis.so (PLIST.nis) or
 117# lib-dynload/nis-failed.so (PLIST.no-nis) will be built.
114. if ${OPSYS} == "MirBSD" || "${OS_VARIANT}" == "chromeos" 118. if ${OPSYS} == "MirBSD" || "${OS_VARIANT}" == "chromeos"
115# neither nis nor no-nis 119# neither nis nor no-nis
116. elif ${OPSYS} != "NetBSD" || exists(/usr/bin/ypcat) 120. elif ${OPSYS} != "NetBSD" || exists(/usr/bin/ypcat)
 121# \todo Explain the "!= NetBSD"; that seems to declare that any
 122# remaining system other than NetBSD will have NIS, even if ypcat is
 123# missing.
117PLIST.nis= yes 124PLIST.nis= yes
118. else 125. else
119PLIST.no-nis= yes 126PLIST.no-nis= yes
120. endif 127. endif
121.endif 128.endif
122 129
123# configure complains about buggy getaddrinfo() 130# configure complains about buggy getaddrinfo()
124CONFIGURE_ARGS.OSF1+= --disable-ipv6 131CONFIGURE_ARGS.OSF1+= --disable-ipv6
125 132
126PLIST_SUBST+= PY_VER_SUFFIX=${PY_VER_SUFFIX:Q} 133PLIST_SUBST+= PY_VER_SUFFIX=${PY_VER_SUFFIX:Q}
127 134
128TEST_TARGET= test 135TEST_TARGET= test
129INSTALL_TARGET= altinstall 136INSTALL_TARGET= altinstall
130 137
131REPLACE_INTERPRETER+= py27 138REPLACE_INTERPRETER+= py27
132REPLACE.py27.old= .*python[^ ]* 139REPLACE.py27.old= .*python[^ ]*
133REPLACE.py27.new= ${PREFIX}/bin/python${PY_VER_SUFFIX} 140REPLACE.py27.new= ${PREFIX}/bin/python${PY_VER_SUFFIX}
134REPLACE_FILES.py27= Lib/UserString.py 141REPLACE_FILES.py27= Lib/UserString.py
135REPLACE_FILES.py27+= Lib/base64.py 142REPLACE_FILES.py27+= Lib/base64.py
136REPLACE_FILES.py27+= Lib/cProfile.py 143REPLACE_FILES.py27+= Lib/cProfile.py
137REPLACE_FILES.py27+= Lib/cgi.py 144REPLACE_FILES.py27+= Lib/cgi.py
138REPLACE_FILES.py27+= Lib/encodings/rot_13.py 145REPLACE_FILES.py27+= Lib/encodings/rot_13.py
139REPLACE_FILES.py27+= Lib/idlelib/PyShell.py 146REPLACE_FILES.py27+= Lib/idlelib/PyShell.py
140REPLACE_FILES.py27+= Lib/keyword.py 147REPLACE_FILES.py27+= Lib/keyword.py
141REPLACE_FILES.py27+= Lib/lib2to3/pgen2/token.py 148REPLACE_FILES.py27+= Lib/lib2to3/pgen2/token.py
142REPLACE_FILES.py27+= Lib/lib2to3/tests/data/different_encoding.py 149REPLACE_FILES.py27+= Lib/lib2to3/tests/data/different_encoding.py
143REPLACE_FILES.py27+= Lib/lib2to3/tests/data/false_encoding.py 150REPLACE_FILES.py27+= Lib/lib2to3/tests/data/false_encoding.py
144REPLACE_FILES.py27+= Lib/lib2to3/tests/pytree_idempotency.py 151REPLACE_FILES.py27+= Lib/lib2to3/tests/pytree_idempotency.py
145REPLACE_FILES.py27+= Lib/mimify.py 152REPLACE_FILES.py27+= Lib/mimify.py
146REPLACE_FILES.py27+= Lib/pdb.py 153REPLACE_FILES.py27+= Lib/pdb.py
147REPLACE_FILES.py27+= Lib/plat-mac/appletrunner.py 154REPLACE_FILES.py27+= Lib/plat-mac/appletrunner.py
148REPLACE_FILES.py27+= Lib/plat-mac/bundlebuilder.py 155REPLACE_FILES.py27+= Lib/plat-mac/bundlebuilder.py
149REPLACE_FILES.py27+= Lib/platform.py 156REPLACE_FILES.py27+= Lib/platform.py
150REPLACE_FILES.py27+= Lib/profile.py 157REPLACE_FILES.py27+= Lib/profile.py
151REPLACE_FILES.py27+= Lib/pydoc.py 158REPLACE_FILES.py27+= Lib/pydoc.py
152REPLACE_FILES.py27+= Lib/quopri.py 159REPLACE_FILES.py27+= Lib/quopri.py
153REPLACE_FILES.py27+= Lib/smtpd.py 160REPLACE_FILES.py27+= Lib/smtpd.py
154REPLACE_FILES.py27+= Lib/smtplib.py 161REPLACE_FILES.py27+= Lib/smtplib.py
155REPLACE_FILES.py27+= Lib/symbol.py 162REPLACE_FILES.py27+= Lib/symbol.py
156REPLACE_FILES.py27+= Lib/tabnanny.py 163REPLACE_FILES.py27+= Lib/tabnanny.py
157REPLACE_FILES.py27+= Lib/test/bisect_cmd.py 164REPLACE_FILES.py27+= Lib/test/bisect_cmd.py
158REPLACE_FILES.py27+= Lib/test/curses_tests.py 165REPLACE_FILES.py27+= Lib/test/curses_tests.py
159REPLACE_FILES.py27+= Lib/test/re_tests.py 166REPLACE_FILES.py27+= Lib/test/re_tests.py
160REPLACE_FILES.py27+= Lib/test/pystone.py 167REPLACE_FILES.py27+= Lib/test/pystone.py
161REPLACE_FILES.py27+= Lib/test/regrtest.py 168REPLACE_FILES.py27+= Lib/test/regrtest.py
162REPLACE_FILES.py27+= Lib/timeit.py 169REPLACE_FILES.py27+= Lib/timeit.py
163REPLACE_FILES.py27+= Lib/trace.py 170REPLACE_FILES.py27+= Lib/trace.py
164REPLACE_FILES.py27+= Lib/uu.py 171REPLACE_FILES.py27+= Lib/uu.py
165REPLACE_FILES.py27+= Lib/webbrowser.py 172REPLACE_FILES.py27+= Lib/webbrowser.py
166 173
167SUBST_CLASSES+= libffi 174SUBST_CLASSES+= libffi
168SUBST_MESSAGE.libffi= Fixing libffi include path on Darwin. 175SUBST_MESSAGE.libffi= Fixing libffi include path on Darwin.
169SUBST_STAGE.libffi= pre-configure 176SUBST_STAGE.libffi= pre-configure
170SUBST_FILES.libffi= setup.py 177SUBST_FILES.libffi= setup.py
171SUBST_SED.libffi= -e 's,/usr/include/ffi,${BUILDLINK_PREFIX.libffi}/include,' 178SUBST_SED.libffi= -e 's,/usr/include/ffi,${BUILDLINK_PREFIX.libffi}/include,'
172 179
173# XXX: It might be needed to add manually more paths like ${PREFIX}/qt5/lib 180# XXX: It might be needed to add manually more paths like ${PREFIX}/qt5/lib
174# Test: python -c 'from ctypes.util import find_library; print(find_library("ffi"));' 181# Test: python -c 'from ctypes.util import find_library; print(find_library("ffi"));'
175SUBST_CLASSES+= findlib 182SUBST_CLASSES+= findlib
176SUBST_MESSAGE.findlib= Fixing find_library(). 183SUBST_MESSAGE.findlib= Fixing find_library().
177SUBST_STAGE.findlib= pre-configure 184SUBST_STAGE.findlib= pre-configure
178SUBST_FILES.findlib= Lib/ctypes/macholib/dyld.py 185SUBST_FILES.findlib= Lib/ctypes/macholib/dyld.py
179SUBST_FILES.findlib+= Lib/ctypes/util.py 186SUBST_FILES.findlib+= Lib/ctypes/util.py
180SUBST_FILES.findlib+= Lib/distutils/unixccompiler.py 187SUBST_FILES.findlib+= Lib/distutils/unixccompiler.py
181SUBST_SED.findlib= -e 's,/usr/local,${PREFIX},' 188SUBST_SED.findlib= -e 's,/usr/local,${PREFIX},'
182SUBST_SED.findlib+= -e 's!\(-Wl,-t -o\)!${COMPILER_RPATH_FLAG}${PREFIX}/lib -L${PREFIX}/lib \1!' 189SUBST_SED.findlib+= -e 's!\(-Wl,-t -o\)!${COMPILER_RPATH_FLAG}${PREFIX}/lib -L${PREFIX}/lib \1!'
183 190
184.include "options.mk" 191.include "options.mk"
185 192
186SUBST_CLASSES+= sslbase 193SUBST_CLASSES+= sslbase
187SUBST_MESSAGE.sslbase= Fixing find-file for openssl with SSLBASE. 194SUBST_MESSAGE.sslbase= Fixing find-file for openssl with SSLBASE.
188SUBST_STAGE.sslbase= pre-configure 195SUBST_STAGE.sslbase= pre-configure
189SUBST_FILES.sslbase= setup.py 196SUBST_FILES.sslbase= setup.py
190SUBST_VARS.sslbase= SSLBASE 197SUBST_VARS.sslbase= SSLBASE
191 198
192SUBST_CLASSES+= cacert 199SUBST_CLASSES+= cacert
193SUBST_MESSAGE.cacert= Configuring location of default CA certificate file. 200SUBST_MESSAGE.cacert= Configuring location of default CA certificate file.
194SUBST_STAGE.cacert= pre-configure 201SUBST_STAGE.cacert= pre-configure
195SUBST_FILES.cacert= Modules/_ssl.c 202SUBST_FILES.cacert= Modules/_ssl.c
196SUBST_VARS.cacert= PREFIX 203SUBST_VARS.cacert= PREFIX
197 204
198post-extract: 205post-extract:
199 ${LN} -s ${WRKSRC}/Lib/smtpd.py ${WRKSRC}/Tools/scripts/smtpd${PY_VER_SUFFIX}.py 206 ${LN} -s ${WRKSRC}/Lib/smtpd.py ${WRKSRC}/Tools/scripts/smtpd${PY_VER_SUFFIX}.py
200 ${MV} ${WRKSRC}/Tools/scripts/pydoc ${WRKSRC}/Tools/scripts/pydoc${PY_VER_SUFFIX} 207 ${MV} ${WRKSRC}/Tools/scripts/pydoc ${WRKSRC}/Tools/scripts/pydoc${PY_VER_SUFFIX}
201 ${MV} ${WRKSRC}/Tools/scripts/2to3 ${WRKSRC}/Tools/scripts/2to3-${PY_VER_SUFFIX} 208 ${MV} ${WRKSRC}/Tools/scripts/2to3 ${WRKSRC}/Tools/scripts/2to3-${PY_VER_SUFFIX}
202 209
203.if ${OPSYS} == "HPUX" 210.if ${OPSYS} == "HPUX"
204post-install: 211post-install:
205 ${LN} -fs ${DESTDIR}${PREFIX}/lib/libpython2.7.sl \ 212 ${LN} -fs ${DESTDIR}${PREFIX}/lib/libpython2.7.sl \
206 ${DESTDIR}${PREFIX}/lib/libpython2.7.sl.1.0 213 ${DESTDIR}${PREFIX}/lib/libpython2.7.sl.1.0
207.endif 214.endif
208 215
209.if ${OS_VARIANT} == "SCOOSR5" 216.if ${OS_VARIANT} == "SCOOSR5"
210# SCO OpenServer 5.0.7/3.2 has no socklen_t in system headers, but has in 217# SCO OpenServer 5.0.7/3.2 has no socklen_t in system headers, but has in
211# GNU pth's header. It should be used in this case. 218# GNU pth's header. It should be used in this case.
212CONFIGURE_ENV+= ac_cv_type_socklen_t=yes 219CONFIGURE_ENV+= ac_cv_type_socklen_t=yes
213.endif 220.endif
214 221
215BUILDLINK_DEPMETHOD.readline= build 222BUILDLINK_DEPMETHOD.readline= build
216 223
217.include "../../archivers/bzip2/buildlink3.mk" 224.include "../../archivers/bzip2/buildlink3.mk"
218.include "../../devel/gettext-lib/buildlink3.mk" 225.include "../../devel/gettext-lib/buildlink3.mk"
219.include "../../devel/libffi/buildlink3.mk" 226.include "../../devel/libffi/buildlink3.mk"
220.include "../../devel/readline/buildlink3.mk" 227.include "../../devel/readline/buildlink3.mk"
221.include "../../devel/zlib/buildlink3.mk" 228.include "../../devel/zlib/buildlink3.mk"
222.include "../../security/openssl/buildlink3.mk" 229.include "../../security/openssl/buildlink3.mk"
223.include "../../mk/bdb.buildlink3.mk" 230.include "../../mk/bdb.buildlink3.mk"
224.include "../../mk/dlopen.buildlink3.mk" 231.include "../../mk/dlopen.buildlink3.mk"
225.include "../../mk/bsd.pkg.mk" 232.include "../../mk/bsd.pkg.mk"