On Mon, Jul 21, 2008 at 8:57 PM, Charlie Savage <[EMAIL PROTECTED]> wrote:
>> So, that means is good to put the DLLs in ruby/bin, like One-Click
>> Installer is doing.
>
> Yes, I think that is the right choice for the one click installer.
>
> For an individual GEM, I think either solution is ok - a) copying the shared
> library to ruby/bin or b) manipulating the path to add the path the shared
> library
>

Hmn, I was talking that One-Click Installer did that in the past since
it bundled a lot of extensions and gems, but we are shifting to a
gem-based design where RubyGems plan a important role.

Manipulating the path? that means change code in RubyGems to take care
of each gem that expose a "binary library"... I don't like the idea.

>> Right now RubyGems offer you a mechanism that set stubs in ruby/bin,
>> but that procedure doesn't like executables or even shared libraries
>> (dll):
>>
>>
>> http://rubyforge.org/pipermail/rubygems-developers/2007-October/003123.html
>>
>> Since we already have #executables and #bindir to define where those
>> are inside our gems.
>>
>> What about #binaries? and we thread them different that executables
>> (verbatim copy them instead of adding shebangs).
>
> I'd probably be more specific and define a new spec setting called
> "libraries" that means RubyGems will:
>

But a library is also a ruby library, which doesn't apply. Is it a
binary dependency of the extension bundled in the gem.

> a) On installation copy the files marked "libraries" to ruby/bin
> b) On loading a gem, update the path to include the location of the library
> files (if any are set).
>
> So:
>
> Directory:
>
> libxml_ruby
>  lib
>    libxml2-2.dll
>
>
> GemSpec:
>
> spec.libraries << "lib/libxml2-2.dll"
>
> How does that sound?
>

Hmn, that definetely add some platform specific code beyond what
RubyGems should be doing... and from POV I don't like it so much.

> And what should I do in the short term?
>

Indicate your users to copy the dll or provide a RubyGems binary
(minimal script) that performs the dll copy form that particular
folder into ruby/bin (Gem.bindir)

Something similar is what I do for mongrel_service.

-- 
Luis Lavena
AREA 17
-
Human beings, who are almost unique in having the ability to learn from
the experience of others, are also remarkable for their apparent
disinclination to do so.
Douglas Adams
_______________________________________________
Rubygems-developers mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rubygems-developers

Reply via email to