about py3 relate ports

Li-Wen Hsu lwhsu at FreeBSD.org
Sun Mar 27 17:20:56 UTC 2011


On Sun, Mar 27, 2011 at 00:52:49 +0800, wen heping wrote:
> Hi, all:
> 
>     After python-2.7 was set as default python version, now it is the
> time to think
> about python-3.x.
> 
>     Although we set "USE_PYTHON=yes' in python relate ports, but we know many of
> it could not build with python3, especially those install with
> easy_install since setuptools
> could not build with python3.
> 
>    There are two ways to resolve it:
>    1 Modify the bsd.python.mk and every python port's Makefile.
>    2 create a new bsd.python3.mk and create new port for those
> python3-enable applications.
> 
>    I prefer the second way which is similar to Debian, because if we
> choose the first way,
> it is a huge work of it, we have to modify bsd.python.mk and modify
> every python relate port's
> Makefile and plist, while the second way is much more simpler.
> 
>    I create bsd.python3.mk which is revised from bsd.python.mk and
> some new python3 ports.
> I attached them all here.
> 
>    Any comments ?

I admit due to my busy day job, I currently have no time to think about
this issue very deeply, here are some thought currently on my mind:

    How about changing the package manager from setuptools/easy_install
  to use distribute/pip?

And about the ports fails with Python 3, well, firstly I think it's not
really a big issue, it only happens on the system set Python 3 as default.
One should know what will happen when setting PYTHON_VERSION in make.conf.
Keeping USE_PYTHON=yes in the Makefile is acceptable (to me) since when
using Python 3, we should already know some python modules will not work,
and it's not the default setting of ports system, besides, the biggest
thing need to think about would be "how to make this module Python 3 ready"
After achieve that, USE_PYTHON=yes is perfect. :)

And for knowing or getting reports about some ports are not Python ready,
I think modifying Makefile to USE_PYTHON=2.4-2.7 is OK, since it explicitly
states this port does not Python 3 compatible.  Perhaps we can add a syntax
like:

     USE_PYTHON=2.x or USE_PYTHON=2

However, Python 2.7.x looks like the last releases of Python 2, so we
may not bothering thinking about this.

Please note this is not conflicting  with your 2nd option (entirely), I
just don't want to maintain another .mk file.  Creating Python 3 ports
is fine, which gives us a pre-built binary package on ftp, that's good
and we already have some, like databases/py25-bsddb .  The only thing
need to take care is setting CONFLICTS in Makefile(s) correctly.  Some
py-* ports install files under bin/, not all in ${PYTHON_SITELIBDIR}


Best,
Li-Wen

-- 
Li-Wen Hsu <lwhsu AT FreeBSD.org>
http://lwhsu.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-python/attachments/20110327/df541403/attachment.pgp


More information about the freebsd-python mailing list