[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