Thread: Module incompatibility detection between 8.0 and 8.1

Module incompatibility detection between 8.0 and 8.1

From
Olivier Thauvin
Date:
I just make postgresql 8.1 rpm for mandriva and I was making basic test. I
made in pgfoundry the module pgrpm (rpm function in postgres).

However after installing postgresql 8.1 I have:

ERREUR:  unable to load library
«/usr/lib64/pgsql/pgrpm.so»: /usr/lib64/pgsql/pgrpm.so: undefined symbol:
MemoryContextSwitchTo

Well the problem here is the module was build with postgresql 8.0. I will
rebuild the module ASAP, this is not a problem.

The problem is rpm has no way to detect this kind of issue:

$ rpm -q --requires pgrpm
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
librpm-4.4.so()(64bit)

Does anyone allready think to add marker into module, and maybe into postgres
and giving a way to rpm or other packaging tools to detect broken linkage ?

To fix the issue, I will add a provide into postgresql-server package,
something like postgresql-ABI = 8.1, add equivalent requires into modules.

Re: Module incompatibility detection between 8.0 and 8.1

From
Martijn van Oosterhout
Date:
On Thu, Nov 10, 2005 at 11:29:15PM +0100, Olivier Thauvin wrote:
> I just make postgresql 8.1 rpm for mandriva and I was making basic test. I
> made in pgfoundry the module pgrpm (rpm function in postgres).

<snip>

> Well the problem here is the module was build with postgresql 8.0. I will
> rebuild the module ASAP, this is not a problem.
>
> The problem is rpm has no way to detect this kind of issue:

<snip>

> Does anyone allready think to add marker into module, and maybe into postgres
> and giving a way to rpm or other packaging tools to detect broken linkage ?
>
> To fix the issue, I will add a provide into postgresql-server package,
> something like postgresql-ABI = 8.1, add equivalent requires into modules.

There is some discussion about this on -hackers. It'll probably happen
at some stage but the actual method is not clear yet.

In the meantime, modules can only work with a single release. I'm
actually not sure about the policy for minor releases.

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Re: Module incompatibility detection between 8.0 and 8.1

From
Tom Lane
Date:
Martijn van Oosterhout <kleptog@svana.org> writes:
> On Thu, Nov 10, 2005 at 11:29:15PM +0100, Olivier Thauvin wrote:
>> To fix the issue, I will add a provide into postgresql-server package,
>> something like postgresql-ABI =3D 8.1, add equivalent requires into modules.

> There is some discussion about this on -hackers. It'll probably happen
> at some stage but the actual method is not clear yet.

I haven't noticed any discussion, but: an extra provides-symbol seems 
completely useless to me.  Just make the external modules depend on
postgresql-server-8.1.

If you do want to discuss this, pgsqlrpms-hackers@pgfoundry.org would
be the place; the general hackers list does not concern itself with
RPM packaging details.
        regards, tom lane