Default +universal variant for configure-based ports
Blair Zajac
blair at orcaware.com
Mon Feb 26 01:58:38 PST 2007
Elias,
Thanks, that does work now.
Regards,
Blair
Elias Pipping wrote:
> r22321 should fix the problem.
>
> please let me know if it does/doesn't.
>
>
> Regards,
>
> Elias Pipping
>
>
> On Feb 26, 2007, at 8:34 AM, Blair Zajac wrote:
>
>> That's a pretty important port, it's at the very bottom of any
>> dependency trees, so I think we should.
>>
>> This kinda raises the point for me, that maybe we should consider
>> having a build farm of 10.3 and 10.4 PPC and i386 that check
>> submissions, ala a smoke test, and after each Subversion commit, the
>> new Ports are built on all platforms. If it breaks, the author of the
>> commit gets an email.
>>
>> I imagine that not everybody has 10.3 around, but I do consider it an
>> important OS X release, as many corporations still haven't upgraded
>> everything to 10.4 yet.
>>
>> Thanks,
>> Blair
>>
>> Elias Pipping wrote:
>>> Well, i could comment it out for now - until 1.4.0 is out. Should I?
>>> that option is indeed needed for +universal to work, though.
>>> Regards,
>>> Elias Pipping
>>> On Feb 26, 2007, at 8:23 AM, Blair Zajac wrote:
>>>> And do we have to wait for MacPorts 1.4.0 before using these new
>>>> commands.
>>>>
>>>> For example, right now libiconv is broken. If you try to build
>>>> something that depends upon it:
>>>>
>>>> $ port -v build libxml2
>>>> Error: Unable to execute port: invalid command name
>>>> "configure.universal_ldflags-append"
>>>>
>>>> I'm presuming this is from this line in
>>>> dports/textproc/libiconv/Portfile:
>>>>
>>>> +configure.universal_ldflags-append \
>>>> + -isysroot /Developer/SDKs/MacOSX10.4u.sdk
>>>>
>>>> Regards,
>>>> Blair
>>>>
>>>> Blair Zajac wrote:
>>>>> Hi Paul,
>>>>> I looked through the diff for r22313 and didn't see anything that
>>>>> checks for OS X versions 10.3 or older, so will this break on older
>>>>> OSes? If it will break things, can you update the code to add this
>>>>> check?
>>>>> I support a binary install of MacPorts on a portable firewire drive
>>>>> that runs Apache, MySQL etc and we need to support 10.3 clients.
>>>>> Regards,
>>>>> Blair
>>>>> Elias Pipping wrote:
>>>>>> That is a lovely addition and I embrace it wholeheartedly.
>>>>>>
>>>>>> Now more than ever it brings up the need for a database that
>>>>>> contains information on which port builds on what platform and if
>>>>>> its variant +universal works, though.
>>>>>>
>>>>>> So a port would have these entries e.g.:
>>>>>>
>>>>>> db44 ppc i386 universal
>>>>>>
>>>>>> Panther ? ? ?
>>>>>> Tiger X ? X
>>>>>> Leopard ? ? ?
>>>>>>
>>>>>> or something like that. maybe i'm the only one to see it that way
>>>>>> but i find it problematic to just assume away every port builds on
>>>>>> every platform and is perfectly stable. also, is it really a good
>>>>>> idea to keep adding -devel ports instead of allowing a port to be
>>>>>> available as multiple "branches"? like bash 3.1.17 and 3.2.9 as a
>>>>>> 3.1 and a 3.2 branch (yes, i'm thinking of gentoo - stable,
>>>>>> testing, etc)?
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Elias Pipping
>>>>>>
>>>>>>
>>>>>> On Feb 26, 2007, at 5:45 AM, Paul Guyot wrote:
>>>>>>
>>>>>>> Dear all,
>>>>>>>
>>>>>>> I've just implemented and committed a default +universal variant
>>>>>>> for configure-based ports. There's been some heat about
>>>>>>> +universal recently and I did not want every port to define the
>>>>>>> same code over and over.
>>>>>>>
>>>>>>> This variant is more or less equivalent to:
>>>>>>> variant universal {
>>>>>>> configure.args-append "--disable-dependency-tracking"
>>>>>>> configure.env-append CFLAGS="-isysroot
>>>>>>> /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
>>>>>>> LDFLAGS="-arch i386 -arch ppc"
>>>>>>> }
>>>>>>>
>>>>>>> However, there is some additional magic:
>>>>>>> * selecting the variant will fail if the port doesn't invoke
>>>>>>> configure (because user may think they can build the port
>>>>>>> universal while it would be effectless)
>>>>>>> * selecting the variant will print a warning message if the port
>>>>>>> already overrides LDFLAGS or CFLAGS in the environment for the
>>>>>>> configure command
>>>>>>> * you can add -O -g if the port requires it with just:
>>>>>>> configure.universal_cflags-append -O -g
>>>>>>> * you can simply redefine the variant to override the default
>>>>>>> code and provide port-specific handler for the universal variant.
>>>>>>>
>>>>>>> etc.
>>>>>>>
>>>>>>> The variant is documented in portfile(7). I tested it with
>>>>>>> several ports and it seems to just work®™.
>>>>>>>
>>>>>>> I'm considering some future enhancements, but let's see what it
>>>>>>> gives if we start building ports with +universal. Of course, the
>>>>>>> build will probably fail if dependencies were not built universal.
>>>>>>>
>>>>>>> Enjoy!
>>>>>>>
>>>>>>> Paul
More information about the macports-dev
mailing list