qt4-mac update and +universal issue

Ryan Schmidt ryandesign at macports.org
Fri May 4 10:54:42 PDT 2012


On May 4, 2012, at 09:43, Michael Dickens wrote:

> Sometime recently, within the past week or so, after updating 'port'
> and/or the svn trunk, I can no longer build qt4-mac as +universal.  If I
> insert:
> 
> ui_msg "universal_archs == '${universal_archs}'"
> ui_msg "build_arch == '${build_arch}'"
> ui_msg "qt_arch_types == '${qt_arch_types}'"
> ui_msg "get_canonical_archs == '[get_canonical_archs]'"
> ui_msg "variant_exists universal == '[variant_exists universal]'"
> ui_msg "variant_isset universal == '[variant_isset universal]'"
> 
> somewhere in the top level of the qt4-mac Portfile, the results on my
> system (10.6.8, 64-bit native) are:
> 
> universal_archs == 'x86_64 i386'
> build_arch == 'x86_64'
> qt_arch_types == 'x86_64'
> get_canonical_archs == 'x86_64'
> variant_exists universal == '0'
> variant_isset universal == '1' (with +universal set; '0' without
> +universal)
> 
> I tried adding in "universal_variant yes", but that doesn't change
> anything.

This is all behaving normally. The default universal variant is not added until the entire portfile is parsed. If you want to use [get_canonical_archs] or other methods that test whether the universal variant exists, you'd better make sure the universal variant gets created earlier than that in the portfile. You'll note that whenever I add [get_canonical_archflags] to some port's build.args, I also have to add

variant universal {}

on some line before that in order for it to work.


> I then reverted back to the latest Portfile checkin
> (4.7.4r1), and it shows the same issue.

I currently have qt4-mac +universal installed so it certainly used to work; I'm not going to try to rebuild it since that takes hours. Not sure what would have broken...


> Now, if I look at a debug log (e.g., "sudo port -d
> patch qt4-mac +universal"), I see:
> 
> DEBUG: perl5 5.12.3_1 exists in the ports tree
> DEBUG: perl5 5.12.3_1 +perl5_12 is the latest installed
> DEBUG: perl5 5.12.3_1 +perl5_12 is active
> DEBUG: Merging existing variants '+perl5_12' into variants
> DEBUG: new fully merged portvariants: perl5_12 +
> DEBUG: Changing to port directory: /opt/MacPorts/trunk/dports/lang/perl5
> DEBUG: OS darwin/10.8.0 (Mac OS X 10.6) arch i386
> DEBUG: org.macports.load registered provides 'load', a pre-existing
> procedure. Target override will not be provided
> DEBUG: org.macports.unload registered provides 'unload', a pre-existing
> procedure. Target override will not be provided
> DEBUG: org.macports.distfiles registered provides 'distfiles', a
> pre-existing procedure. Target override will not be provided
> DEBUG: universal_variant is false, so not adding the default universal
> variant
> DEBUG: Executing variant perl5_12 provides perl5_12
> 
> Oddly, I see no entry (at all) for autoconf or automake

Not odd; autoconf and automake are not needed in order to patch the port, so MacPorts does not include it in the dependency checks. If you had used "sudo port -d configure qt4-mac +universal", then you should have seen autoconf and automake in the dependency checks, since autoconf and automake are needed to configure the port.




More information about the macports-dev mailing list