= Python.framework transition = See the [browser:branches/python-frameworks] branch. == Build python{24,25,30} ports as frameworks == (into ${prefix}/Library/Frameworks/Python.framework/Versions/{2.4,2.5,3.0}/) * Keep it as much similar to the default Python.framework for easier maintenance * Add the following symlinks: {{{ ${prefix}/lib/pythonXX -> ${prefix}/Library/Frameworks/Python.framework/Versions/XX/lib/pythonXX ${prefix}/include/pythonXX -> ${prefix}/Library/Frameworks/Python.framework/Versions/XX/include/pythonXX }}} == Further transition work == === python24 === python24 is already a framework installation, but should be changed to match the scheme from above. Maybe py-* requires the same transition as described for py25-* ports below, we will have to try out. === python25 === In order to safely upgrade especially python25 to a framework, we need: * A new python25 port group, which has to be released with one of the next MacPorts version. Efforts on this branch have to be coordinated with a release (targeting 1.6.1 or 1.6.2). * All py25-* ports have to be removed *before* upgrading python25 itself, because we change lib/python2.5 from a directory into a symlink. Otherwise you will see errors with file_map.db. * Therefore we need some hook inside python25 to fire up on upgrading non-framework to framework. E.g. it would have to do, save a list of all installed py25-* ports before and uninstall them. After successful installation of python25, install these ports again. Because of the directory-to-symlink change, deactivate/activate does not work. This will be the main challenge. === python30 === Nobody should be using python30 productively yet. python30 port group was also not released yet. * Make python30 install the same as other python versions. === python26 === After all was sorted out, we can add a python26 port in the same manner for the upcoming next python release.