Various on qt4-mac

Michael Dickens michaelld at macports.org
Sun Jun 20 09:29:16 PDT 2010


On Sat, 19 Jun 2010 22:02 -0500, "Ryan Schmidt"
<ryandesign at macports.org> wrote:
> What files are being "select"ed, and will this affect any ports that
> depend on Qt? Remember, it should never be required for the user to
> install *_select and to use it to select anything for a port to
> successfully install.

All good questions / observations; good to have this discussion before I
get to that point in Portfile mods.

The files being selected are pretty extensive, I think, but I need to
test out what really needs to be selected for the various versions
before I can say exactly.  You can look at
dports/aqua/qt4-mac/files/qt4-mac to see what files someone else thought
needed to be selected.

The only difference between the current and my expected behavior is that
-all- of the pkg-config .pc files will be installed by any selected
qt4-* install -- current behavior is that qt4-x11 installs the non-debug
versions while qt4-mac installs the debug versions only.  This current
behavior does not easily work with other ports (e.g., gnuradio), and nor
IMHO does the split make sense: I want to use the non-debug cocoa
version only, but in order to do so I need to direct pkg-config to a
very non-standard install location and/or hack the portfile to install
all of the .pc files.

Each qt4-* will require the same selected files & each set will conflict
with the other sets.  That said, as a developer I might want to try to
develop using qt4-mac, but then test with qt4-x11 and qt4-mac-devel to
verify cross-compatibility.  IMHO it's more convenient to use
"qt4_select" instead of "activate" and "deactivate" ... but, this type
of "select" is a little different that provided for Python and GCC since
there are system defaults of those but not of Qt.

Regarding the required or not use of *_select: 

1) OSX has no system-provided install of Qt (e.g., as it does with
Python), so there is no "default" select.  I see the use of "qt4_select"
as a means for switching between multiple installed qt4-X ports.  If
just one is installed, then it should be selected by default.  Any
subsequent installs of qt4-Y (with Y != X) would require the use and
install of "qt4_select".  Upgrading qt4-X should not change the need for
qt4_select.

2) Right now, when a *_select is installed it does the 'post-destroot'
default selecting of Apple's versions.  In order for the first qt4-* to
be selected, it must have runtime dependency on 'qt4_select' -- to make
sure 'qt4_select' is already installed so that it can be executed as a
'port-destroot' of the qt4-* port.  So, unless someone can think of a
better way to do this, this is what I'll do.

- MLD


More information about the macports-dev mailing list