Good catch!

It looks like we could improve macruby_deploy to warn (or die?) if of the 
embedded binaries link against something in /opt (or better, in anything but 
the default link paths). That would make sure this problem would not happen 
again.

Laurent

On May 18, 2011, at 9:06 AM, Eloy Duran wrote:

> Hi,
> 
> It seems that the nokogiri gem that you are bundling has been compiled 
> against a iconv installation in /opt/local (macports|homebrew). Some users 
> probably have it as well which is why they wouldn't complain, but people with 
> a default osx installation don't. Here's what it does on my system, which 
> uses only default system libs:
> 
> % otool -L 
> /Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems/nokogiri-1.4.4/ext/nokogiri/nokogiri.bundle
> /Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems/nokogiri-1.4.4/ext/nokogiri/nokogiri.bundle:
>       
> /Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/libmacruby.dylib 
> (compatibility version 0.11.0, current version 0.11.0)
>       /usr/lib/libexslt.0.dylib (compatibility version 9.0.0, current version 
> 9.13.0)
>       /usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 
> 3.24.0)
>       /usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 
> 10.3.0)
>       /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 
> 7.0.0)
>       /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
> version 125.2.10)
> 
> As you can see, it references /usr/lib/libiconv.2.dylib, not 
> /opt/local/lib/libiconv.2.dylib. So it's probably best to only compile 
> against system versions.
> 
> To make sure this doesn't happen in the future, you should always test your 
> app on clean installs of the system. It's pretty easy to keep a spare HD 
> around with multiple version installs from which you boot and test the whole 
> process.
> 
> HTH
> 
> On 18 mei 2011, at 17:24, Francis Chong wrote:
> 
>> Hi
>> 
>> I tried to use macruby_deploy to embed my macruby based mac app with gems 
>> (/usr/local/bin/macruby_deploy --compile --embed --gem nokogiri)
>> 
>> The resulting app run fine on my machine. However, on many of our testers, 
>> the app failed with "LoadError". It seems nokogiri depends on a libiconv 
>> with different version. (nokogiri.bundle requires version 8.0.0 or later, 
>> but libiconv.2.dylib provides version 7.0.0)
>> 
>> We cant ask our user to install each of those library. Are there any way I 
>> can build the app embed the correct version of libiconv?
>> 
>> Logs:
>> 
>> dlopen(/Applications/ChineseIdiom.app/Contents/Frameworks/MacRuby.framework/Versions/0.10/usr/lib/ruby/site_ruby/1.9.2/nokogiri/nokogiri.bundle,
>>  9): Library not loaded: /opt/local/lib/libiconv.2.dylib
>> 18/05/2011 10:44:53 PM       
>> [0x0-0x157b57a].hk.ignition.mac.ChineseIdiom[1576]        Referenced from: 
>> /Applications/ChineseIdiom.app/Contents/Frameworks/MacRuby.framework/Versions/0.10/usr/lib/ruby/site_ruby/1.9.2/nokogiri/nokogiri.bundle
>> 18/05/2011 10:44:53 PM       
>> [0x0-0x157b57a].hk.ignition.mac.ChineseIdiom[1576]        Reason: 
>> Incompatible library version: nokogiri.bundle requires version 8.0.0 or 
>> later, but libiconv.2.dylib provides version 7.0.0 - 
>> /Applications/ChineseIdiom.app/Contents/Frameworks/MacRuby.framework/Versions/0.10/usr/lib/ruby/site_ruby/1.9.2/nokogiri/nokogiri.bundle
>>  (LoadError)
>> 18/05/2011 10:44:53 PM       
>> [0x0-0x157b57a].hk.ignition.mac.ChineseIdiom[1576]              from 
>> /Applications/ChineseIdiom.app/Contents/Resources/rb_main.rb:20:in `<main>'
>> 18/05/2011 10:44:53 PM       com.apple.launchd.peruser.501[191]      
>> ([0x0-0x157b57a].hk.ignition.mac.ChineseIdiom[1576]) Exited with exit code: 1
>> 
>> Thanks
>> 
>> Francis Chong
>> Ignition Soft
>> http://ignition.hk
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel@lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
> 
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel@lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to