#59888 closed defect (fixed)
sparsehash should either be noarch or keep its universal veriant
Reported by: | devernay (Frédéric Devernay) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ryandesign (Ryan Carsten Schmidt) | |
Port: | sparsehash |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
The following update to the sparsehash port: [79bcaad0315c9229ee841064701ab8b9fbff47ed/macports-ports] removes the +universal variant, but doesn't set noarch, thus preventing dependent ports (eg py27-shiboken) to build a +universal variant
The fix is simply to leave the +universal variant, reverting the above commit. I think it's not a big deal to have a +universal port which is really noarch, and actually identical to the non-universal one.
Change History (13)
comment:1 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|
comment:2 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Owner: | set to ryandesign |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:3 Changed 5 years ago by jmroot (Joshua Root)
Why can't it be noarch and set compiler.cxx_standard, like robin-map or spdlog?
comment:4 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
See the comment I added to the Portfile in [79bcaad0315c9229ee841064701ab8b9fbff47ed/macports-ports]:
# Don't set "supported_archs noarch" because although it is a header- # only library, it needs the right C++ stdlib flag.
When supported_archs is noarch, MacPorts base clears the value of configure.cxx_stdlib so we don't know what stdlib to build for. This causes problems on systems where the MacPorts stdlib default is different from the compiler's (i.e. on 10.6-10.8).
comment:5 Changed 5 years ago by jmroot (Joshua Root)
That's why I said "and set compiler.cxx_standard".
comment:6 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
What would I set it to? It needs to be set to whatever the user has chosen in macports.conf.
comment:7 Changed 5 years ago by jmroot (Joshua Root)
I don't understand, there's no setting for that in macports.conf. Set it to whatever standard the port needs, like compiler.cxx_standard 1998
if it needs C++98.
comment:8 follow-up: 9 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Oh. No, it doesn't require a particular version of the C++ standard. But it builds differently depending on what the C++ standard library is. If we set supported_archs to noarch, we no longer know what C++ standard library is in use on the user's system.
comment:9 Changed 5 years ago by jmroot (Joshua Root)
Replying to ryandesign:
If we set supported_archs to noarch, we no longer know what C++ standard library is in use on the user's system.
Yes we do. Please just try what I suggested and see what happens for yourself.
comment:10 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
I see. You're right. It does. I would never have guessed that that would happen.
comment:11 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
comment:12 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
In a306118b19ca3e475bc355940ed6eec03cbcf417/macports-ports (dar, master, py38-reproject, revert-6945-rust-1.43.0, wireshark):
comment:13 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
In aab03dad4bf66c0589c8829916043b78017bc55c/macports-ports (dar, master, py38-reproject, revert-6945-rust-1.43.0, wireshark):
Hm. You may be right.