Zope still requires Python 2.4 to run. While it is no problem to
install Python 2.4 and Python 2.5 in parallel, some Python modules that
are needed by Zope only get built for Python 2.5.
For example, www/zope-ldapuserfolder set MODULES=www/zope and a
RUN_DEPENDS on databases/py-ldap. Of course the zope, py-ldap, and
zope-ldapuserfolder packages are build and the package tools will not
complain. _But_ py-ldap gets built using Python 2.5 and the other
two using Python 2.4 (as is needed by Zope). And then, when you
use the software you will notice that the py-ldap package installed
it's files into /usr/local/lib/python2.5/... whereas the other packages
installed the files under /usr/local/lib/python2.4.
The solution is surprisingly simple:
- Add a python2.4 PSEUDO_FLAVOR for databases/py-ldap. We choose to
alter the package name to py24-ldap so it does not conflict with
py-ldap (as flavors seem to conflict by default).
- Factor out Example code from py-ldap into a subpackage
py-ldap-examples.
- Have www/zope-ldapuserfolder depend on py24-ldap instead of py-ldap
We will have to use this scheme for some more packages, like database
adapters and such.
ok?
Index: databases/py-ldap/Makefile
===================================================================
RCS file: /cvs/ports/databases/py-ldap/Makefile,v
retrieving revision 1.15
diff -u -r1.15 Makefile
--- databases/py-ldap/Makefile 8 Oct 2007 08:22:39 -0000 1.15
+++ databases/py-ldap/Makefile 2 Nov 2007 15:26:53 -0000
@@ -1,12 +1,15 @@
# $OpenBSD: Makefile,v 1.15 2007/10/08 08:22:39 steven Exp $
-SHARED_ONLY= Yes
+SHARED_ONLY= Yes
-COMMENT= LDAP client API for Python
+COMMENT-main= LDAP client API for Python
+COMMENT-examples= example programs for the LDAP client API for Python
+
+V= 2.2.0
+DISTNAME= python-ldap-${V}
+PKGNAME-main= py-ldap-${V}p1
+FULLPKGNAME-examples= py-ldap-examples-${V}
-V= 2.2.0
-DISTNAME= python-ldap-${V}
-PKGNAME= py-ldap-${V}p0
CATEGORIES= databases
HOMEPAGE= http://python-ldap.sourceforge.net/
@@ -25,6 +28,16 @@
LIB_DEPENDS= ldap_r.>=7,lber.>=7::databases/openldap \
sasl2.>=2::security/cyrus-sasl2
+
+PSEUDO_FLAVORS= python2.4 # Needed for Zope, e.g.
+FLAVOR?=
+
+MULTI_PACKAGES= -main -examples
+
+.if ${FLAVOR:L:Mpython2.4}
+MODPY_VERSION= 2.4
+PKGNAME-main= py24-ldap-${V} # To avoid conflicts
+.endif
MODULES= lang/python
Index: databases/py-ldap/pkg/DESCR
===================================================================
RCS file: databases/py-ldap/pkg/DESCR
diff -N databases/py-ldap/pkg/DESCR
--- databases/py-ldap/pkg/DESCR 18 Dec 2004 14:28:35 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-python-ldap provides an object-oriented API to access LDAP
-directory servers from Python programs. Mainly it wraps the
-OpenLDAP 2.x libs for that purpose.
-
-Additionally the package contains modules for other LDAP-related
-stuff (e.g. processing LDIF, LDAPURLs, LDAPv3 sub-schema, etc.).
-
-Not included: Direct BER support
-
-Quick usage example:
- import ldap
- l = ldap.open("my_ldap_server.my_domain")
- l.simple_bind_s("","")
- l.search_s("o=My Organisation, c=AU", ldap.SCOPE_SUBTREE, "objectclass=*")
Index: databases/py-ldap/pkg/DESCR-examples
===================================================================
RCS file: databases/py-ldap/pkg/DESCR-examples
diff -N databases/py-ldap/pkg/DESCR-examples
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ databases/py-ldap/pkg/DESCR-examples 2 Nov 2007 15:26:53 -0000
@@ -0,0 +1,2 @@
+Example programs for the python-ldap API to access LDAP directory servers
+from Python programs.
Index: databases/py-ldap/pkg/DESCR-main
===================================================================
RCS file: databases/py-ldap/pkg/DESCR-main
diff -N databases/py-ldap/pkg/DESCR-main
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ databases/py-ldap/pkg/DESCR-main 2 Nov 2007 15:26:53 -0000
@@ -0,0 +1,14 @@
+python-ldap provides an object-oriented API to access LDAP
+directory servers from Python programs. Mainly it wraps the
+OpenLDAP 2.x libs for that purpose.
+
+Additionally the package contains modules for other LDAP-related
+stuff (e.g. processing LDIF, LDAPURLs, LDAPv3 sub-schema, etc.).
+
+Not included: Direct BER support
+
+Quick usage example:
+ import ldap
+ l = ldap.open("my_ldap_server.my_domain")
+ l.simple_bind_s("","")
+ l.search_s("o=My Organisation, c=AU", ldap.SCOPE_SUBTREE, "objectclass=*")
Index: databases/py-ldap/pkg/PLIST
===================================================================
RCS file: databases/py-ldap/pkg/PLIST
diff -N databases/py-ldap/pkg/PLIST
--- databases/py-ldap/pkg/PLIST 16 Nov 2006 10:09:56 -0000 1.8
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,76 +0,0 @@
[EMAIL PROTECTED] $OpenBSD: PLIST,v 1.8 2006/11/16 10:09:56 mbalmer Exp $
-lib/python${MODPY_VERSION}/site-packages/_ldap.so
-lib/python${MODPY_VERSION}/site-packages/dsml.py
-lib/python${MODPY_VERSION}/site-packages/dsml.pyc
-lib/python${MODPY_VERSION}/site-packages/dsml.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/
-lib/python${MODPY_VERSION}/site-packages/ldap/__init__.py
-lib/python${MODPY_VERSION}/site-packages/ldap/__init__.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/__init__.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/async.py
-lib/python${MODPY_VERSION}/site-packages/ldap/async.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/async.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/cidict.py
-lib/python${MODPY_VERSION}/site-packages/ldap/cidict.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/cidict.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/controls.py
-lib/python${MODPY_VERSION}/site-packages/ldap/controls.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/controls.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/dn.py
-lib/python${MODPY_VERSION}/site-packages/ldap/dn.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/dn.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/filter.py
-lib/python${MODPY_VERSION}/site-packages/ldap/filter.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/filter.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/functions.py
-lib/python${MODPY_VERSION}/site-packages/ldap/functions.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/functions.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/ldapobject.py
-lib/python${MODPY_VERSION}/site-packages/ldap/ldapobject.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/ldapobject.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/modlist.py
-lib/python${MODPY_VERSION}/site-packages/ldap/modlist.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/modlist.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/sasl.py
-lib/python${MODPY_VERSION}/site-packages/ldap/sasl.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/sasl.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/__init__.py
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/__init__.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/__init__.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/models.py
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/models.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/models.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/subentry.py
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/subentry.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/subentry.pyo
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/tokenizer.py
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/tokenizer.pyc
-lib/python${MODPY_VERSION}/site-packages/ldap/schema/tokenizer.pyo
-lib/python${MODPY_VERSION}/site-packages/ldapurl.py
-lib/python${MODPY_VERSION}/site-packages/ldapurl.pyc
-lib/python${MODPY_VERSION}/site-packages/ldapurl.pyo
-lib/python${MODPY_VERSION}/site-packages/ldif.py
-lib/python${MODPY_VERSION}/site-packages/ldif.pyc
-lib/python${MODPY_VERSION}/site-packages/ldif.pyo
-share/examples/py-ldap/
-share/examples/py-ldap/Demo/
-share/examples/py-ldap/Demo/Lib/
-share/examples/py-ldap/Demo/Lib/ldap/
-share/examples/py-ldap/Demo/Lib/ldap/res/
-share/examples/py-ldap/Demo/Lib/ldapurl/
-share/examples/py-ldap/Demo/Lib/ldapurl/urlsearch.py
-share/examples/py-ldap/Demo/Lib/ldif/
-share/examples/py-ldap/Demo/Lib/ldif/ldifcopy.py
-share/examples/py-ldap/Demo/initialize.py
-share/examples/py-ldap/Demo/ldapcontrols.py
-share/examples/py-ldap/Demo/options.py
-share/examples/py-ldap/Demo/passwd_ext_op.py
-share/examples/py-ldap/Demo/pickle_ldapobject.py
-share/examples/py-ldap/Demo/reconnect.py
-share/examples/py-ldap/Demo/rename.py
-share/examples/py-ldap/Demo/sasl_bind.py
-share/examples/py-ldap/Demo/schema.py
-share/examples/py-ldap/Demo/schema_tree.py
-share/examples/py-ldap/Demo/simple.py
-share/examples/py-ldap/Demo/simplebrowse.py
Index: databases/py-ldap/pkg/PLIST-examples
===================================================================
RCS file: databases/py-ldap/pkg/PLIST-examples
diff -N databases/py-ldap/pkg/PLIST-examples
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ databases/py-ldap/pkg/PLIST-examples 2 Nov 2007 15:26:53 -0000
@@ -0,0 +1,22 @@
[EMAIL PROTECTED] $OpenBSD: PLIST,v 1.8 2006/11/16 10:09:56 mbalmer Exp $
+share/examples/py-ldap/
+share/examples/py-ldap/Demo/
+share/examples/py-ldap/Demo/Lib/
+share/examples/py-ldap/Demo/Lib/ldap/
+share/examples/py-ldap/Demo/Lib/ldap/res/
+share/examples/py-ldap/Demo/Lib/ldapurl/
+share/examples/py-ldap/Demo/Lib/ldapurl/urlsearch.py
+share/examples/py-ldap/Demo/Lib/ldif/
+share/examples/py-ldap/Demo/Lib/ldif/ldifcopy.py
+share/examples/py-ldap/Demo/initialize.py
+share/examples/py-ldap/Demo/ldapcontrols.py
+share/examples/py-ldap/Demo/options.py
+share/examples/py-ldap/Demo/passwd_ext_op.py
+share/examples/py-ldap/Demo/pickle_ldapobject.py
+share/examples/py-ldap/Demo/reconnect.py
+share/examples/py-ldap/Demo/rename.py
+share/examples/py-ldap/Demo/sasl_bind.py
+share/examples/py-ldap/Demo/schema.py
+share/examples/py-ldap/Demo/schema_tree.py
+share/examples/py-ldap/Demo/simple.py
+share/examples/py-ldap/Demo/simplebrowse.py
Index: databases/py-ldap/pkg/PLIST-main
===================================================================
RCS file: databases/py-ldap/pkg/PLIST-main
diff -N databases/py-ldap/pkg/PLIST-main
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ databases/py-ldap/pkg/PLIST-main 2 Nov 2007 15:26:53 -0000
@@ -0,0 +1,55 @@
[EMAIL PROTECTED] $OpenBSD: PLIST,v 1.8 2006/11/16 10:09:56 mbalmer Exp $
+lib/python${MODPY_VERSION}/site-packages/_ldap.so
+lib/python${MODPY_VERSION}/site-packages/dsml.py
+lib/python${MODPY_VERSION}/site-packages/dsml.pyc
+lib/python${MODPY_VERSION}/site-packages/dsml.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/
+lib/python${MODPY_VERSION}/site-packages/ldap/__init__.py
+lib/python${MODPY_VERSION}/site-packages/ldap/__init__.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/__init__.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/async.py
+lib/python${MODPY_VERSION}/site-packages/ldap/async.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/async.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/cidict.py
+lib/python${MODPY_VERSION}/site-packages/ldap/cidict.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/cidict.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/controls.py
+lib/python${MODPY_VERSION}/site-packages/ldap/controls.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/controls.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/dn.py
+lib/python${MODPY_VERSION}/site-packages/ldap/dn.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/dn.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/filter.py
+lib/python${MODPY_VERSION}/site-packages/ldap/filter.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/filter.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/functions.py
+lib/python${MODPY_VERSION}/site-packages/ldap/functions.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/functions.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/ldapobject.py
+lib/python${MODPY_VERSION}/site-packages/ldap/ldapobject.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/ldapobject.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/modlist.py
+lib/python${MODPY_VERSION}/site-packages/ldap/modlist.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/modlist.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/sasl.py
+lib/python${MODPY_VERSION}/site-packages/ldap/sasl.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/sasl.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/__init__.py
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/__init__.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/__init__.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/models.py
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/models.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/models.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/subentry.py
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/subentry.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/subentry.pyo
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/tokenizer.py
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/tokenizer.pyc
+lib/python${MODPY_VERSION}/site-packages/ldap/schema/tokenizer.pyo
+lib/python${MODPY_VERSION}/site-packages/ldapurl.py
+lib/python${MODPY_VERSION}/site-packages/ldapurl.pyc
+lib/python${MODPY_VERSION}/site-packages/ldapurl.pyo
+lib/python${MODPY_VERSION}/site-packages/ldif.py
+lib/python${MODPY_VERSION}/site-packages/ldif.pyc
+lib/python${MODPY_VERSION}/site-packages/ldif.pyo
Index: www/zope-ldapuserfolder/Makefile
===================================================================
RCS file: /cvs/ports/www/zope-ldapuserfolder/Makefile,v
retrieving revision 1.4
diff -u -r1.4 Makefile
--- www/zope-ldapuserfolder/Makefile 15 Sep 2007 20:38:27 -0000 1.4
+++ www/zope-ldapuserfolder/Makefile 2 Nov 2007 15:26:53 -0000
@@ -21,7 +21,7 @@
MODULES= zope
-RUN_DEPENDS= :py-ldap-*:databases/py-ldap
+RUN_DEPENDS= :py24-ldap-*:databases/py-ldap,python2.4
WRKDIST= ${WRKDIR}/LDAPUserFolder