[Bug 213636] math/py-matplotlib: Fails to build with python3

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Aug 5 05:06:15 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213636

--- Comment #10 from Kubilay Kocak <koobs at FreeBSD.org> ---
(In reply to rsmith from comment #9)

The word 'work' was specifically and intentionally not used, to focus just on
whether or not the USES=python:<version-spec> is incorrect as it relates to
what matplotlib is supposed to support (per upstream), not whether other
factors (default options or other issues/bugs) prevent that from being true at
a certain point in time or in certain conditions (downstream).

Keep in mind that USES=python:<version-spec> is a declarative specifier (port
supports this/these versions), not an imperative one (use this version)

Looking back, ports r426883 (update to 1.5.3) states:

- Additionally, 1.5.3 version doesn't build with python-3.X because
  'import gtk' which the build tries fails in python3. Therefore, python:2.

Based on this and on my reading of this issue (which may be incorrect or
incomplete), this was and is an incorrect (at a minimum, imprecise) warrant
and/or method for restricting builds to 2.7.

1) If the presence (or non-presence) or a build configuration (OPTION or
OPTIONs in this case) prevents building with a particular version, then the
restriction should be limited/scoped to that build option or build options, not
globally.

2) If a python package ('upstream python package' is meant here, not 'freebsd
package') supports Python 2 and 3 builds, then the default configuration (read:
OPTIONS_DEFAULTS) of the port and it's dependencies should support building
with 2/3 by default.

Accordingly, and at a minimum:

1) USES=python:<version-spec> should be relaxed and be made to correctly
reflect that matplotlib supports both Python 2 & 3. 

2) The OPTIONS_DEFAULTS of this port should be modified to work with Python 2
and 3 builds (if that is indeed possible).

(1) and (2) alone are probably insufficient to ensure a good user experience,
if certain combinations of OPTIONS must be enabled/disabled to produce a valid
Python 3 build environment, so:

If certain options are mutually exclusive (in that some prevent Python 2 or 3
builds), then OPTIONS_RADIO's or conditional blocks should be added that check
for valid/invalid options combinations and inform the user with appropriate
BROKEN/IGNORE/other methods when incompatible options/configurations are
selected.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-python mailing list