USE_PYTHON=concurrent
Antoine Brodin
antoine at FreeBSD.org
Tue Mar 31 20:00:23 UTC 2015
On Tue, Mar 31, 2015 at 9:39 PM, David Naylor <dbn at 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=concurrent doesn't appear to actually
>> > change any behaviour.
>> >
>> > Please could you explain this for me?
>>
>> From “/usr/ports/Mk/Uses/python.mk”:
>>
>> 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=uniquefiles: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= ${PYTHON_PKGNAMEPREFIX}
>> UNIQUE_SUFFIX= -${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
>> “/usr/local/lib/pythonX.Y/site-packages/” could be labeled as concurrent
>> as-is.
>>
>> If your port wants to put things in DOCSDIR, EXAMPLESDIR, DATADIR, WWWDIR or
>> ETCDIR, you should add “USES=uniquefiles:dirs” to your port's Makefile.
>>
>> Also read “/usr/ports/Mk/Uses/uniquefiles.mk”.
>
> Thank you for your explanation, to confirm:
>
> So 'concurrent' shouldn't actually change any logic, but act as a flag for a
> build tool at actually build multiple versions of the port based on available
> and supported python versions? (However one might need to use uniquefiles 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=concurrent or USES=uniquefiles 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
More information about the freebsd-python
mailing list