At 4:11 PM +0100 1/16/15, René J.V. Bertin wrote:
On Friday January 16 2015 08:27:18 Craig Treleaven wrote:

IIUC, your post isn't related to Qt4/5 co-installability, but to how Qt-specific versions of ports distinguish themselves.

 https://trac.macports.org/ticket/46575

 If I understand correctly, Charm will create subports ala:

 qt5-charm
 charm

Yes.

 Is this supposed to be a model for going forward?

No idea.

I only picked the qt5- prefix because there's some precedence, though admittedly Qt Creator has a qt4- prefix for the Qt4 version. Similarly, GTk ports indeed have -gtk2 or -gtk3 suffixes ... though there it might be more usual to have a GTk2 dependency be the implicit default.

 I find the "qt5-" prefix objectionable.

Frankly, I don't know and I don't have a real preference: I'm open to suggestions. We do have the likely situation where more and more ports will transition to, or at least add support for, Qt5. As long as MacPorts doesn't provide a mechanism to signal a port name change and thus let user installations go from, say, QtCurve to qt4-QtCurve automatically, I don't see another solution of the kind I've adopted in my 2 proposals (Charm and QtCurve).

The replaced_by keyword (and obsolete PortGroup) support what you've described:

https://guide.macports.org/#development.practices.rename-replace-port


 > Going forward, I believe we will have the following cases:
 1) Projects that work with Qt4 but not Qt5
 2) Projects that work with Qt5 but not Qt4
 3) Projects that work with either Qt4 or Qt5 but differ in non-trivial ways
 4) Projects that work with the same with Qt4 or Qt5

 Assuming we have co-installable Qt4 and Qt5 via
 MacPorts, cases 1), 2) and 4) are
 straightforward:  'port:' style dependencies for
 1) and 2) and 'path:' style for 4).

AFAIC, case 4) ports will either impose a choice (port: style dependency) or leave choice to the user, as I did with Charm.

As port maintainers, I believe we _should_ make choices on behalf of users. Case by case, revision by revision, if there is a choice between Qt4 and Qt5, the port maintainer should evaluating whether to stay with Qt4 or jump to 5. At some point, I suspect security problems with Qt4 (or just bit rot) are going to push projects to give up on Qt4. IOW, sub-ports or variants for Qt4/Qt5 should be unusual exceptions rather than the norm. Pick the right time and make the move. Use a -devel port if experimentation is required in the interim.

There is something to say with providing a version-agnostic Qt PortGroup that could even include the version-specific PortGroup, though.

Could you clarify what you mean here?

 > OTOH, there might be rare cases where users might
 need to choose between the Qt4 version (more
 compatible, say) and a Qt5 version (new
 features).  Qt4/Qt5 variants would then be
 appropriate.

If you accept that detection of the installed version is done automatically, yes. But when you do that, how do you handle the case the user has both Qt versions installed? Even if you as a port developer (knowing the port and all) have a preference, the user might not agree.

To be blunt, tough. If a user really wants another configuration, they can create a modified portfile for themselves. The port maintainer ought to pick one variant as the default. My impression is that the vast majority of installs use only the default variants. We shouldn't shy away from the doing the right thing for (the majority of) our users.

I see the Qt5 supports OS X 10.7 and later ('best efforts' for 10.6, if I read it right):

http://doc.qt.io/qt-5/osx.html

For some ports, if the maintainer wants to keep it running on old OS X versions, they might use Qt4 for older OS environments and Qt5 for newer. Not a variant, just do the right thing in the environment.

Craig
_______________________________________________
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to