Port groups howto

Michael Dickens michaelld at macports.org
Mon Nov 1 07:53:19 PDT 2010


On Oct 29, 2010, at 3:13 PM, Marko Käning wrote:
The source files for the guide are at trunk/doc-new/guide in our
>> repository ;-)
> Thanks for the hint. I'll see into this. :)
>
>>> Is it possible, that using a port group might cause trouble when you want to build a port step by step using extract, configure, build, destroot, install?
>>
>> Only if it is modified between the steps.
> Hmm… Well, I did not. Just tried to do it step by step, as usual.
>
>> How do you come to the conclusion that a port group might be the
>> problem? Also, which port group?
> It's the kde4 1.1 port group.
>
> See e.g. here http://trac.macports.org/ticket/26980 (kdepimlibs4) and http://trac.macports.org/ticket/26943#comment:36 (kdelibs4).
>
> Never saw this before, only for these kde4 1.1 ports, but Michael wrote that he is still hunting for bugs in all qt4-mac related ports. So perhaps it will be found at some stage.

The qt4 portgroup, as currently checked in, will mess up setting archs correctly if installed in separate stages; just discovered this last night.  The affected ports are liimited to "doxygen +wizard", qscintilla, qtpfsgui, and qwt*. While I doubt this is the cause of your issues, it still needs to be fixed; so I'm fixing that issue today (ASAP).

What I'm trying to do is set the "Qt arch type(s)" depending on whether +universal is specified or not, and then mapping "i386" -> "x86" in the resulting string.  I'd like to do this auto-magically, so that any Portfile including this portgroup has access to the resulting variable ${qt_arch_types}, again no matter if +universal or not.  I originally added this as a "pre-patch", which will only get executed if 'patch' is one of the stages being executed -- so separating stages on the CLI will result in this variable not being correct for patch, configure, build, and so forth.  I've tried setting this up as a variant (part of "universal"), but not all qt4 portgroup ports support universal; I've tried making it part of a "platform darwin", but that doesn't get executed until -after- the +universal if it exists.

So, today's update will be to make it a proc & then in any port that uses it first call the proc & then that variable will be available any time after it.  Not quite what I wanted, but it works.  Any idea how to get this variable to show up automatically, without having to call the proc? - MLD


More information about the macports-dev mailing list