Index: bsd.python.mk =================================================================== --- bsd.python.mk (revision 332408) +++ bsd.python.mk (working copy) @@ -192,14 +192,6 @@ # PYEASYINSTALL_CMD - Full file path to easy_install command. # default: ${LOCALBASE}/bin/easy_install-${PYTHON_VER} # -# PYEASYINSTALL_INSTALLARGS -# - Arguments to easy_install command for egg installation. -# default: -q -N -S ${PYTHON_SITELIBDIR} ${PYDISTUTILS_PKGNAME}==${PYDISTUTILS_PKGVERSION} -# -# PYEASYINSTALL_UNINSTALLARGS -# - Arguments to easy_install command for egg uninstallation. -# default: -q -m -S ${PYTHON_SITELIBDIR} ${PYDISTUTILS_PKGNAME}==${PYDISTUTILS_PKGVERSION} -# # USE_TWISTED - If this option is just yes then build and run # the dependence to twistedCore is added. Alternatively # here can be listed specific components of twisted @@ -445,6 +437,14 @@ BUILD_DEPENDS+= ${PYEASYINSTALL_CMD}:${PORTSDIR}/devel/py-distribute RUN_DEPENDS+= ${PYEASYINSTALL_CMD}:${PORTSDIR}/devel/py-distribute +.if !defined(NO_STAGE) +PYEASYINSTALL_BINDIR?= ${STAGEDIR}${PREFIX}/bin +PYEASYINSTALL_SITELIBDIR?= ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} +.else +PYEASYINSTALL_BINDIR?= ${PREFIX}/bin +PYEASYINSTALL_SITELIBDIR?= ${PYTHONPREFIX_SITELIBDIR} +.endif + PYDISTUTILS_BUILD_TARGET?= bdist_egg PYDISTUTILS_INSTALL_TARGET?= easy_install PYDISTUTILS_INSTALLARGS?= -O 1 -N -S ${PYTHON_SITELIBDIR} \ @@ -451,7 +451,7 @@ -d ${PYEASYINSTALL_SITELIBDIR} \ -s ${PYEASYINSTALL_BINDIR} \ ${WRKSRC}/dist/${PYEASYINSTALL_EGG} -.if ${PREFIX} != ${LOCALBASE} +.if ${PREFIX} != ${LOCALBASE} || !defined(NO_STAGE) MAKE_ENV+= PYTHONPATH=${PYEASYINSTALL_SITELIBDIR} .endif @@ -461,16 +461,6 @@ .endif PYEASYINSTALL_EGG?= ${PYDISTUTILS_PKGNAME:C/[^A-Za-z0-9.]+/_/g}-${PYDISTUTILS_PKGVERSION:C/[^A-Za-z0-9.]+/_/g}-py${PYTHON_VER}${PYEASYINSTALL_OSARCH}.egg PYEASYINSTALL_CMD?= ${LOCALBASE}/bin/easy_install-${PYTHON_VER} -PYEASYINSTALL_BINDIR?= ${PREFIX}/bin -PYEASYINSTALL_SITELIBDIR?= ${PYTHONPREFIX_SITELIBDIR} -PYEASYINSTALL_INSTALLARGS?= -q -N -S ${PYTHON_SITELIBDIR} \ - -d ${PYEASYINSTALL_SITELIBDIR} \ - -s ${PYEASYINSTALL_BINDIR} \ - ${PYDISTUTILS_PKGNAME}==${PYDISTUTILS_PKGVERSION} -PYEASYINSTALL_UNINSTALLARGS?= -q -N -m -S ${PYTHON_SITELIBDIR} \ - -d ${PYEASYINSTALL_SITELIBDIR} \ - -s ${PYEASYINSTALL_BINDIR} \ - ${PYDISTUTILS_PKGNAME}==${PYDISTUTILS_PKGVERSION} PLIST_SUB+= PYEASYINSTALL_EGG=${PYEASYINSTALL_EGG} @@ -483,10 +473,10 @@ @# Easiest to fake pyeasyinstall, or it complains about paths @${ECHO_CMD} "@unexec ${REINPLACE_CMD} -i '' \ -e '\,^\./${PYEASYINSTALL_EGG}$$,d' \ - ${PYEASYINSTALL_SITELIBDIR}/easy-install.pth" \ + ${PYEASYINSTALL_SITELIBDIR:S,^${STAGEDIR},,}/easy-install.pth" \ >> ${TMPPLIST} @${ECHO_CMD} "@exec ${PRINTF} '1a\n./${PYEASYINSTALL_EGG}\n.\nw\nq\n' | \ - /bin/ed ${PYEASYINSTALL_SITELIBDIR}/easy-install.pth" \ + /bin/ed ${PYEASYINSTALL_SITELIBDIR:S,^${STAGEDIR},,}/easy-install.pth" \ >> ${TMPPLIST} .endif # defined(USE_PYDISTUTILS) && ${USE_PYDISTUTILS} == "easy_install" @@ -494,8 +484,8 @@ PYSETUP?= setup.py PYDISTUTILS_CONFIGUREARGS?= PYDISTUTILS_BUILDARGS?= -PYDISTUTILS_INSTALLARGS?= -c -O1 --prefix=${PREFIX} -.if !defined(NO_STAGE) +PYDISTUTILS_INSTALLARGS?= --prefix=${PREFIX} +.if !defined(NO_STAGE) && defined(USE_PYDISTUTILS) && ${USE_PYDISTUTILS} != "easy_install" PYDISTUTILS_INSTALLARGS+= --root=${STAGEDIR} .endif PYDISTUTILS_PKGNAME?= ${PORTNAME} @@ -519,6 +509,12 @@ PYDISTUTILS_INSTALLARGS:= --record ${_PYTHONPKGLIST} \ ${PYDISTUTILS_INSTALLARGS} +.if !defined(NO_STAGE) && ${USE_PYDISTUTILS} == "easy_install" +_SPREFIX= ${STAGEDIR}${PREFIX} +.else +_SPREFIX= ${PREFIX} +.endif + _RELSITELIBDIR= ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} _RELLIBDIR= ${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;} @@ -528,10 +524,10 @@ ${SED} '/^\.$$/d' > ${WRKDIR}/.localmtree @${ECHO_CMD} "${_RELSITELIBDIR}" >> ${WRKDIR}/.localmtree @${ECHO_CMD} "${_RELLIBDIR}" >> ${WRKDIR}/.localmtree - @${SED} -e 's|^${PREFIX}/||' \ + @${SED} -e 's|^${_SPREFIX}/||' \ -e 's|^\(man/man[0-9]\)/\(.*\.[0-9]\)$$|\1/\2${MANEXT}|' \ ${_PYTHONPKGLIST} | ${SORT} >> ${TMPPLIST} - @${SED} -e 's|^${PREFIX}/\(.*\)/\(.*\)|\1|' ${_PYTHONPKGLIST} | \ + @${SED} -e 's|^${_SPREFIX}/\(.*\)/\(.*\)|\1|' ${_PYTHONPKGLIST} | \ ${AWK} '{ num = split($$0, a, "/"); res=""; \ for(i = 1; i <= num; ++i) { \ if (i == 1) res = a[i]; \ @@ -720,7 +716,17 @@ .if !target(do-install) do-install: @(cd ${INSTALL_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYSETUP} ${PYDISTUTILS_INSTALL_TARGET} ${PYDISTUTILS_INSTALLARGS}) +# easy_install will byte-compile using the staged path, recompile +.if !defined(NO_STAGE) && defined(USE_PYDISTUTILS) && ${USE_PYDISTUTILS} == "easy_install" + (cd ${STAGEDIR}${PREFIX} && \ + ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ + -d ${PYTHONPREFIX_SITELIBDIR} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} && \ + ${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py \ + -d ${PYTHONPREFIX_SITELIBDIR} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;}) + @${RM} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/site.py* + @${RM} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/easy-install.pth* .endif +.endif .if defined(PYEASYINSTALL_ARCHDEP) .if !target(easyinstall-setopt)