[26461] users/pipping/merge.rb

Weissmann Markus mww at macports.org
Mon Jun 25 03:09:14 PDT 2007


On 25 Jun 2007, at 11:37, Ryan Schmidt wrote:

> On Jun 25, 2007, at 03:47, Kevin Ballard wrote:
>
>> On Jun 25, 2007, at 1:41 AM, Weissmann Markus wrote:
>>
>>> Do you have any further information on unify.pl? Does it have a  
>>> web page or some documentation? I wasn't aware of it neither and  
>>> also missed your previous mails.
>>> I do not expect though, that we are reinventing the wheel: The  
>>> requirements that I'd expect Mozilla to have on such a tool  
>>> differ quite a bunch to ours:
>>> Mozilla knows what they are building and they know that both  
>>> builds are "the same" stuff - we don't (e. g. some software may  
>>> enable features on certain archs).
>
> If files are present in one tree but not the other, unify can be  
> configured to either include or omit those files.
>
>>> We also do not only need to merge two binaries, we also need to  
>>> test and merge different kind of files, like C header files,  
>>> pkgconfig files, libraries, etc.
>
> unify handles this.
>

I just had a look at unify.pl and I can't see how it e. g. handles  
merging C-header files (this could e. g. be done with #ifdef arch) or  
pkgconfig files.


>>> I'd expect the actual lipo-ing of binaries to be the smallest  
>>> part on Elias' tool - if that's what unify.pl is doing, I see no  
>>> problems.
>>>
>>> I'd be happy for more information on unify.pl - searching the net  
>>> I don't find anything. :/
>
> Just download the script and try it out, or read its documentation  
> at the top of the script.
>
>> Unify takes two trees and merges them into one. Where the trees  
>> differ, if it's an object file it lipo's them together, otherwise  
>> it omits the file from the result (because there's no way to  
>> reliably merge differing non-object files - how can you guarantee  
>> that whatever way you choose to merge will actually work?).
>
> If non-object files differ in the two trees, unify exits with an  
> error code.
>

Well, I really think that the needs of the Mozilla people are quite  
different to ours: They know both trees, they do not need to cope  
with different programming languages, header files, etc.
I also couldn't find it handling other archs than ia32 and ppc32 -  
after all we already have aa64 and ppc64 and perhaps we'll get arm32  
(iPhone ;) and what-do-I-know.


>> I don't know offhand how to actually get unify.pl, but I know it's  
>> part of Mozilla.
>
> I did not find a web page for it or a way to download it  
> separately; at the time, I downloaded the Firefox source  
> distribution and found unify inside.
>
> At the time I also couldn't find an online repository browser for  
> the Mozilla repository, but I now found a copy of the unify script  
> here:
>
> http://gnuzilla.gnu.org/fulltree/iceweasel-1.5.0.7-g2/build/macosx/ 
> universal/unify
>
> I verified that this is the same version of unify I downloaded  
> earlier, whose filesystem modification date is March 21, 2006.
>

Thanks a lot for the direct link - I think that having a look at  
unify.pl can help us avoid some already solved problems. Though I  
still think that just using unify.pl is not enough - we have a lot  
more things to handle than unify.pl already can.

Making use of unify.pl would also get us into using MPL-licensed code  
which will be a pain if we integrate merge into port.


-Markus

---
Markus W. Weissmann
http://www.mweissmann.de/





More information about the macports-dev mailing list