[Pginstaller-devel] LibEay32.dll

Torsten Ihben TIhben at Roseninspection.net
Tue May 3 10:02:21 GMT 2005


> > The PostgreSQL installer installs the file LibEay32.dll into the 
> > system folder. This file has a creation date of december 
> > 12, 2003 and 
> > a modify date of march 18, 2004, and it has no version resource!
> > 
> > I encountered a version of this file on a system with a version 
> > resource, with creation date and modify date of december 12, 2003. 
> > This file resided in the system folder, so during the PostgreSQL 
> > installation Windows Installer didn't replace the existing file 
> >
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/se
tup/file_versioning_rules.asp
> > ). The version of buildbd.exe shipped 
> > with PostgreSQL didn't work with the existing version of 
> > LibEay32.dll, 
> > so the installation was rolled back, leaving the customer with a 
> > cryptic error message and no PostgreSQL on his system.
> You did nto get a warning about this? IIRC the installer 
> loads the DLL and checks the version on startup.

Nope, the installer run through without any error. Then builddb is
launched, which reports an error "ordinal not found" because I have an
older version of libeay32.dll.

Anyway, how could the installer check the version? The file shipped with
PostgreSQL has no version!

> > Why do you ship PostgreSQL with a non-versioned libeay32.dll? 
> > Will you provide a versioned file for future releases?
> Because the official OpenSSL distribution is not versioned. 
> I'm trying to convince them to start doing this..

Hmm, then where did this file come from that caused the problem? Its
version resource says:

SSLeay encryption library, Copyright (c) 1998-2000 The OpenSSL Project.
All rights reserved.
File and Product Version 0.9.6.101
Comment: "This version contains md_rand MT (See OpenSSL CVS checkins
4613, 4951 (Summer 2001) and related) fix and /Oy- compile flag."

> Wherever you got the versioned file from is not using the 
> official distribution.

Strange. Ok, since the official versions should not be versioned it's
fine as it's now. When our customers report this problem we can safely
remove the existing libeay32.dll, then retry the installation. So you
don't have to convince the OpenSSL people to include a version resource.
Apart from this problem I would prefere versioned DLLs to unversioned
files, since not even the file date gives a hint about the version! Why
not use a present mechanism that provides usefull information?

CU, Torsten


More information about the Pginstaller-devel mailing list