[MacPorts] #55471: Use separate portindexes for libc++ on older systems
MacPorts
noreply at macports.org
Thu Apr 26 04:51:59 UTC 2018
#55471: Use separate portindexes for libc++ on older systems
--------------------------+----------------------------
Reporter: ryandesign | Owner: neverpanic
Type: enhancement | Status: assigned
Priority: Normal | Milestone: MacPorts 2.5.0
Component: base | Version:
Resolution: | Keywords:
Port: |
--------------------------+----------------------------
Comment (by ryandesign):
Replying to [comment:26 raimue]:
> Side note: I do not understand why you would want to hardcode the
default cxx_stdlib at this place. I would just always add
`${platindex_cxxlib}` to the remote filename, isn't this much simpler?
Wasn't your plan to eventually change the default on older systems at some
point? Hardcoding default values seems to work against that.
My intention was to not change the remote Portindex filename for current
users, so that existing MacPorts 2.4.x installations would not break.
I think when I made this ticket, there had not yet been an initiative to
change the default value of cxx_stdlib for 10.6-10.8, so I did not
consider that that might be how we ultimately implement the migration and
that it might affect these Portindex filenames.
We could go all out: put the cxx_stdlib into every Portindex filename as
you suggest, to be used by future versions of MacPorts, and also hardlink
the old Portindex name without cxx_stdlib to what MacPorts 2.4.x expects.
> I also have reservations because of users that already have a non-
default setting for `cxx_stdlib`. With this change, mportsync would expect
a remote filename that does not yet exist. What are the consequences of
this? Is the plan to deploy the changes to mprsyncup immediately after the
2.5.0 release without ever testing the changes against rsync? Will
mportsync fail gracefully or hard without a remote PortIndex file? Will
base fall back to generate a PortIndex locally in this case? I see no
reports of tests or consideration of it in this ticket.
I did not test it but when I made these patches I assumed MacPorts would
explode if the remote Portindex does not exist, which is why I created all
three patches at once in this ticket and expected the changes to mprsyncup
and portindex to be deployed immediately to the server, so that the
Portindexes with the new names would be generated and ready to go before
users would update to a new version of MacPorts that would use them. I'm
happy to manually patch the copy of portindex that mprsyncup uses on the
server.
> The changes to `macports.tcl` require the changes to `mprsyncup`, but
that requires the changes to `portindex`.
>
> I can only review the change to portindex as ready-to-go. The new
portindex would already fix the problem that PortIndex was generated with
the wrong value of cxx_stdlib in mprsyncup for legacy platforms. This
seemed to be the most important fix of this pull request to go into a
release.
I just want to make clear again that deploying only this part will ''fix''
the portindex for ≤ 10.8 with libstdc++ but ''break'' the portindex for
any users of ≤ 10.8 [wiki:LibcxxOnOlderSystems already using libc++]. I'm
ok with that, because it will help more users than it harms, and the
breakage is so minor (a handful of ports not being properly displayed in
`port outdated`) that I'm only aware of one ≤ 10.8 libstdc++ user
reporting the problem so far. But I want to make sure we're all clear
about what will happen if we make this change.
> I also thought this is what we discussed to do for MacPorts 2.5.0 in our
online meeting.
We did discuss it, but I, like Mojca, wasn't entirely clear on why the
three parts of the fix were to be separated from one another. One reason
could be if we have not yet agreed that my proposed Portindex filenames
are the ones we want to use, since after we release a version of MacPorts
that uses them, we don't want to change them again.
--
Ticket URL: <https://trac.macports.org/ticket/55471#comment:28>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list