Bug 238254

Summary: devel/gobject-introspection: g-ir-scanner fails to find python3.x when building print/harfbuzz
Product: Ports & Packages Reporter: Terry Kennedy <terry-freebsd>
Component: Individual Port(s)Assignee: Kubilay Kocak <koobs>
Status: Closed Not A Bug    
Severity: Affects Some People CC: gnome, koobs, python, terry-freebsd
Priority: --- Flags: koobs: maintainer-feedback? (gnome)
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Port build log showing error message none

Description Terry Kennedy 2019-05-31 06:06:10 UTC
Attempting to update a 12-STABLE (amd64) system to the latest version of ports, but retaining python 2.7 as the default via "DEFAULT_VERSIONS+=python=2.7" in /etc/make.conf fails during the build phase with the error "env: /usr/local/bin/python3.6: No such file or directory".

Looking at the change history for the port, it doesn't seem as though this was a change in the harfbuzz port itself, but a result of the Python default version change having (yet another*) unexpected impact. Due to non-response to other reports about the Python change, I'm reporting this bug against harfbuzz as it should be possible for this port to override whatever is causing the issue.

* I won't repeat my rants about the ill-advised change to 3.6 as the default, other than to point to https://wiki.freebsd.org/Python/Python3Default which shows a large number of ports incompatible with 3.x which were not addressed before the default version was changed.
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2019-05-31 06:13:07 UTC
@Terry Thank you for your report. Please include a complete build log (with failure) as an attachment
Comment 2 Terry Kennedy 2019-05-31 06:40:23 UTC
Created attachment 204731 [details]
Port build log showing error message
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2019-05-31 12:30:26 UTC
@Terry I can't reproduce in poudriere for either the default case (py36) or py27.

Looking into dependencies, I can see:

1) print/harfbuzz depends on g-ir-scanner via devel/gobject-introspection

2) devel/gobject-introspection has (default) build and run dependency on lang/python36 via USES=python3.4+

Given that, python 3.x is required for harfbuzz via that transitive dependency.

If g-ir-scanner does not *require* Python 3, but in fact supports Python 2 *and* 3, then the version-spec in devel/gobject-introspection is incorrect and can be corrected.

The question remains however, why isn't lang/python36 available and installed at that point in the build process via portupgrade.

We need further information to proceed
Comment 4 Jan Beich freebsd_committer freebsd_triage 2019-06-01 13:04:22 UTC
portupgrade/portmaster cannot recover from a pilot error e.g.,

1. Install devel/gobject-introspection
2. Add DEFAULT_VERSIONS+=python=2.7 to make.conf
3. Remove lang/python3.6 under assumption it's no longer used
4. Try to build print/harfbuzz
Comment 5 Kubilay Kocak freebsd_committer freebsd_triage 2019-06-01 13:22:01 UTC
@Terry If the issue is reproducible after the following steps, please re-open the issue with additional detail:

1. Add DEFAULT_VERSIONS+=python=2.7 to make.conf (if not already present)
2. Re-build/install devel/gobject-introspection (with portmaster/portupgrade)
3. Confirm lang/python36 was built/installed (pkg version -v|grep python36)
4. Rebuild print/harfbuzz