#57415 closed defect (fixed)
mpi portgroup: should not offer gcc variants that won't work
Reported by: | SebKeen | Owned by: | jmroot (Joshua Root) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.5.4 |
Keywords: | Cc: | seanfarley (Sean Farley), dstrubbe (David Strubbe), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), mamoll (Mark Moll) | |
Port: | hdf5, py-mpi4py |
Description (last modified by jmroot (Joshua Root))
Hi,
I just tried to install a new port, and had to update mac port to version 2.5.4, and also Xcode to version 10. The port fails to update because of dependencies related to gcc49 and message that the compiler is not supported for Xcode 9.0 and higher. Thus, I tried to port install gcc9, and this again fails because of a dependency on hdf5-18 @1.8.17+cxx+gcc49+hl.
Here is the log:
bash-3.2$ sudo port install gcc9 ---> Computing dependencies for gcc9 ---> Cleaning gcc9 ---> Scanning binaries for linking errors ---> Found 9 broken files, matching files to ports ---> Found 5 broken ports, determining rebuild order You can always run 'port rev-upgrade' again to fix errors. The following ports will be rebuilt: hdf5-18 @1.8.17+cxx+gcc49+hl cdo @1.7.2+szip ncview @2.1.1 wgrib2 @2.0.5 grads @2.0.2 Continue? [Y/n]: y ---> hdf5-18 is replaced by hdf5 ---> Fetching distfiles for gcc49 Error: building gcc49 is not supported with Xcode 9 or greater Error: Failed to fetch gcc49: unsupported platform Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/gcc49/main.log for details. Error: Problem while installing gcc49 Error: rev-upgrade failed: Error rebuilding hdf5-18 Error: Follow https://guide.macports.org/#project.tickets to report a bug.
I hope someone can point in the right direction.
Noel
Change History (6)
comment:1 Changed 6 years ago by jmroot (Joshua Root)
Description: | modified (diff) |
---|---|
Keywords: | hdf5 removed |
Owner: | set to mamoll |
Port: | hdf5 added; gcc9 removed |
Status: | new → assigned |
Summary: | gcc9 fails to install on High Sierra Xcode10 → hdf5 should not offer gcc variants that won't work |
comment:2 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Should it really be the responsibility of every port that offers gcc variants to know which gcc versions are supported on which systems? The gcc ports already know this information, and thus the correct information was already displayed to the user.
The hdf5 port doesn't define these variants itself; it looks like it uses the mpi portgroup to do so. The compilers portgroup also exists which does something similar. If we really want these compiler variants not to be declared on systems where they won't work, that logic should be in the portgroups, not in the individual portfiles.
comment:3 follow-up: 5 Changed 5 years ago by jmroot (Joshua Root)
Cc: | seanfarley dstrubbe MarcusCalhoun-Lopez mamoll added |
---|---|
Owner: | mamoll deleted |
Port: | py-mpi4py added |
Summary: | hdf5 should not offer gcc variants that won't work → mpi portgroup: should not offer gcc variants that won't work |
Additionally, the portgroup adds variants in some cases that depend on ports that simply don't exist. For example:
% port lint py37-mpi4py +gcc49 ---> Verifying Portfile for py37-mpi4py Error: Unknown dependency: mpich-gcc49 ---> 1 errors and 0 warnings found. % port lint py37-mpi4py +clang37 ---> Verifying Portfile for py37-mpi4py Error: Unknown dependency: mpich-clang37 ---> 1 errors and 0 warnings found.
comment:4 Changed 5 years ago by jmroot (Joshua Root)
Owner: | set to jmroot |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
comment:5 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
comment:6 Changed 4 years ago by jmroot (Joshua Root)
In dcc2ab5d0ae8bfbd6b6a476b73386a99a34d5256/macports-ports (dar, master, py38-reproject, revert-6945-rust-1.43.0, wireshark):
You installed gcc9 successfully; the failure was in rebuilding hdf5-18, which was found to be broken by rev-upgrade (which runs automatically after each installation and checks all installed ports). hdf5-18 has been replaced by hdf5, so hdf5 was built with the same variants that hdf5-18 was previously installed with, but the gcc49 variant no longer works with your new Xcode version.
You can fix this by simply uninstalling hdf5-18 and installing hdf5 with some newer gcc variant. However it seems like hdf5 shouldn't offer the variant in the first place when it won't work.