Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Mar 2015 22:00:21 +0200
From:      Antoine Brodin <antoine@FreeBSD.org>
To:        David Naylor <dbn@freebsd.org>
Cc:        Roland Smith <rsmith@xs4all.nl>, freebsd-python@freebsd.org
Subject:   Re: USE_PYTHON=concurrent
Message-ID:  <CAALwa8nhDR%2BaJj6jeXMdcaCeh_Saf6wBqM%2BDt0AJ1SgZ7v8BCg@mail.gmail.com>
In-Reply-To: <3956416.IomzSLxEPG@dragon.local>
References:  <3945228.UPHqZybedq@dragon.local> <20150331184738.GA95383@slackbox.erewhon.home> <3956416.IomzSLxEPG@dragon.local>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 31, 2015 at 9:39 PM, David Naylor <dbn@freebsd.org> wrote:
> On Tuesday, 31 March 2015 20:47:38 Roland Smith wrote:
>> On Mon, Mar 30, 2015 at 09:14:40PM +0200, David Naylor wrote:
>> > Hi,
>> >
>> > I am investigating converting my ports to concurrent however I am not =
sure
>> > how concurrent is supposed to work:
>> >
>> > I looked in /usr/ports/Mk and only found a documentation reference to
>> > 'concurrent'.  Setting USE_PYTHON=3Dconcurrent doesn't appear to actua=
lly
>> > change any behaviour.
>> >
>> > Please could you explain this for me?
>>
>> From =E2=80=9C/usr/ports/Mk/Uses/python.mk=E2=80=9D:
>>
>> concurrent      - Indicates that the port can be installed for
>>                   different python versions at the same time. The port
>>                   is supposed to use a unique prefix for certain
>>                   directories using USES=3Duniquefiles:dirs (see the
>>                   uniquefiles.mk Uses for details about the
>>                   directories), if set to yes. Binaries receive an
>>                   additional suffix, based on ${PYTHON_VER}.
>>
>>                   The values for the uniquefiles USES are set as
>>                   follows:
>>
>>                       UNIQUE_PREFIX=3D  ${PYTHON_PKGNAMEPREFIX}
>>                       UNIQUE_SUFFIX=3D  -${PYTHON_VER}
>>
>>                   If the port is installed for the current default
>>                   python version, scripts and binaries in
>>
>>                       ${PREFIX}/bin
>>                       ${PREFIX}/sbin
>>                       ${PREFIX}/libexec
>>
>>                   are linked from the prefixed version to the
>>                   prefix-less original name, e.g.
>>                   bin/foo-2.7 --> bin/foo.
>>
>> So it seems that any port that only installs modules in
>> =E2=80=9C/usr/local/lib/pythonX.Y/site-packages/=E2=80=9D could be label=
ed as concurrent
>> as-is.
>>
>> If your port wants to put things in DOCSDIR, EXAMPLESDIR, DATADIR, WWWDI=
R or
>> ETCDIR, you should add =E2=80=9CUSES=3Duniquefiles:dirs=E2=80=9D to your=
 port's Makefile.
>>
>> Also read =E2=80=9C/usr/ports/Mk/Uses/uniquefiles.mk=E2=80=9D.
>
> Thank you for your explanation, to confirm:
>
> So 'concurrent' shouldn't actually change any logic, but act as a flag fo=
r a
> build tool at actually build multiple versions of the port based on avail=
able
> and supported python versions?  (However one might need to use uniquefile=
s to
> prevent file conflicts with the multiple packages from this port.)


Hi,

No,  it isn't used as a flag for build tools.
USE_PYTHON=3Dconcurrent or USES=3Duniquefiles should be used to install
simultaneously a port for 2 versions of python,  when those 2
installations would conflict otherwise (e.g. would install files with
the same name in ${PREFIX}/bin or same directory name for ${DOCSDIR}).

Ports that only install in ${PREFIX}/lib/pythonX.Y don't need anything.

Cheers,

Antoine



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAALwa8nhDR%2BaJj6jeXMdcaCeh_Saf6wBqM%2BDt0AJ1SgZ7v8BCg>