[macports-ports] branch master updated: snowleopardfixes: new port to deal with missing functions in Snow Leopard

Ryan Schmidt ryandesign at macports.org
Fri Jul 21 02:21:49 UTC 2017


On Jul 10, 2017, at 09:44, Ken Cunningham wrote:

>> Why muniversal?
> 
>> The fact that the universal build succeeds and actually produces universal binaries suggests the muniversal portgroup isn't needed. All you need is "variant universal {}" after "use_configure no".
> 
> thanks for fixing that. I just used muniversal because I saw the portgroup there, and adding it worked.
> 
> TBH, I never would have guessed that adding this bit to the portfile
> 
> variant universal {}
> 
> would enable macports to build it universal, but I'm certainly glad you knew. At first glance, I would have thought it would disable a universal build, like that construct seems to do for destroot, etc. ..

MacPorts defines a default universal variant that works with autotools configure scripts and some hand-made configure scripts.

"use_configure no" declares that this port does not use any configure script, therefore MacPorts disables its default universal variant and it's up to you to provide one.

"variant universal {}" declares that a universal variant should be offered to the user, and that it requires no additional code as compared to the regular build.

"get_canonical_archflags" returns the canonical archflags, informed by the user's processor (or build_arch setting in macports.conf) and whether or not the user has selected the universal variant (and, if so, the universal_archs setting in macports.conf).

"PortGroup muniversal 1.0" defines a universal variant that builds multiple times, once for each arch, then uses lipo(1) to glue them together. This is needed for build systems that incorrectly assume results obtained during the configure phase (such as endianness or bitness tests) are valid during the build phase but snowleopardfixes doesn't make those assumptions.

~

MacPorts declares a default build phase that runs "make" and a default destroot phase that runs "make install".

"destroot {}" declares that this default destroot phase is to be overridden with nothing, which would result in a port that can't be installed, so that wouldn't be done. It wouldn't be unusual however for the destroot phase to be overridden with a non-empty block that installs files.

"build {}" is sometimes used to declare an empty build phase, for unusual build systems that combine building with either configuring or installing. More likely you would see a port overriding the build phase with a non-empty block that does the build.



More information about the macports-dev mailing list