wxWidgets vs. wxWidgets-devel: a proposal

Ryan Schmidt ryandesign at macports.org
Sat Sep 22 00:32:59 PDT 2012

On Sep 21, 2012, at 08:50, Kuba Ober wrote:

> Here's what I propose:
> - rename wxWidgets to wxWidgets28, adjust all dependent packages appropriately
> - rename wxWidgets-devel to wxWidgets (that's 2.9.x)

When you "rename" a port, what you actually do is "svn copy" the old port to the new port name and then make changes to the copy. Then you mark the old port as "replaced_by" the new port. You keep things this way until most users have had a chance to upgrade. We usually recommend this be a period of no less than one year.


So you see the problem: You cannot have it both ways: You cannot rename wxWidgets to wxWidgets28, and have that "replaced_by" mechanism to help users who had wxWidgets installed upgrade to the replacement port, and also rename wxWidgets-devel to wxWidgets.

But that might not be important. Most users don't have wxWidgets installed on purpose; they care about other ports that just happen to use wxWidgets. As long as dependencies are declared correctly in each port it should be fine.

On Sep 21, 2012, at 14:48, Kuba Ober wrote:

> Here's what I want to do, illustrated with this case:
> 1. wxWidgets28 is the renamed current wxWidgets port, and tracks 2.8 wxWidgets releases.
> Note that this port won't have "replaces wxWidgets" in it!
> 2. wxWidgets is the renamed current wxWidgets-devel port, and tracks 2.9 releases
> This port will be marked "replaces wxWidgets-devel". wxWidgets-devel will come back for 2.10
> or 3.0, and then the wxWidgets port will have to stop replacing wxWidgets-devel, of course.

The directive is "replaced_by", and it goes in the port that's being replaced, not in the port that replaces it.

We could take the approach that we take in some other ports, when versions are so different that other ports will need to be able to choose among them: always use a suffix, and make the ports simultaneously installable by installing to different locations.

My understanding is that wxWidgets uses odd numbered releases for development series. So 2.9 is a development series that will eventually become a stable version. I don't know whether that stable version will be 2.10 or 3.0. But it would mean that any hypothetical port that contains wxWidgets version 2.9.x should be called either wxWidgets210 or wxWidgets30.

So under this plan, we would rename wxWidgets to wxWidgets28, we would rename wxWidgets-devel to wxWidgets210 or wxWidgets30, and we'd update all ports' dependencies according to the needs of each individual port. The port names wxWidgets and wxWidgets-devel would be retired a year later.

I have no particularly strong feelings about what the ports are named or how you want to do it. I've been ignoring wxWidgets for years since 2.8 does not work on current OS X. It will be good to get that solved, however we do it.

Note that we also have ports wxWidgets26 and wxWidgets-python. Perhaps they can be considered in this overhaul as well.

More information about the macports-dev mailing list