All KDE ports need a major revbump, due to recent changes to qt4-mac

René J. V. Bertin rjvbertin at gmail.com
Thu Oct 29 11:20:06 PDT 2015


Ohoh, so this is finally where I get to say "I told you so"?

@Michael Dickens wrote:

> qtscriptgenerator is having issues with locating phonon now that it's
> not co-located with the qt4 install. Like QCA, it might make sense to
> just co-locate phonon into the new qt4 install prefix.

Yeah, and while ye-all are at it, why not co-locate everything that depends on 
Qt4 in the new qt4 prefix?

In other words: "le monde à l'envers"

@Craig wrote
> Something I wondered about was the choice of ${prefix}/libexec/blah

Quite a few ports ("base" and llvm/clang included) use libexec as prefix-in-a-
prefix. When I proposed libexec/qt4 and libexec/qt5 (sic) way back,it seemed more 
in line with existing practice to abuse the libexec directory than the lib 
directory. After all, libexec can be read as "lib[s] plus exec[s]", which is 
exactly the case *for my install layout*.

@Mojca wrote:
> In my opinion it is also *much* better if CMake and pkg-config files
> end up where they are supposed to be.

Yep. With CMake it's less clear what exactly that place, since there are several 
locations that are used (and not each by a single port). But in any case, I 
think it's safest not to change such locations from what the port intends (and 
other ports/packages will expect) if it is not to use a central location 
instead.

> (There are also many other files
> like "libexec/qt4/share/doc" that could easily be in "share/doc/qt4/"
> etc, even though those are not as critical.)

Of course. There was never a reason to move those in the 1st place, and that 
includes share/qtN/* (which includes mkspecs and plugins).

I also don't see why the headers should be hidden so deeply. Installing them in 
${prefix}/include/qtN works just fine, and makes reading build logs a lot more 
legible.

@Rainer wrote:

> I only noticed this now, but it seems this change will cause problems:

Did you miss my "about MacPorts principles,  conventions (and dogmata :)) re: 
install layouts and Qt" message on this ML?

> Please do not simply drop everything related to Qt into its own prefix.

Hear hear ... I have been insisting on that for almost a year now, to no avail.

> I definitely don't want to discredit the work of René

Thanks, I for one didn't think you did. In fact, I understand that no one wants 
to do that, but there clearly isn't much intent to more than doing verbal credit 
to my work either.
(Which is why I caught wind of this thread only now: I stopped following ML 
activity that is not in reaction to a query of my own.)

> I understand that some of these parts conflict in filename

Way less that you'd think actually, largely because the original install schema 
already used qt4 and qt5 directories (in ${prefix}/share) and because the Qt5 
libraries and a number of other installed (Qt5) files have some form of Qt5 in 
their names.

Let's not forget that Qt5 was designed to co-install with Qt4 with minimal 
effort even on platforms where Qt is (almost) part of the system libraries. That 
is also why there's something called qtchooser.

@Rainer asked:
> What was the reason for moving Qt4 into its own prefix? I guess this is
> about allowing Qt4 and Qt5 to be installed at the same time?

It has to do with that, yes. Marko's guess notwithstanding, the real reason I 
have seen invoked is

"Qt itself installs like that on OS X"

To put it bluntly: that is true, but completely irrelevant. (Qt-for-OS X itself 
doesn't intend to be used the way it is in MacPorts.)

> * binaries in ${prefix}/libexec/qt4/bin are inaccessible and not in PATH

Guilty as charged even with my install layout. However:
- I provide symlinks suffixed with -qt4 and -qt5 for a number of commonly used 
execs
- there is port:qtchooser which also installs symlinks, to itself, and then acts 
as a wrapper that can be configured to proxy for multiple Qt installs (including 
a default install). A bit like a port select scheme, but more flexible.

R.



More information about the macports-dev mailing list