Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Apr 2013 20:35:36 +0100
From:      Chris Rees <crees@FreeBSD.org>
To:        David Demelier <demelier.david@gmail.com>
Cc:        Marcus von Appen <mva@freebsd.org>, FreeBSD Mailing List <freebsd-ports@freebsd.org>
Subject:   Re: Change design of py-* ruby-* ports
Message-ID:  <CADLo839LqcCLYi7Bb7vgFGtHGiHOKXfHhwwj%2B=0JERdZwiwRUw@mail.gmail.com>
In-Reply-To: <CAO%2BPfDeQcsAxKxM5GCf=ghRx8k6-yUFJu246L_Jx2TPjrdzrXg@mail.gmail.com>
References:  <2117909.R5VWH3vbkH@melon> <20130425204236.GA2013@medusa.sysfault.org> <CAO%2BPfDeQcsAxKxM5GCf=ghRx8k6-yUFJu246L_Jx2TPjrdzrXg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 26 April 2013 08:39, David Demelier <demelier.david@gmail.com> wrote:
> 2013/4/25 Marcus von Appen <mva@freebsd.org>:
>> On, Thu Apr 25, 2013, David Demelier wrote:
>>
>>> Hello,
>>>
>>> Currently the ports tree has unified ports for python and ruby modules with
>>> origin like databases/py-sqlalchemy. When someone wants to bulk the
>>> ports tree  to create packages the databases/py-sqlalchemy will only
>>> be built against the current python version set in Mk/bsd.python.mk
>>> (or overriden in make.conf).
>>
>> Or at the command-line for indiviual ports.
>>
>>> This is a very bad design and we should fix that as soon as possible,
>>> we are a lot of people and some portmgr folks included that is not the
>>> best way to  manage python / ruby modules.
>>>
>>> Let say I want to install a package, unfortunately this one requires some
>>> python modules that are only working for python 2.7 but me as a developer I
>>> want to develop with python 3, then we are stuck.
>>
>> Correct. This is the general limitation of depending on a package
>> infrastructure for your specific operating system - or the developer's
>> fault, since he did not yet port the module to your specific version -
>> or the maintainer's, since he could not ensure that the port is stabe
>> enough for your favourite version.
>>
>>> What we need to do now, is to move *all* py-* and ruby-* to their respective
>>> versions i.e py27-* and ruby19 (or 18?).
>>> Then we will need to copy all of these and set them to the newer version so
>>> py33 and ruby20.
>>
>> And initiate a hell of repocopying and testing on each minor
>> release. And cause maintainers to have a lot of additional maintenance
>> efforts. And, and, and, ... No, thanks.
>>
>
> Are you really sure it will need more maintenance? If the unified port
> should be able to build against both 2.7 and 3.3 the port may need
> some couple of .if defined() of the python version to do some things
> that are specific to the python version. This may lead in a lot of
> maintenance pain since you will need to test both python version each
> time you modify something to verify there is no breakage. On the other
> hand having a dedicated port for python 3.3 and python 2.7 will be
> fully clean. And port is cleaner at a glance.

How, exactly?

You are suggesting making multiple ports for the same package, and
suggesting that's simpler???

>>> Also this will remove the breakage of OPTIONS, all of these ports needs the
>>> dirty hack of OPTIONSFILE because of the ${PKGNAMEPREFIX}.
>>
>>> This will blow out the ports tree by adding a lot of ports, but it's the best
>>> way to cover the both version and future bulk generation for users.
>>
>> No, it is not. It is the best way you thought of so far.
>>
>> Your problem description is too unspecific or too easy to solve. Right
>> now it reads as
>>
>> * one shall be able to install py27-, py32-, ... ports (or ruby) in
>>   parallel - fair enough, then we need to fix the following issue along
>>   with some other minor side effects:
>>
>> /usr/ports/devel/py-logilab-common # make PYTHON_DEFAULT_VERSION=python3.2 PYTHON3_DEFAULT_VERSION=python3.2 install
>> ===>  Installing for py32-logilab-common-0.59.0
>> ===>   py32-logilab-common-0.59.0 depends on file: /usr/local/bin/python3.2 - found
>> ===>   Generating temporary packing list
>> ===>  Checking if devel/py-logilab-common already installed
>> ===>   An older version of devel/py-logilab-common is already installed (py27-logilab-common-0.59.0)
>>
>> Cheers
>> Marcus
>
> For now because of the unified port, as a package builder, I'm unable
> to build both version easily. I'm okay to see other solutions, all I
> want for me is to be able to generate packages and install all python
> module in both versions so we can still use tools that may requires a
> specific python version.

I think a better way is to make the ports install simultaneously to
different versioned Pythons;

something like

WITH_PYTHON_VERSION= 27 32

that is detected by ports.

Packages would end up with PKGNAMES such as py27+32-, but I don't
think that's a major issue.

Obviously this would only be done in custom repos, or ports-only setups.

Chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLo839LqcCLYi7Bb7vgFGtHGiHOKXfHhwwj%2B=0JERdZwiwRUw>