Opened 5 years ago

Closed 5 years ago

Last modified 4 years ago

#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)

Hm. You may be right.

comment:2 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: set to ryandesign
Resolution: fixed
Status: newclosed

In a306118b19ca3e475bc355940ed6eec03cbcf417/macports-ports (master):

sparsehash: Don't disable universal variant

Reverts 79bcaad0315c9229ee841064701ab8b9fbff47ed.

Closes: #59888

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 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 in reply to:  8 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)

In aab03dad4bf66c0589c8829916043b78017bc55c/macports-ports (master):

sparsehash: supported_archs noarch

See: #59888

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):

sparsehash: Don't disable universal variant

Reverts 79bcaad0315c9229ee841064701ab8b9fbff47ed.

Closes: #59888

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):

sparsehash: supported_archs noarch

See: #59888

Note: See TracTickets for help on using tickets.