Hi,

  New day new diff. Move things to WRKDIR to avoid warnings during plist
generation reported by r...@.
  While I was here also change how bad eggs are handled to avoid warnings
and to allow make clean to run as a regular user. Tested with py-urwid,
py-cheetah and py-distutils-extra.
  Comments? OK to individual pieces or the whole welcome.

  f.-

Index: python.port.mk
===================================================================
RCS file: /cvs/ports/lang/python/python.port.mk,v
retrieving revision 1.36
diff -u -r1.36 python.port.mk
--- python.port.mk      30 Aug 2010 16:35:02 -0000      1.36
+++ python.port.mk      15 Sep 2010 09:10:44 -0000
@@ -17,6 +17,12 @@
 .endif
 MODPYSPEC = python-${MODPY_VSPEC}
 
+.if ${MODPY_VERSION} < 2.6
+MODPY_JSON =           ::devel/py-simplejson
+.else
+MODPY_JSON =
+.endif
+
 MODPY_RUN_DEPENDS=     :${MODPYSPEC}:lang/python/${MODPY_VERSION}
 MODPY_LIB_DEPENDS=     
python${MODPY_VERSION}:${MODPYSPEC}:lang/python/${MODPY_VERSION}
 _MODPY_BUILD_DEPENDS=  :${MODPYSPEC}:lang/python/${MODPY_VERSION}
@@ -31,6 +37,7 @@
 RUN_DEPENDS+=          ${MODPY_RUN_DEPENDS}
 .endif
 
+MODPY_PRE_BUILD_STEPS = @:
 .if defined(MODPY_SETUPTOOLS) && ${MODPY_SETUPTOOLS:U} == YES
 # The setuptools module provides a package locator (site.py) that is
 # required at runtime for the pkg_resources stuff to work
@@ -39,6 +46,20 @@
 BUILD_DEPENDS+=                ${MODPY_SETUPUTILS_DEPEND}
 # The setuptools uses test target
 REGRESS_TARGET?=       test
+_MODPY_USERBASE =
+.else
+# Try to detect the case where a port will build regardless of setuptools
+# but the final plist will be different if it's present.
+_MODPY_SETUPTOOLS_FAKE_DIR =   \
+       ${WRKDIR}/lib/python${MODPY_VERSION}/site-packages/setuptools
+MODPY_PRE_BUILD_STEPS +=       \
+       ;mkdir -p ${_MODPY_SETUPTOOLS_FAKE_DIR} \
+       ;exec >${_MODPY_SETUPTOOLS_FAKE_DIR}/__init__.py \
+       ;echo 'def setup(*args, **kwargs):' \
+       ;echo '    msg = "OpenBSD ports: MODPY_SETUPTOOLS = Yes is required"' \
+       ;echo '    raise Exception(msg)' \
+       ;echo 'Extension = Feature = find_packages = setup'
+_MODPY_USERBASE =      ${WRKDIR}
 .endif
 
 .if !defined(NO_SHARED_LIBS) || ${NO_SHARED_LIBS:U} != YES
@@ -50,12 +71,9 @@
 MODPY_LIBDIR=          ${LOCALBASE}/lib/python${MODPY_VERSION}
 MODPY_SITEPKG=         ${MODPY_LIBDIR}/site-packages
 
-MODPY_POST_BUILD_BAD_EGGS = @:
-MODPY_PRE_INSTALL_BAD_EGGS = @:
 .if defined(MODPY_BADEGGS)
 .  for egg in ${MODPY_BADEGGS}
-MODPY_POST_BUILD_BAD_EGGS += ;ln -sf ${WRKINST}/${egg}.egg-info 
${WRKBUILD}/${egg}.egg-info
-MODPY_PRE_INSTALL_BAD_EGGS += ;mkdir -p ${WRKINST}/${egg}.egg-info
+MODPY_PRE_BUILD_STEPS += ;mkdir -p ${WRKBUILD}/${egg}.egg-info
 .  endfor
 .endif
 
@@ -75,7 +93,7 @@
                                --root=${DESTDIR}
 .endif
 
-MAKE_ENV+=     CC=${CC}
+MAKE_ENV+=     CC=${CC} PYTHONUSERBASE=${_MODPY_USERBASE}
 CONFIGURE_ENV+=        PYTHON="${MODPY_BIN}"
 
 _MODPY_CMD=    @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
@@ -87,14 +105,13 @@
 .if empty(CONFIGURE_STYLE)
 .  if !target(do-build)
 do-build:
+       ${MODPY_PRE_BUILD_STEPS}
        ${_MODPY_CMD} ${MODPY_DISTUTILS_BUILD} ${MODPY_DISTUTILS_BUILDARGS}
-       ${MODPY_POST_BUILD_BAD_EGGS}
 .  endif
 
 # extra documentation or scripts should be installed via post-install
 .  if !target(do-install)
 do-install:
-       ${MODPY_PRE_INSTALL_BAD_EGGS}
        ${_MODPY_CMD} ${MODPY_DISTUTILS_BUILD} ${MODPY_DISTUTILS_BUILDARGS} \
                ${MODPY_DISTUTILS_INSTALL} ${MODPY_DISTUTILS_INSTALLARGS}
 .  endif

Reply via email to