Re: Version numbers on libpq.dll

From: "Magnus Hagander" <mha(at)sollentuna(dot)net>
To: "Bruce Momjian" <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: "Bruce Momjian" <momjian(at)svr1(dot)postgresql(dot)org>, "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "PostgreSQL Win32 port list" <pgsql-hackers-win32(at)postgresql(dot)org>, "Dave Page" <dpage(at)vale-housing(dot)co(dot)uk>
Subject: Re: Version numbers on libpq.dll
Date: 2004-12-13 18:23:05
Message-ID: 6BCB9D8A16AC4241919521715F4D8BCE47638A@algol.sollentuna.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers-win32

>Are you saying this line has to be updated in libpq/libpq.rc?
>
> FILEVERSION 8,0,0,0
>
>and the final zero needs to be incremented, and all the other mentions
>of 8,0,0,0 in that file?

Yes.

>We do have the checklist to update this for every major and minor
>release. What we _don't_ do is to update those from beta/RC to final.

Right. That's what we'd need to do.

>The only change between those two versions is that we update
>the version
>string in configure.in so "SELECT version()" and documentation show the
>proper value.

Right. So we'd either need a way to propagate that change into the .rc
file automatically, or to change it manually.

> This is because the libraries are always installed and
>applications linking against those libraries don't need any change
>between the beta and the final.

You still need the new library.. The thing that made it very clear this
time was the addition of the PQgetcancel during beta. But really, any
change to the library during beta will require a new version...

> I wonder if the proper change is to
>have the installer always install the library and throw an error if it
>fails. Is that possible?

I don't think so. That would certainly violate the rule of how files are
supposed to be installed in the SYSTEM32 directory. You can force it
from the commandline, but not from inside the MSI file, and you can only
force it when re-installing, not when installing a new package (and each
version is a new package).

It seems the only supported way to do that I can find is to create
something called a "companion file" which is "attached" to libpq.dll.
That means you set the version on a different file somewhere on the
system, and then you have to *remove* the version information on
libpq.dll. Now, doing that on a DLL in SYSTEM32 violates all sorts of
guidelines.

Also, it wouldn't solve the problem. say you had 8.0.0rc1 installed and
wanted to install 8.0.0beta4 as well because some testing would be
needed. You'd break your 8.0.0rc1 installation... It's not as common,
but it might happen. (It's still going to give you rpoblems if we do it
right since your beta4 will run with the rc1 DLL file, but it's not that
common to need to rollback the DLL file as it is to need to do it with
the backend, I suppose)

(This is all because we support multiple versions installed at the same
time. MSI has functions to uninstall previous versions automatically,
but we certainly don't want to force that)

//Magnus

Responses

Browse pgsql-hackers-win32 by date

  From Date Subject
Next Message Bruce Momjian 2004-12-13 18:39:11 Re: Version numbers on libpq.dll
Previous Message Vitaly Belman 2004-12-13 18:14:35 PostgreSQL/PGAdmin service hangs when listen_addresses = '*'