[Rubyinstaller-devel] [ANN] RubyInstaller: Building installers story and news

Luis Lavena luislavena at gmail.com
Fri Jul 10 01:05:52 EDT 2009


On Thu, Jul 9, 2009 at 9:26 PM, Matt H<matt at smajn.net> wrote:
> On Thu, Jul 9, 2009 at 12:29 PM, Jon<jon.forums at gmail.com> wrote:
>> I saw the following note in your tutorial:
>>
>> Copy “C:\Program Files\PostgreSQL\8.4\bin\libeay32.dll” to “C:\Ruby19\bin” if you encounter an error when Rails attempts to connect to your database.
>>
>> Did you get an error using the libeay32.dll that the installer puts in C:\Ruby19\bin by default?  Did you have to overwrite it with the one from PostgreSQL to get things to work?
>
> I didn't have any issues with the libeay32.dll when I was using
> PostgreSQL 8.3, but after upgrading to 8.4, I was getting an error
> when connecting to PostgreSQL. Copying the dll from the PostgreSQL
> distribution solve the problem and everything seems to be working
> fine. My Rails app passed all 2200 tests.
>

Here, here! I know why that is happening!

Ruby has been built and linked against OpenSSL:

http://github.com/oneclick/rubyinstaller/blob/master/config/ruby_installer.rb#L167-175

The problem is that PostgreSQL uses a newer version, and the ABI
(binary compatibility) of the two versions is different, thus failing
with non-exported symbols and other stuff.

We use a older binary version, and PostgreSQL uses a new one built
from source by them (AFAIK).

I've played on "proper-openssl" branch to generate a static version of
the library instead, so will no longer be a DLL conflict.

This has been discussed previously on this list between me and Lars Christensen.

Maybe that can be resurrected and integrated before next version of
the installer (which I'm going to blog about it soon).

-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry


More information about the Rubyinstaller-devel mailing list