From owner-freebsd-python@FreeBSD.ORG Tue Jul 30 09:55:45 2013 Return-Path: Delivered-To: freebsd-python@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 296FC1FD; Tue, 30 Jul 2013 09:55:45 +0000 (UTC) (envelope-from mva@freebsd.org) Received: from smtprelay05.ispgateway.de (smtprelay05.ispgateway.de [80.67.31.98]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6F11922F3; Tue, 30 Jul 2013 09:55:44 +0000 (UTC) Received: from [80.67.16.121] (helo=webmailfront01.ispgateway.de) by smtprelay05.ispgateway.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.68) (envelope-from ) id 1V46eW-0003Vy-PK; Tue, 30 Jul 2013 11:55:36 +0200 Received: from his1.his.de (his1.his.de [192.124.237.237]) by webmail.df.eu (Horde Framework) with HTTP; Tue, 30 Jul 2013 11:55:36 +0200 Date: Tue, 30 Jul 2013 11:55:36 +0200 Message-ID: <20130730115536.Horde.hJnU1JcPQIOJUsZ_wn7oOw9@webmail.df.eu> From: Marcus von Appen To: Daniel Braniss Subject: Re: Dealing with 2.7 and 3.3 installations References: <20130730095456.Horde.XlxQMdj5YU1hIxf6WAYZOQ2@webmail.df.eu> In-Reply-To: User-Agent: Internet Messaging Program (IMP) H5 (6.0.4) Content-Type: text/plain; charset=UTF-8; format=flowed; DelSp=Yes MIME-Version: 1.0 Content-Disposition: inline X-Df-Sender: ZnJlZWJzZEBzeXNmYXVsdC5vcmc= Cc: David Demelier , bapt@freebsd.org, koobs@freebsd.org, freebsd-python@freebsd.org X-BeenThere: freebsd-python@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: mva@freebsd.org List-Id: FreeBSD-specific Python issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jul 2013 09:55:45 -0000 Daniel Braniss : >> David, Daniel, >> >> just to take this to python@ and to clarify, what problems are still >> open for you: >> >> - bapt confirmed that the parallel installation of python itself from >> binary packages should work >> without any problem >> - Installation from the ports tree should work without problems >> - Installation of python modules from the ports tree basically works >> without problems (given that >> you set the correct make knobs), BUT can create tons of issues, >> when it comes to deinstallation, >> port dependency detection, etc. >> >> As per my understanding, you both mentioned issues with both, python >> itself and 3rd party packages. >> As said above, python itself should not be any problem. If you ran >> into any issue, please let python@ >> know about it (ideally with a reproducible step-by-step description) >> or create a PR. >> >> Regarding the 3rd party modules, I am not sure about the pkg status. >> Maybe bapt can say a word or >> two about whether packages are (planned to or currently) built for >> different python versions or not. >> David, Daniel: if you are currently running into trouble with the 3rd >> party modules, please >> let us know, what your requirements are, so we can discuss different >> solutions top be applied to the >> ports tree and, where applicable, improved support for the pkg builds. >> >> Thanks and cheers >> Marcus >> >> >> > > hi Marcus, > you are correct on most counts. > it's the make in ports that's problematic. > > - no problem in installing all/any version of lang/python. > - the issue is with 3rd. party modules, and more specifically > when installing. Furthermore, most modules compile for all > versions of python, but installing them is the issue: > - if the module is installed, no matter what python > version, it will be deinstalled - unless FORCE_PKG_REGISTER=, > which prevents the deinstall issue > IMHO, the check for is installed does not correctly use PYTHON_VERSION > example: > > /usr/local/bin/python -> python3.3 > > # cd /usr/ports/devel/py-setproctitle > # make install > ===> Installing for py33-setproctitle-1.1.7 > ===> py33-setproctitle-1.1.7 depends on file: /usr/local/bin/python3.3 - > found > ===> Generating temporary packing list > ===> Checking if devel/py-setproctitle already installed > ===> py33-setproctitle-1.1.7 is already installed > <==== NOT TRUE > You may wish to ``make deinstall'' and install this port again > by ``make reinstall'' to upgrade it properly. > If you really wish to overwrite the old port of devel/py-setproctitle > without deleting it first, set the variable "FORCE_PKG_REGISTER" > in your environment or the "make install" command line. > *** [check-already-installed] Error code 1 > > Stop in /usr/ports/devel/py-setproctitle. > # ls -ls /usr/local/lib/python3.3/site-packages/ > total 5 > 1 -r--r--r-- 1 root wheel 119 Jul 29 11:43 README > 2 drwxr-xr-x 4 root wheel 14 Jul 28 14:00 psycopg2 > 3 -rw-r--r-- 1 root wheel 1883 Jul 28 14:00 psycopg2-2.5.1-py3.3.egg-info > # make {de,re}install > ===> Deinstalling for devel/py-setproctitle > ===> Deinstalling > Deinstallation has been requested for the following 1 packages: > > py27-setproctitle-1.1.7 <==========!!!! > > The deinstallation will free 31 kB > [1/1] Deleting py27-setproctitle-1.1.7... done > ===> Installing for py33-setproctitle-1.1.7 > ===> py33-setproctitle-1.1.7 depends on file: /usr/local/bin/python3.3 - > found > ===> Generating temporary packing list > ... > > > - somehwere it should be mentioned: > - how to set the default python > i.e: usr/local/bin/python is a symlink, as is python-config > - the bsd.python.mk is very confusing, and has some errors > > at the moment my goal is to have python 2.7 as default, and 3.2/3.3 > as optional, and using PYTHON_VERSION= and FORCE_PKG_REGISTER= ie: > make PYTHON_VERSION=3.3 FORCE_PKG_REGISTER= clean install > is a workaround Does the same problem strike you, if you use PYTHON_DEFAULT_VERSION=xxx? PYTHON_VERSION should be used by ports, not by the user (input). Installing the port for different python versions at the same is not bullet-proof anyways, especially when it comes to data being installed outside of the python site-packages. So what you need is support for a python module installed for two different python versions at the same time, correct? And this (right now) is not supported, I am afraid. Cheers Marcus