9f597d0f93
Because python won't even try to build it. You only see nis_failed.so if there is an error building it, when it wanted to build it, and that should be fixed accordingly. In a nutshell, if the yp headers are installed, python will build the nis module, otherwise it won't. On netbsd systems at least, if you have the yp headers installed and subsequently re-install over the top with MKYP=no you get into the state where the headers are installed, but the functions are no longer in libc. This is an error with *your* system - either rebuild with MKYP=yes OR remove the yp headers from include/rpc and include/rpcsvc. Follow on fix for PR pkg/53673.
194 lines
6.4 KiB
Makefile
194 lines
6.4 KiB
Makefile
# $NetBSD: Makefile,v 1.18 2019/04/25 15:59:54 roy Exp $
|
|
|
|
.include "dist.mk"
|
|
|
|
PKGNAME= python36-${PY_DISTVERSION}
|
|
PKGREVISION= 1
|
|
CATEGORIES= lang python
|
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
|
HOMEPAGE= https://www.python.org/
|
|
COMMENT= Interpreted, interactive, object-oriented programming language
|
|
LICENSE= python-software-foundation
|
|
|
|
CONFLICTS+= python-[0-9]*
|
|
|
|
PLIST_AWK= -f ${PKGSRCDIR}/lang/python/plist-python.awk
|
|
PLIST_AWK_ENV+= PYVERS=36
|
|
PRINT_PLIST_AWK+= /^[^@]/ && /[^\/]+\.pyc$$/ {
|
|
PRINT_PLIST_AWK+= sub(/__pycache__\//, "")
|
|
PRINT_PLIST_AWK+= sub(/\.cpython-36/, "")}
|
|
PRINT_PLIST_AWK+= /^[^@]/ && /[^\/]+\.opt-1.pyc$$/ {
|
|
PRINT_PLIST_AWK+= sub(/.opt-[12].pyc$$/, ".pyo")}
|
|
|
|
USE_LANGUAGES= c c++
|
|
GNU_CONFIGURE= yes
|
|
CONFIGURE_ARGS+= --enable-shared
|
|
CONFIGURE_ARGS+= --with-system-ffi
|
|
CONFIGURE_ARGS+= --with-threads
|
|
CONFIGURE_ARGS+= --without-ensurepip
|
|
CONFIGURE_ARGS+= --without-pymalloc
|
|
CONFIGURE_ENV+= OPT=${CFLAGS:M*:Q}
|
|
CONFIGURE_ENV+= ac_cv_path_mkdir=${TOOLS_PATH.mkdir}
|
|
PKGCONFIG_OVERRIDE+= Misc/python.pc.in
|
|
|
|
PTHREAD_OPTS+= require
|
|
.include "../../mk/pthread.buildlink3.mk"
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
# http://bugs.python.org/issue13241
|
|
.if !empty(MACHINE_PLATFORM:MDarwin-10.*)
|
|
PKGSRC_COMPILER= clang
|
|
PKG_CC= clang
|
|
PKG_CXX= clang++
|
|
.endif
|
|
|
|
# fdatasync()
|
|
LIBS.SunOS+= -lrt
|
|
|
|
PY_VER_SUFFIX= 3.6
|
|
|
|
.if ${OPSYS} == "Darwin"
|
|
PY_PLATNAME= ${LOWER_OPSYS}
|
|
USE_TOOLS+= gmake
|
|
.elif ${OPSYS} == "IRIX"
|
|
PY_PLATNAME= ${LOWER_OPSYS:C/\..*//}
|
|
.elif ${OPSYS} == "SunOS"
|
|
PY_PLATNAME= sunos${OS_VERSION:C/\..*//}
|
|
.elif ${OPSYS} == "HPUX"
|
|
PY_PLATNAME= hp-ux11
|
|
.elif ${OPSYS} == "Linux"
|
|
PY_PLATNAME= linux
|
|
.else
|
|
PY_PLATNAME= ${LOWER_OPSYS}${OS_VERSION:C/\..*//}
|
|
.endif
|
|
PLIST_SUBST+= PY_PLATNAME=${PY_PLATNAME:Q}
|
|
|
|
# ossaudiodev is only available on x86 for the following platforms
|
|
PLIST_VARS+= oss
|
|
.if (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64") && \
|
|
(${PY_PLATNAME} == "linux" || ${OPSYS} == "FreeBSD")
|
|
PLIST.oss= yes
|
|
.endif
|
|
|
|
# For Xcode 5 and up, we need to search the SDK path for headers, otherwise
|
|
# certain modules will not be built.
|
|
.if ${OPSYS} == "Darwin" && exists(${OSX_SDK_PATH:Q}/usr/include)
|
|
CFLAGS+= -I${OSX_SDK_PATH:Q}/usr/include
|
|
.endif
|
|
|
|
PLIST_VARS+= nis
|
|
.for incdir in ${_OPSYS_INCLUDE_DIRS}
|
|
. if (exists(${incdir}/rpc/rpc.h) || exists(${incdir}/tirpc/rpc/rpc.h))
|
|
HAVE_RPC_H= yes
|
|
. endif
|
|
. if (exists(${incdir}/rpcsvc/yp_prot.h) || exists(${incdir}/nsl/rpcsvc/yp_prot.h))
|
|
HAVE_YP_PROT_H= yes
|
|
. endif
|
|
.endfor
|
|
.if (${HAVE_RPC_H:Uno} == yes && ${HAVE_YP_PROT_H:Uno} == yes)
|
|
PLIST.nis= yes
|
|
.endif
|
|
|
|
PLIST_SUBST+= PY_VER_SUFFIX=${PY_VER_SUFFIX:Q}
|
|
|
|
PRINT_PLIST_AWK+= { gsub(/${PY_PLATNAME}/, "$${PY_PLATNAME}") }
|
|
PRINT_PLIST_AWK+= { gsub(/python${PY_VER_SUFFIX}/, \
|
|
"python$${PY_VER_SUFFIX}") }
|
|
|
|
TEST_TARGET= test
|
|
INSTALL_TARGET= altinstall
|
|
|
|
REPLACE_INTERPRETER+= python
|
|
REPLACE.python.old= .*python[^ ]*
|
|
REPLACE.python.new= ${PREFIX}/bin/python${PY_VER_SUFFIX}
|
|
REPLACE_FILES.python= Lib/base64.py
|
|
REPLACE_FILES.python+= Lib/cProfile.py
|
|
REPLACE_FILES.python+= Lib/cgi.py
|
|
REPLACE_FILES.python+= Lib/encodings/rot_13.py
|
|
REPLACE_FILES.python+= Lib/idlelib/pyshell.py
|
|
REPLACE_FILES.python+= Lib/keyword.py
|
|
REPLACE_FILES.python+= Lib/lib2to3/pgen2/token.py
|
|
REPLACE_FILES.python+= Lib/lib2to3/tests/data/different_encoding.py
|
|
REPLACE_FILES.python+= Lib/lib2to3/tests/data/false_encoding.py
|
|
REPLACE_FILES.python+= Lib/lib2to3/tests/pytree_idempotency.py
|
|
REPLACE_FILES.python+= Lib/pdb.py
|
|
REPLACE_FILES.python+= Lib/platform.py
|
|
REPLACE_FILES.python+= Lib/profile.py
|
|
REPLACE_FILES.python+= Lib/pydoc.py
|
|
REPLACE_FILES.python+= Lib/quopri.py
|
|
REPLACE_FILES.python+= Lib/smtpd.py
|
|
REPLACE_FILES.python+= Lib/smtplib.py
|
|
REPLACE_FILES.python+= Lib/symbol.py
|
|
REPLACE_FILES.python+= Lib/tabnanny.py
|
|
REPLACE_FILES.python+= Lib/tarfile.py
|
|
REPLACE_FILES.python+= Lib/test/bisect.py
|
|
REPLACE_FILES.python+= Lib/test/crashers/recursive_call.py
|
|
REPLACE_FILES.python+= Lib/test/curses_tests.py
|
|
REPLACE_FILES.python+= Lib/test/pystone.py
|
|
REPLACE_FILES.python+= Lib/test/re_tests.py
|
|
REPLACE_FILES.python+= Lib/test/regrtest.py
|
|
REPLACE_FILES.python+= Lib/timeit.py
|
|
REPLACE_FILES.python+= Lib/trace.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/__main__.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/bytedesign.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/clock.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/forest.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/fractalcurves.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/lindenmayer.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/minimal_hanoi.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/paint.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/peace.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/penrose.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/planet_and_moon.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/sorting_animate.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/tree.py
|
|
REPLACE_FILES.python+= Lib/turtledemo/yinyang.py
|
|
REPLACE_FILES.python+= Lib/uu.py
|
|
REPLACE_FILES.python+= Lib/webbrowser.py
|
|
|
|
# XXX: It might be needed to add manually more paths like ${PREFIX}/qt5/lib
|
|
# Test: python -c 'from ctypes.util import find_library; print(find_library("ffi"));'
|
|
SUBST_CLASSES+= findlib
|
|
SUBST_MESSAGE.findlib= Fixing find_library().
|
|
SUBST_STAGE.findlib= pre-configure
|
|
SUBST_FILES.findlib= Lib/ctypes/macholib/dyld.py
|
|
SUBST_FILES.findlib+= Lib/ctypes/util.py
|
|
SUBST_FILES.findlib+= Lib/distutils/unixccompiler.py
|
|
SUBST_SED.findlib= -e 's,/usr/local,${PREFIX},'
|
|
SUBST_SED.findlib+= -e "s!\('-Wl,-t'\)!'${COMPILER_RPATH_FLAG}${PREFIX}/lib', '-L${PREFIX}/lib', \1!"
|
|
|
|
.include "options.mk"
|
|
|
|
SUBST_CLASSES+= sslbase
|
|
SUBST_MESSAGE.sslbase= Fixing OpenSSL base directory to find header file.
|
|
SUBST_STAGE.sslbase= pre-configure
|
|
SUBST_FILES.sslbase= setup.py
|
|
SUBST_VARS.sslbase= SSLBASE
|
|
|
|
CHECK_INTERPRETER_SKIP= lib/python${PY_VER_SUFFIX}/venv/scripts/posix/pydoc
|
|
|
|
# Avoid error: Cannot generate ./Include/opcode.h, python not found !
|
|
post-configure:
|
|
touch ${WRKSRC}/Include/opcode.h
|
|
|
|
.if ${OPSYS} == "HPUX"
|
|
post-install:
|
|
${LN} -fs ${DESTDIR}${PREFIX}/lib/libpython3.6.sl \
|
|
${DESTDIR}${PREFIX}/lib/libpython3.6.sl.1.0
|
|
.endif
|
|
|
|
BUILDLINK_DEPMETHOD.readline= build
|
|
|
|
.include "../../archivers/bzip2/buildlink3.mk"
|
|
.include "../../archivers/xz/buildlink3.mk"
|
|
.include "../../devel/gettext-lib/buildlink3.mk"
|
|
.include "../../devel/libffi/buildlink3.mk"
|
|
.include "../../devel/readline/buildlink3.mk"
|
|
.include "../../devel/zlib/buildlink3.mk"
|
|
.include "../../security/openssl/buildlink3.mk"
|
|
.include "../../mk/bdb.buildlink3.mk"
|
|
.include "../../mk/dlopen.buildlink3.mk"
|
|
.include "../../mk/oss.buildlink3.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|