#57012 closed defect (fixed)
mosh @1.3.2_1+perl5_26 fails to build
Reported by: | tehcog (tehcog) | Owned by: | tobypeterson |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.5.3 |
Keywords: | Cc: | blair (Blair Zajac) | |
Port: | mosh |
Description
Please see attached log...
xxXXxx::xxXXxx { ~ }-> sudo port upgrade mosh Password: ---> Scanning binaries for linking errors ---> Found 2 broken files, matching files to ports ---> Found 1 broken port, determining rebuild order You can always run 'port rev-upgrade' again to fix errors. The following ports will be rebuilt: mosh @1.3.2+perl5_26 Continue? [Y/n]: ---> Computing dependencies for mosh ---> Cleaning mosh ---> Scanning binaries for linking errors ---> Found 2 broken files, matching files to ports ---> Found 1 broken port, determining rebuild order ---> Rebuilding in order mosh @1.3.2 +perl5_26 ---> Computing dependencies for mosh ---> Fetching distfiles for mosh ---> Verifying checksums for mosh ---> Extracting mosh ---> Configuring mosh ---> Building mosh Error: Failed to build mosh: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_mosh/mosh/main.log for details. Error: rev-upgrade failed: Error rebuilding mosh Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Attachments (1)
Change History (19)
Changed 6 years ago by tehcog (tehcog)
comment:1 Changed 6 years ago by mf2k (Frank Schima)
Cc: | quentinmit removed |
---|---|
Keywords: | Mavericks removed |
Owner: | set to quentinmit |
Status: | new → assigned |
comment:2 Changed 6 years ago by mf2k (Frank Schima)
Looks like it is related to protobuf3-cpp. Is that updated to the latest version?
comment:3 Changed 6 years ago by blair (Blair Zajac)
Owner: | changed from quentinmit to tobypeterson |
---|
I can confirm the build failure.
I just reverted the protobuf3-cpp commit (without bumping the epoch).
comment:4 Changed 6 years ago by blair (Blair Zajac)
Cc: | blair added |
---|
comment:5 Changed 6 years ago by tobypeterson
Looks like this is on a really, really old version of macOS, guess it doesn't support newer C++ features. Dumb to revert because of that, but whatever.
comment:6 Changed 6 years ago by tobypeterson
comment:7 follow-up: 9 Changed 6 years ago by tobypeterson
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Adopted cxx11 PortGroup in mosh, updated protobuf3-cpp again. If other ports break, please fix them - don't let old OS versions hold us back.
comment:8 Changed 6 years ago by kencu (Ken)
The issue here is that protobuf3-cpp
now REQUIRES all software using it to be built with at least -std=c++11
. Only the most recent clang
versions default to that, so that flag will need to be added to all builds.
In addition to the PG cxx11 1.1
, you need
configure.cxxflags-append -std=c++11
and then it builds.
comment:9 Changed 6 years ago by l2dy (Zero King)
Replying to tobypeterson:
Adopted cxx11 PortGroup in mosh, updated protobuf3-cpp again. If other ports break, please fix them - don't let old OS versions hold us back.
You need to revbump all protobuf3-cpp dependents because soname changed from libprotobuf.15.dylib to libprotobuf.17.dylib. People using binary archives would have to rebuild them locally if you don't bump revisions.
comment:10 Changed 6 years ago by kencu (Ken)
Revbumping alone will not work, I don't think. mosh
needed -std=c++11
added to the build line.
Do any XCode clangs
default to c++11
now? Only the very most recent of the OSS clangs do.
comment:11 Changed 6 years ago by ken-cunningham-webuse
comment:12 Changed 6 years ago by tobypeterson
Unfortunate that a non-major version updated the dylib version. Makes me think they're not doing library versioning properly.
comment:13 Changed 6 years ago by tobypeterson
Updated py-protobuf3 and protobuf-c, bumped revisions on 7 other ports
comment:14 Changed 6 years ago by blair (Blair Zajac)
Thanks for fixing the port and dependent ports.
I think it's better to revert and then fix the issues, as this pushes the work on the committer who did the upgrade instead of dependent ports, it's not the job of the dependent port maintainers to fix a port broken by another port. Also, a fast revert leaves the port tree in a healthy state.
comment:15 Changed 6 years ago by kencu (Ken)
Thanks for fixing the port and dependent ports.
Most of the dependent ports are still broken. Only the ones that already were building as c++11 were fixed by the revbump.
The rest need to be rejigged to build as c++11 before they will be fixed. With some, this is easy (eg mosh). With others, (eg ostinato) not so easy, it turns out.
comment:16 Changed 6 years ago by quentinmit (Quentin Smith)
It makes me sad that every port is going to have to change its build process as a result of changes in protobuf3-cpp
. Is there any way for this configuration to automatically happen as a result of the dependency? e.g. via a pkg-config
file or a #pragma
in the protobuf headers?
If not, the commit LGTM as a workaround.
comment:17 Changed 6 years ago by tobypeterson
ostinato needs to be fixed anyway, since qt4 can't even be installed now.
main.log