Opened 3 months ago
Closed 4 weeks ago
#70477 closed defect (fixed)
qt5-qtlocation @5.15.12_0 build failure
Reported by: | mhanmore | Owned by: | MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.3 |
Keywords: | sonoma arm64 | Cc: | AgilentGCMS, markemer (Mark Anderson), ddrum2000, M-Rick, reneeotten (Renee Otten), MarcelSwart, jcm36, nilason (Nicklas Larsson), hapaguy (Brian Kurt Fujikawa), alanterra (Alan Harper) |
Port: | qt5-qtlocation |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
I have hit this error both late in a (very long!!) build of QGIS3 and also in a fresh environment after sudo port uninstall installed
. Both times with the same error:
---> Building qt5-qtlocation Error: Failed to build qt5-qtlocation: command execution failed Error: See /opt/macports-test/var/macports/logs/_opt_macports-test_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_aqua_qt5/qt5-qtlocation/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port qt5-qtlocation failed
Full log from the clean install of just sudo port install qt5-qtlocation
attached.
(Both are running on a fresh macports installation on an alternative path macports-test as per 2.2.4. Install Multiple MacPorts Copies)
Attachments (2)
Change History (40)
Changed 3 months ago by mhanmore
Attachment: | macports_system_info.log added |
---|
comment:1 Changed 3 months ago by jmroot (Joshua Root)
Cc: | MarcusCalhoun-Lopez removed |
---|---|
Keywords: | sonoma added; sonomna removed |
Milestone: | MacPorts 2.10.0 |
Owner: | set to MarcusCalhoun-Lopez |
Port: | qgis3 removed |
Status: | new → assigned |
Summary: | qt5-qtlocation: Failed to build qt5-qtlocation: command execution failed → qt5-qtlocation @5.15.12_0 build failure |
:info:build In file included from src/mbgl/annotation/annotation_manager.cpp:1: :info:build In file included from src/mbgl/annotation/annotation_manager.hpp:4: :info:build In file included from src/mbgl/annotation/symbol_annotation_impl.hpp:24: :info:build In file included from deps/boost/1.65.1/include/boost/geometry.hpp:17: :info:build In file included from deps/boost/1.65.1/include/boost/geometry/geometry.hpp:43: :info:build In file included from deps/boost/1.65.1/include/boost/geometry/core/radian_access.hpp:26: :info:build In file included from deps/boost/1.65.1/include/boost/numeric/conversion/cast.hpp:33: :info:build In file included from deps/boost/1.65.1/include/boost/numeric/conversion/converter.hpp:13: :info:build In file included from deps/boost/1.65.1/include/boost/numeric/conversion/conversion_traits.hpp:13: :info:build In file included from deps/boost/1.65.1/include/boost/numeric/conversion/detail/conversion_traits.hpp:18: :info:build In file included from deps/boost/1.65.1/include/boost/numeric/conversion/detail/int_float_mixture.hpp:19: :info:build In file included from deps/boost/1.65.1/include/boost/mpl/integral_c.hpp:32: :info:build deps/boost/1.65.1/include/boost/mpl/aux_/integral_wrapper.hpp:73:31: error: integer value -1 is outside the valid range of values [0, 3] for this enumeration type [-Wenum-constexpr-conversion] :info:build typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; :info:build ^ :info:build deps/boost/1.65.1/include/boost/mpl/aux_/static_cast.hpp:24:47: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST' :info:build # define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr) :info:build ^
Changed 3 months ago by jmroot (Joshua Root)
Attachment: | main.log.bz2 added |
---|
comment:3 Changed 3 months ago by M-Rick
I have the same build failure in Sonoma arm64, with a custom path as well. I used /opt/local/qgis. I already manage to build it one year ago with the same custom path /opt/local/qgis.
comment:4 follow-up: 15 Changed 3 months ago by M-Rick
I found how to resolve the bug. It needs to install boost181 first and the build of qt5-qtlocation will succeed. boost181 is already a dependency, but it is not build before qt5-qtlocation… That's why it's not working.
comment:5 Changed 2 months ago by jwhowse4
I have the package boost181 installed and qt5-qtlocation 5.15.12 still does not build for me under Sonoma 14.6.1. The same error occurs while trying to build qt5-qtlocation 5.15.15. Perhaps the question is how to get qt5-qtlocation to use boost 1.81 rather than boost 1.65.
comment:6 Changed 2 months ago by reneeotten (Renee Otten)
Cc: | AgilentGCMS added |
---|
has duplicate 70696
comment:7 Changed 2 months ago by reneeotten (Renee Otten)
there are a few upstream bug reports on this, but with no clear solution - the issues appears to be in Boost.
See: QTBUG-116652, QTBUG-125709, and QTBUG-125862
I am not completely sure how just installing a newer, MacPorts provided boost
helps here as you would still somehow need to make sure that it will not build the internal, vendored old boost165
version...
comment:8 Changed 2 months ago by AgilentGCMS
On #70477, it was suggested that I try building in trace mode with -t
. However, that resulted in the following error:
port -t install py311-matplotlib +qt5 ---> Computing dependencies for py311-matplotlib The following dependencies will be installed: flite py311-pyqt5 qt5 qt5-qtlocation qt5-qtmultimedia qt5-qtspeech qt5-qttranslations qt5-qtwebchannel qt5-qtwebsockets qt5-sqlite-plugin Continue? [Y/n]: Error: user "macports" doesn't exist Error: See /Users/sbasu1/packages/macports/sonoma/var/macports/logs/_Users_sbasu1_Downloads_sources_macports-ports_aqua_qt5/qt5-qtlocation/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port py311-matplotlib failed
This error does not occur if I do not specify -t
.
In #70477 I was asked why I was using a custom prefix
. I have to install in a custom prefix
because my mac is administered by my work and I don't have write permissions to system folders. Also, I seem to have a couple of different versions of boost installed.
$ port installed | grep boost boost176 @1.76.0_10+no_single+no_static+python312 (active) boost181 @1.81.0_10+no_single+no_static+python312 (active) poppler @24.04.0_1+boost (active)
comment:9 follow-up: 24 Changed 2 months ago by ptoshkov
I was able to build qt5-qtlocation on an Intel Macintosh running Sonoma 14.6.1.
I had to install CLT v15.1 from here: https://developer.apple.com/download/all/
Then immediately build qt5-qtlocation (don't run software update).
Thanks to Andrew Janke for the fix: https://github.com/octave-app/octave-app/issues/266
comment:10 Changed 2 months ago by markemer (Mark Anderson)
I have this same issue on arm64, macOS 15 Sequoia
comment:11 follow-up: 12 Changed 2 months ago by jwhowarth
It appears that this Xcode 15.4 and Xcode 16 compile failure can be eliminated if we add -Wno-enum-constexpr-conversion to the compile flags.
--- src/3rdparty/mapbox-gl-native/mapbox-gl-native.pro.orig 2024-09-17 20:54:13 +++ src/3rdparty/mapbox-gl-native/mapbox-gl-native.pro 2024-09-17 20:58:59 @@ -19,7 +19,8 @@ -O3 \ -ftemplate-depth=1024 \ -fvisibility-inlines-hidden \ - -fvisibility=hidden + -fvisibility=hidden \ + -Wno-enum-constexpr-conversion
comment:12 Changed 2 months ago by reneeotten (Renee Otten)
Replying to jwhowarth:
It appears that this Xcode 15.4 and Xcode 16 compile failure can be eliminated if we add -Wno-enum-constexpr-conversion to the compile flags.
--- src/3rdparty/mapbox-gl-native/mapbox-gl-native.pro.orig 2024-09-17 20:54:13 +++ src/3rdparty/mapbox-gl-native/mapbox-gl-native.pro 2024-09-17 20:58:59 @@ -19,7 +19,8 @@ -O3 \ -ftemplate-depth=1024 \ -fvisibility-inlines-hidden \ - -fvisibility=hidden + -fvisibility=hidden \ + -Wno-enum-constexpr-conversion
ah, I tried setting that as a configure.arg
at the top-level build but that didn't work. I guess patching it directly in the source there is the way to go.
I just updated to Sequoia so will need to rebuild all my ports first before checking that this indeed results in a working install.
comment:13 Changed 8 weeks ago by ddrum2000
Cc: | ddrum2000 added |
---|
comment:14 Changed 8 weeks ago by MarcelSwart
I've gotten the same problem on MacOS Sequoia. And the problem is localized:
:info:archivefetch ---> qt5-qtlocation-5.15.15_0.darwin_24.arm64.tbz2 doesn't seem to exist in /opt/local/var/macports/incoming/verified :msg:archivefetch ---> Attempting to fetch qt5-qtlocation-5.15.15_0.darwin_24.arm64.tbz2 from https://packages.macports.org/qt5-qtlocation :debug:archivefetch Fetching archive failed: The requested URL returned error: 404 :msg:archivefetch ---> Attempting to fetch qt5-qtlocation-5.15.15_0.darwin_24.arm64.tbz2 from https://lis.pt.packages.macports.org/qt5-qtlocation :debug:archivefetch Fetching archive failed: The requested URL returned error: 404 :msg:archivefetch ---> Attempting to fetch qt5-qtlocation-5.15.15_0.darwin_24.arm64.tbz2 from https://nue.de.packages.macports.org/qt5-qtlocation
I've checked these places, and the Sequoia files are simply not yet there. Using the darwin_23 file seems to work.
comment:15 follow-ups: 16 25 Changed 8 weeks ago by ryandesign (Ryan Carsten Schmidt)
Cc: | M-Rick reneeotten MarcelSwart added |
---|
Replying to M-Rick:
I found how to resolve the bug. It needs to install boost181 first and the build of qt5-qtlocation will succeed. boost181 is already a dependency, but it is not build before qt5-qtlocation… That's why it's not working.
boost181 is not listed as a dependency of qt5-qtlocation, and neither is any other version of boost. From comment:1 we can see that qt5-qtlocation includes a bundled copy of boost 1.65.1 which is an old version that has a bug when building with new compilers. If qt5-qtlocation uses boost181 if it is found and then builds successfully, then that is a bug in the qt5-qtlocation port, such as that the boost181 dependency should be added to it and its revision should be increased.
Replying to reneeotten:
there are a few upstream bug reports on this, but with no clear solution - the issues appears to be in Boost.
I already provided the clear solution in comment:2, showing that we fixed the bug in the MacPorts boost ports so the solution is to either make qt5-qtlocation use a MacPorts boost port or apply the patch to qt5-qtlocation's bundled copy of boost. There have been several other MacPorts tickets about this boost bug if you need more information about how to fix it.
Replying to MarcelSwart:
I've checked these places, and the Sequoia files are simply not yet there.
There are no prebuilt archives for Sequoia for any port yet. I have not set up the build machines yet. This is irrelevant; if I were to set up the build machines, they would fail to build the port with the same error you get. The problem has to be fixed in the affected port first.
comment:16 Changed 8 weeks ago by ryandesign (Ryan Carsten Schmidt)
Replying to ryandesign:
the boost181 dependency should be added to it and its revision should be increased.
If using MacPorts boost is a viable solution and if that is the solution we want to use, then instead of just adding the dependency, the boost portgroup should be used and told which version of boost to use because we offer several different versions of boost in MacPorts and we want qtlocation to use the one we specify.
comment:17 Changed 7 weeks ago by MarcelSwart
This is not irrelevant. Like I said: copying the file from the previous OS solved the problem. It’s not about boost181. Pymol works again as it should.
comment:18 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)
Marcel, the fact that binaries are not available for Sequoia is irrelevant to this bug report. Binaries cannot be available for this port for Sequoia until this bug is fixed and I set up the build machines. The lack of a binary archive is not to be considered a bug; see #60756.
MacPorts doesn't offer a way for you to use the Sonoma binary on Sequoia and you should not make any attempt to do so. The whole reason why MacPorts offers separate binaries for each OS version is that they sometimes differ.
M-Rick said using boost181 fixed their problem so I was responding to that.
comment:19 follow-up: 22 Changed 7 weeks ago by markemer (Mark Anderson)
Cc: | ddrum2000 M-Rick reneeotten MarcelSwart removed |
---|
You we could also require boost and boost176 to be installed on macOS 15, that fixed if for me. If we're not covering up a real bug by suppressing that warning, patching would work too.
comment:20 Changed 7 weeks ago by markemer (Mark Anderson)
I'm thinking maybe we should use the boost portgroup as well, so we never use the included version of boost, which is very old and will likely cause us a lot of build trouble moving forward.
comment:21 Changed 7 weeks ago by markemer (Mark Anderson)
Cc: | markemer added |
---|
comment:22 follow-up: 23 Changed 7 weeks ago by reneeotten (Renee Otten)
Cc: | ddrum2000 M-Rick reneeotten MarcelSwart added |
---|
Replying to markemer: do not remove people that were CCed to this ticket.
comment:23 Changed 7 weeks ago by markemer (Mark Anderson)
Replying to reneeotten:
Replying to markemer: do not remove people that were CCed to this ticket.
Sorry, I don't even know how I did that.
comment:24 Changed 7 weeks ago by AgilentGCMS
Replying to ptoshkov:
I was able to build qt5-qtlocation on an Intel Macintosh running Sonoma 14.6.1.
I had to install CLT v15.1 from here: https://developer.apple.com/download/all/
Then immediately build qt5-qtlocation (don't run software update).
I have CLT 15.3 installed. Are you saying I need to downgrade to 15.1?
comment:25 Changed 7 weeks ago by AgilentGCMS
Replying to ryandesign:
Replying to M-Rick:
I found how to resolve the bug. It needs to install boost181 first and the build of qt5-qtlocation will succeed. boost181 is already a dependency, but it is not build before qt5-qtlocation… That's why it's not working.
boost181 is not listed as a dependency of qt5-qtlocation, and neither is any other version of boost. From comment:1 we can see that qt5-qtlocation includes a bundled copy of boost 1.65.1 which is an old version that has a bug when building with new compilers. If qt5-qtlocation uses boost181 if it is found and then builds successfully, then that is a bug in the qt5-qtlocation port, such as that the boost181 dependency should be added to it and its revision should be increased.
What I'm getting from the discussion is that if boost181
is installed, then qt5-qtlocation
should build successfully. However, I do have boost181
installed, and I still have this error. I suspect that is because qt5-qtlocation
is trying to use the bundled boost
and not the already installed boost181
. How do I tell it to do otherwise?
comment:26 Changed 7 weeks ago by jcm36
Cc: | jcm36 added |
---|
comment:27 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|
comment:28 Changed 7 weeks ago by nilason (Nicklas Larsson)
Cc: | nilason added |
---|
comment:29 follow-ups: 30 33 36 Changed 7 weeks ago by MaintenanceCosts
Running Sequoia on Apple Silicon. To get qt5-qtlocation
to build, I had to have both boost
and boost181
installed. It would not build with either one alone. Obviously not a resolution but may help people install some ports that depend on qt5-qtlocation
in the short term.
comment:30 Changed 7 weeks ago by markemer (Mark Anderson)
Replying to MaintenanceCosts:
Running Sequoia on Apple Silicon. To get
qt5-qtlocation
to build, I had to have bothboost
andboost181
installed. It would not build with either one alone. Obviously not a resolution but may help people install some ports that depend onqt5-qtlocation
in the short term.
Yeah, I had to have at least boost176
and boost
installed as well. Without boost
it didn't pick up the library at all.
comment:31 Changed 7 weeks ago by BarneyStratford
I saw this error, and can confirm that it built correctly for me on Sequoia with boost and boost181 installed.
comment:32 Changed 7 weeks ago by markemer (Mark Anderson)
Yeah - I'm going to add the boost dependency to qt5-qtlocation unless someone beats me to it. Hopefully can just add the boost port group, but the qt Portfiles
are very complicated beasts. So I'm fixing qt5-webengine and then I'm gonna swing back around to this. I haven't heard anything from Marcus in a while, so I assume he's cool with all this. :)
comment:33 Changed 6 weeks ago by bryanrscott (Bryan)
adding on arm mac with Sequoia I needed to install both boost and boost181 before qt5-qtlocation would install as part of me installing qgis3. many thanks.
comment:34 Changed 6 weeks ago by hapaguy (Brian Kurt Fujikawa)
Cc: | hapaguy added |
---|
comment:35 Changed 5 weeks ago by ryandesign (Ryan Carsten Schmidt)
Cc: | alanterra added |
---|
Has duplicate #71066.
comment:36 follow-up: 37 Changed 5 weeks ago by willow-warbler
Thank you, this did indeed work for me. I can confirm that boost181
alone did not do the trick, but adding boost
did. I do not know if boost
alone would have been enough.
Replying to MaintenanceCosts:
Running Sequoia on Apple Silicon. To get
qt5-qtlocation
to build, I had to have bothboost
andboost181
installed. It would not build with either one alone. Obviously not a resolution but may help people install some ports that depend onqt5-qtlocation
in the short term.
comment:37 Changed 5 weeks ago by markemer (Mark Anderson)
Replying to willow-warbler:
Thank you, this did indeed work for me. I can confirm that
boost181
alone did not do the trick, but addingboost
did. I do not know ifboost
alone would have been enough.Replying to MaintenanceCosts:
Running Sequoia on Apple Silicon. To get
qt5-qtlocation
to build, I had to have bothboost
andboost181
installed. It would not build with either one alone. Obviously not a resolution but may help people install some ports that depend onqt5-qtlocation
in the short term.
Boost has a dependency on boost176. The reverse is not true. I had the same issue, but it has appeared to build on CI. See PR-26127
comment:38 Changed 4 weeks ago by markemer (Mark Anderson)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
System details log