Opened 3 years ago

Last modified 3 years ago

#62345 new defect

Not prompted to agree to xcode license when circular dependencies exist due to that very problem

Reported by: nathanielvirgo Owned by:
Priority: Normal Milestone:
Component: base Version: 2.6.4
Keywords: Cc:
Port:

Description (last modified by nathanielvirgo)

I had a confusing issue when trying to install py39-matplotlib and its dependencies on a fresh macports install on a new machine. You can see my report below, which was written when I didn't understand the reason for the issue.

The issue was revealed when running sudo port install python39 - in that case I was prompted to agree to the xcode user license, and everything worked. However, I had originally tried to run sudo port install py39-matplotlib instead, since I knew I would want to use matplotlib and numpy as well as Python. In that case I wasn't prompted to agree to the license, and instead got a mysterious error message that told me to submit a report without revealing what the problem was.

So the issue is about error reporting - the xcode license error should be displayed when trying to install Python as a dependency, rather than just when trying to install the Python port directly.

---

Here is my original report. For the resolution see my comment below.

I have installed macports on a new* machine running macos 10.15.7 Catalina. I am trying to install py39-matplotlib and its dependencies (which of course include Python and numpy). I am getting the error message below.

The error message does not give a lot of information. I assume there is a log file somewhere that contains the real error, but this is not noted in the error message itself and I don't know where to find it. I am happy to update this if someone can tell me where to look.

After installing the macos command line tools, XCode and macports, I did

 % sudo port selfupdate

which told me macports was already at the latest version, and then I entered

 % sudo port install py39-matplotlib

I will attach the full output of this command as a file. The last few lines were

--->  Fetching archive for qhull
--->  Attempting to fetch qhull-2020.2_0.darwin_19.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/qhull
--->  Attempting to fetch qhull-2020.2_0.darwin_19.x86_64.tbz2.rmd160 from https://ywg.ca.packages.macports.org/mirror/macports/packages/qhull
--->  Installing qhull @2020.2_0
--->  Activating qhull @2020.2_0
--->  Cleaning qhull
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port py39-matplotlib failed
--->  Some of the ports you installed have notes:
  OpenBLAS has the following notes:
    This version is built based on a base architecture for convenience, 
    which may not be optimized for your system. To build a version 
    customized for your machine, use the +native variant
  tcl has the following notes:
    The Sqlite3 Tcl package is now being provided by the sqlite3-tcl port:
    sudo port install sqlite3-tcl

so I guess the problem might be with the qhull port. Running the command a second time only gives this output

% sudo port install py39-matplotlib
--->  Computing dependencies for py39-matplotlibWarning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option

The following dependencies will be installed: 
 Xft2
 brotli
 cairo
 clang-9.0
 cmake
 curl
 fftw-3
 fontconfig
 freetype
 gdbm
 lcms2
 libomp
 libpsl
 libuv
 llvm-9.0
 openjpeg
 openssl
 ossp-uuid
 perl5
 perl5.28
 py39-Pillow
 py39-cairo
 py39-cycler
 py39-cython
 py39-dateutil
 py39-kiwisolver
 py39-nose
 py39-numpy
 py39-olefile
 py39-parsing
 py39-setuptools
 py39-six
 py39-tkinter
 py39-tornado
 py39-tz
 python39
 tk
 webp
 xar
 xorg-libX11
 xorg-libXScrnSaver
 xorg-libXext
 xorg-libxcb
 xorg-xcb-util
 xrender
Continue? [Y/n]: y
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port py39-matplotlib failed

This output is the same regardless of running sudo port clean qhull or sudo port clean py39-matplotlib.

I am submitting this ticket because the error message tells me to.

[*] the machine is a 2019 Intel Mac but has only been used for a few weeks and does't have much installed.

Attachments (1)

macports output.txt (29.3 KB) - added by nathanielvirgo 3 years ago.
full output of "sudo port install py39-matplotlib" the first time I ran it

Download all attachments as: .zip

Change History (7)

Changed 3 years ago by nathanielvirgo

Attachment: macports output.txt added

full output of "sudo port install py39-matplotlib" the first time I ran it

comment:1 Changed 3 years ago by nathanielvirgo

Description: modified (diff)

comment:2 Changed 3 years ago by nathanielvirgo

I have made some progress on this, and managed to get the port to install.

I think there is still a bug here, which is that the relevant error message was never displayed when trying to install py39-matplotlib directly, rather than installing Python by itself first. I will edit the issue to make clear that this was the problem.

When I ran

% sudo port install python39

I was given the following error message:

% sudo port install python39       
Password:
Error: It seems you have not accepted the Xcode license; most ports will fail to build.
Error: Agree to the license by opening Xcode or running `sudo xcodebuild -license'.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port python39 failed

After running sudo xcodebuild -license, everything worked fine. (I installed python39 first, and then py39-matplotlib after that.) The only problem is that I was not prompted to agree to the license when trying to install py39-matplotlib directly, rather than python39.

comment:3 Changed 3 years ago by nathanielvirgo

Description: modified (diff)
Port: qhull maybe - it's not clear removed
Summary: Error installing py39-matplotlib or one of its dependencies (possibly qhull) on new machineNot prompted to agree to xcode license when installing py39-matplotlib

comment:4 Changed 3 years ago by jmroot (Joshua Root)

Component: portsbase
Keywords: catalina removed
Summary: Not prompted to agree to xcode license when installing py39-matplotlibNot prompted to agree to xcode license when circular dependencies exist due to that very problem

I would guess a circular dependency was created because of the use of a compiler provided by a port, due to the Xcode compiler being unusable. The circular dependency made it fail during dependency calculation, whereas the error about the Xcode license is only printed after that, when starting to build a port from source. I'm not sure how we would go about fixing that.

comment:5 in reply to:  description ; Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to nathanielvirgo:

In that case I wasn't prompted to agree to the license, and instead got a mysterious error message that told me to submit a report without revealing what the problem was.

Note that MacPorts was not telling you to submit a bug report. It is explaining to you how to submit a bug report if you believe a bug exists. We should reword the message to make this clearer; it is a frequent cause of misunderstanding.

so I guess the problem might be with the qhull port.

Nope, the output clearly showed the qhull was installed successfully. The problem is after that.

comment:6 in reply to:  5 Changed 3 years ago by nathanielvirgo

Replying to ryandesign:

Replying to nathanielvirgo:

In that case I wasn't prompted to agree to the license, and instead got a mysterious error message that told me to submit a report without revealing what the problem was.

Note that MacPorts was not telling you to submit a bug report. It is explaining to you how to submit a bug report if you believe a bug exists. We should reword the message to make this clearer; it is a frequent cause of misunderstanding.

My apologies, that was an attempt at humour more than anything else - the point is that no error was reported in this case, *other* than the instructions on how to submit a bug report.

so I guess the problem might be with the qhull port.

Nope, the output clearly showed the qhull was installed successfully. The problem is after that.

Yep, I noted the actual issue both in the text at the top of my report and in my comment after it. I wouldn't say this is clear from a user point of view though - the error appears immediately after the lines pertaining to qhull, so I didn't have a lot else to go on.

Last edited 3 years ago by nathanielvirgo (previous) (diff)
Note: See TracTickets for help on using tickets.