#56582 closed defect (fixed)
mpich-default @3.2.1: Error: Dependency 'gfortran' not found.
Reported by: | lpn25 | Owned by: | eborisch (Eric A. Borisch) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.5.0 |
Keywords: | Cc: | SpikeLightfoot, seanfarley (Sean Farley), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), Schamschula (Marius Schamschula), neilt (Neil Tiffin), dbl001 (dbl), mndavidoff (Monte Davidoff), gallafent, diochnos, dliessi (Davide Liessi), saherr1969 (Stephen H), dstrubbe (David Strubbe), jmroot (Joshua Root) | |
Port: | mpich-default |
Description
When trying to update octave from 4.2.2_1 to 4.4.0_1 I get the following:
Warning: No port gfortran found in the index. ---> Fetching archive for mpi_select ---> Attempting to fetch mpi_select-0.0_3.darwin_16.noarch.tbz2 from https://packages.macports.org/mpi_select ---> Attempting to fetch mpi_select-0.0_3.darwin_16.noarch.tbz2.rmd160 from https://packages.macports.org/mpi_select ---> Installing mpi_select @0.0_3 ---> Activating mpi_select @0.0_3 ---> Cleaning mpi_select ---> Fetching archive for mpi-doc ---> Attempting to fetch mpi-doc-3.2_0.darwin_16.noarch.tbz2 from https://packages.macports.org/mpi-doc ---> Attempting to fetch mpi-doc-3.2_0.darwin_16.noarch.tbz2.rmd160 from https://packages.macports.org/mpi-doc ---> Installing mpi-doc @3.2_0 ---> Activating mpi-doc @3.2_0 ---> Cleaning mpi-doc ---> Computing dependencies for mpich-default Error: Dependency 'gfortran' not found. Error: Problem while installing mpich-default Error: Follow https://guide.macports.org/#project.tickets to report a bug.
and it can't update octave. During the installation, it installs/updates a lot of ports including gcc7:
---> Computing dependencies for gcc7 ---> Fetching archive for gcc7 ---> Attempting to fetch gcc7-7.3.0_1.darwin_16.x86_64.tbz2 from https://packages.macports.org/gcc7 ---> Attempting to fetch gcc7-7.3.0_1.darwin_16.x86_64.tbz2.rmd160 from https://packages.macports.org/gcc7 ---> Installing gcc7 @7.3.0_1 ---> Activating gcc7 @7.3.0_1 ---> Cleaning gcc7
Change History (32)
comment:1 Changed 6 years ago by SpikeLightfoot
Cc: | SpikeLightfoot added |
---|
comment:2 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | seanfarley MarcusCalhoun-Lopez added |
---|---|
Keywords: | octave gfortran removed |
Owner: | changed from mcalhoun@… to eborisch |
Port: | mpich-default added; octave removed |
Summary: | gfortran not found when updating octave → mpich-default @3.2.1: Error: Dependency 'gfortran' not found. |
comment:3 Changed 6 years ago by Schamschula (Marius Schamschula)
Cc: | Schamschula added |
---|
comment:4 Changed 6 years ago by jmroot (Joshua Root)
comment:5 Changed 6 years ago by SpikeLightfoot
% port installed mpich\* None of the specified ports are installed.
comment:6 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Cc: | neilt added |
---|
Adding reporter of duplicate bug #56592.
comment:7 Changed 6 years ago by Schamschula (Marius Schamschula)
Cc: | dbl001 added |
---|
comment:8 Changed 6 years ago by mndavidoff (Monte Davidoff)
Cc: | mndavidoff added |
---|
comment:9 Changed 6 years ago by eborisch (Eric A. Borisch)
comment:10 Changed 6 years ago by jmroot (Joshua Root)
I don't see why the cxx_stdlib would cause a dependency on a nonexistent port to be added.
comment:11 follow-up: 13 Changed 6 years ago by eborisch (Eric A. Borisch)
Agreed, but running the latest port is the only thing I can point to currently as to why I can’t reproduce.
If you just try installing ‘mpich-default’ directly (not when it gets pulled in by octave) does it work? How about a log from that if it doesn’t?
This is likely somewhere in the compilers port group that something is confused; hopefully Sean will have a chance to take a look (he authored it, if I recall correctly.)
comment:12 follow-up: 15 Changed 6 years ago by mndavidoff (Monte Davidoff)
I was able to install octave after upgrading to MacPorts 2.5.1.
$ port installed "mpich*" octave The following ports are currently installed: mpich-default @3.2.1_3+gcc7 (active) octave @4.4.0_2+accelerate+app+docs+gfortran+graphicsmagick+qt5+sound (active)
comment:13 Changed 6 years ago by jwhowarth
Replying to eborisch:
Agreed, but running the latest port is the only thing I can point to currently as to why I can’t reproduce.
If you just try installing ‘mpich-default’ directly (not when it gets pulled in by octave) does it work? How about a log from that if it doesn’t?
This is likely somewhere in the compilers port group that something is confused; hopefully Sean will have a chance to take a look (he authored it, if I recall correctly.)
Oddly that works. Whereas under the current port 2.5.1 release, the simple 'sudo port upgrade outdated' failed with...
Warning: No port gfortran found in the index. ---> Computing dependencies for mpich-default Error: Dependency 'gfortran' not found. Error: Problem while installing mpich-default Error: Follow https://guide.macports.org/#project.tickets to report a bug.
comment:14 Changed 6 years ago by gallafent
Cc: | gallafent added |
---|
comment:15 Changed 6 years ago by lpn25
Replying to mndavidoff:
I was able to install octave after upgrading to MacPorts 2.5.1.
$ port installed "mpich*" octave The following ports are currently installed: mpich-default @3.2.1_3+gcc7 (active) octave @4.4.0_2+accelerate+app+docs+gfortran+graphicsmagick+qt5+sound (active)
After upgrading mpich-default by itself and upgrading to Macports 2.5.1, running
sudo port upgrade octave
failed (it was installed as @4.2.2_1+accelerate+app+docs+fltk+gfortran+graphicsmagick+qt4+sound). However installing octave @4.4.0_2+accelerate+app+docs+gfortran+graphicsmagick+qt5+sound worked.
comment:16 Changed 6 years ago by neilt (Neil Tiffin)
I was also able to get it installed using the following procedure.
- Update to MacPorts 2.5.1
- Manually install mpich-default
- port upgrade octave.
comment:17 Changed 6 years ago by SpikeLightfoot
Here's what I tried after successfully installing mpich-default::
jeff% sudo port selfupdate ; port echo outdated ; sudo port upgrade outdated Password: ---> Updating MacPorts base sources using rsync MacPorts base version 2.5.1 installed, MacPorts base version 2.5.2 downloaded. ---> Updating the ports tree ---> MacPorts base is outdated, installing new version 2.5.2 Installing new MacPorts release in /opt/local as root:admin; permissions 0755 The ports tree has been updated. To upgrade your installed ports, you should run port upgrade outdated octave @4.2.2_1+accelerate+app+docs+fltk+gfortran+graphicsmagick+qt4+sound octave-general @2.1.0_0 octave-io @2.4.11_0 octave-miscellaneous @1.2.1_3 octave-optim @1.5.2_3+gcc6 octave-struct @1.0.15_0 ---> Computing dependencies for octave ---> Fetching archive for octave ---> Attempting to fetch octave-4.4.0_2+accelerate+app+docs+gfortran+graphicsmagick+qt4+sound.darwin_17.x86_64.tbz2 from https://packages.macports.org/octave ---> Attempting to fetch octave-4.4.0_2+accelerate+app+docs+gfortran+graphicsmagick+qt4+sound.darwin_17.x86_64.tbz2 from http://sea.us.packages.macports.org/macports/packages/octave ---> Attempting to fetch octave-4.4.0_2+accelerate+app+docs+gfortran+graphicsmagick+qt4+sound.darwin_17.x86_64.tbz2 from http://ywg.ca.packages.macports.org/mirror/macports/packages/octave ---> Fetching distfiles for octave ---> Verifying checksums for octave ---> Extracting octave ---> Applying patches to octave ---> Configuring octave ---> Building octave ---> Staging octave into destroot Error: Failed to destroot octave: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/main.log for details. Error: Follow https://guide.macports.org/#project.tickets to report a bug.
The log file says:
... :info:destroot QSqlDatabase: QSQLITE driver not loaded :info:destroot QSqlDatabase: available drivers: :info:destroot Cannot open data base file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/work/octave-4.4.0/doc/interpreter/octave_interpreter.qch! :info:destroot make[2]: *** [doc/interpreter/octave_interpreter.qhc] Error 255 :info:destroot make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/work/octave-4.4.0' :info:destroot make[1]: *** [install-recursive] Error 1 :info:destroot make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/work/octave-4.4.0' :info:destroot make: *** [install] Error 2 :info:destroot make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/work/octave-4.4.0' :info:destroot Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/work/octave-4.4.0" && /usr/bin/make -w install DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/work/destroot :info:destroot Exit code: 2 :error:destroot Failed to destroot octave: command execution failed :debug:destroot Error code: CHILDSTATUS 25754 2 :debug:destroot Backtrace: command execution failed :debug:destroot while executing :debug:destroot "system {*}$notty {*}$nice $fullcmdstring" :debug:destroot invoked from within :debug:destroot "command_exec destroot" :debug:destroot (procedure "portdestroot::destroot_main" line 2) :debug:destroot invoked from within :debug:destroot "$procedure $targetname" :error:destroot See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/main.log for details.
Any ideas here?
comment:18 Changed 6 years ago by diochnos
Cc: | diochnos added |
---|
comment:19 Changed 6 years ago by eborisch (Eric A. Borisch)
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
Please open a new ticket for octave compilation (destroot) failing. I see some recent commits fixing up some missing dependencies for Qt5; perhaps they are still missing for Qt4? If you don't need +qt4, perhaps change to +qt5, while you're at it.
I'm closing this ticket; some things seem to be working, while some may still be broken, but I can't reproduce the issue. We've gone through two point releases that complicate the matter. If users are still having issues running 'sudo port install mpich' please open a new ticket.
comment:20 follow-up: 25 Changed 6 years ago by jmroot (Joshua Root)
Resolution: | wontfix |
---|---|
Status: | closed → reopened |
The problem hasn't gone away:
% port lint mpich-default +gfortran ---> Verifying Portfile for mpich-default Error: Unknown dependency: gfortran ---> 1 errors and 0 warnings found. % port deps mpich-default +gfortran Full Name: mpich-default @3.2.1_3 Build Dependencies: pkgconfig Library Dependencies: libxml2, gfortran Runtime Dependencies: mpi_select, mpi-doc
Interesting in that it doesn't even have a variant of that name. Something somewhere is probably using variant_isset but not checking whether the variant exists.
comment:21 Changed 6 years ago by dliessi (Davide Liessi)
Cc: | dliessi added |
---|
comment:22 Changed 6 years ago by dliessi (Davide Liessi)
Maybe a bug in fortran_variant_isset
or fortran_variant_name
in the compilers Portgroup?
comment:23 Changed 6 years ago by saherr1969 (Stephen H)
Yesterday I ran:
port selfupdate && port installed outdated && port upgrade outdated && port -q reclaim
Like others, it failed with:
---> Computing dependencies for mpich-default Error: Dependency 'gfortran' not found.
I then followed mndavidoff's suggestion of installing mpich-default
as a requested port. This was successful.
When I re-ran port selfupdate && port upgrade outdated
it ran through the octave
build until it ran into the destroot error. This suggests that the maintainers of mpich-default
need to modify their portfile somehow to allow this to be correctly processed as a dependency of octave
.
---> Staging octave into destroot Error: Failed to destroot octave: command execution failed
Like previously reported, the log file contains:
:info:destroot GEN doc/interpreter/octave_interpreter.qhc :info:destroot QSqlDatabase: QSQLITE driver not loaded :info:destroot QSqlDatabase: available drivers: :info:destroot Cannot open data base file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0/doc/interpreter/octave_interpreter.qch! :info:destroot make[2]: *** [doc/interpreter/octave_interpreter.qhc] Error 255 :info:destroot make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0' :info:destroot make[1]: *** [install-recursive] Error 1 :info:destroot make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0' :info:destroot make: *** [install] Error 2 :info:destroot make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0' :info:destroot Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0" && /usr/bin/make -w install DESTDIR=/opt/loca :info:destroot Exit code: 2 :error:destroot Failed to destroot octave: command execution failed :debug:destroot Error code: CHILDSTATUS 98573 2 :debug:destroot Backtrace: command execution failed :debug:destroot while executing :debug:destroot "system {*}$notty {*}$nice $fullcmdstring" :debug:destroot invoked from within :debug:destroot "command_exec destroot" :debug:destroot (procedure "portdestroot::destroot_main" line 2) :debug:destroot invoked from within :debug:destroot "$procedure $targetname" :error:destroot See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/main.log for details.
A web search showed that QSqlDatabase is Qt's SQL Database class. Using port search
for QSqlDatabase and QSQLITE provided no insight.
So I then ran port search --line Qt | grep -i sqlite
which revealed qt4 and qt5 plugins. Because the MacPorts Portfiles web page lists qt5-sqlite-plugin, I installed that, successfully, and then retried the port upgrade outdated
command to upgrade octave. Again it failed during the destroot processing.
I reviewed the log file a bit higher and found:
:debug:clean Searching for dependency: qt4-mac :debug:clean Found Dependency: receipt exists for qt4-mac :debug:clean Searching for dependency: qscintilla-qt4 :debug:clean Found Dependency: receipt exists for qscintilla-qt4
The qt4 items suggested I needed qt4 and not qt5 sqlite plugin. Proceeded to:
-
port uninstall qt5-sqlite-plugin
(successful) -
port install qt4-mac-sqlite3-plugin
(successful) -
port upgrade outdated
(SUCCESSFUL)!!!!!!
Looking at the "source" for the portfile and found:
variant qt4 conflicts qt5 description {build the GUI using Qt4} { PortGroup qt4 1.0 depends_lib-append port:qscintilla-qt4 configure.args-replace --without-qt --with-qt=4 } variant qt5 conflicts qt4 description {build the GUI using Qt5} { PortGroup qt5 1.0 qt5.depends_component qttools sqlite-plugin depends_lib-append port:qscintilla-qt5 ...
This suggests the fix for the destroot issue is to add a dependency check for qt4-mac-sqlite3-plugin
.
I have no clue how to do this so hopefully the maintainers of octave
can add this.
comment:24 Changed 6 years ago by saherr1969 (Stephen H)
Cc: | saherr1969 added |
---|
comment:25 Changed 6 years ago by eborisch (Eric A. Borisch)
Cc: | dstrubbe jmroot added |
---|
Replying to jmroot:
The problem hasn't gone away:
% port lint mpich-default +gfortran ---> Verifying Portfile for mpich-default Error: Unknown dependency: gfortran ---> 1 errors and 0 warnings found. % port deps mpich-default +gfortran Full Name: mpich-default @3.2.1_3 Build Dependencies: pkgconfig Library Dependencies: libxml2, gfortran Runtime Dependencies: mpi_select, mpi-docInteresting in that it doesn't even have a variant of that name. Something somewhere is probably using variant_isset but not checking whether the variant exists.
It's something with the compilers portgroup. Tagging recent committers to the portgroup to see if they can look into that portion of it.
It appears that 'port install mpich-default +gfortran' (even though 'gfortran' appears nowhere in the mpich-default Portfile) is tripping some switches in compilers-1.0.tcl that are then being evaluated with (guessing here) inaccurate assumptions.
comment:26 Changed 6 years ago by kencu (Ken)
The error disappears if you comment out the following depends_lib-append
line in the mpich-default Portfile:
# at least currently, the Fortran variants gccX and g95 match the name of the ports depends_lib-append port:[fortran_variant_name]
gfortran
doesn't match a port name.
comment:27 Changed 6 years ago by jmroot (Joshua Root)
But it does match a variant name that the compilers portgroup can provide, though not one that mpich-default has enabled. Certainly fortran_variant_name is returning an incorrect result here.
comment:28 Changed 6 years ago by kencu (Ken)
Well, you know more than me, but fortran_variant_name
is returning gfortran
, which seems correct to me.
It's just that this line is now an error with that value, because there is no such port as gfortran
depends_lib-append port:gfortran
It would seem that part of the Portfile logic needs to be reworked.
comment:29 Changed 6 years ago by jmroot (Joshua Root)
It's not correct because gfortran is not the active fortran variant. It can't be because it doesn't exist in this port. If there was such a variant, then yes I would agree the code adding the dependency would be incorrect.
comment:30 Changed 6 years ago by kencu (Ken)
I was looking at this from the point of view of the gfortran variant being set by the octave update request and then carrying over into the update of this port.
comment:31 Changed 6 years ago by jmroot (Joshua Root)
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
comment:32 Changed 6 years ago by saherr1969 (Stephen H)
Ticket #56653 created for destroot error associated with +qt4 variant of octave
.
The output of
port installed mpich\*
would likely be helpful, as there are a lot of different subports and variants.