Re: [pgsql-packagers] Getting to 8.3 beta1

From: Zdenek(dot)Kotala(at)Sun(dot)COM
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Stephen Frost <sfrost(at)snowman(dot)net>, Heikki Linnakangas <heikki(at)enterprisedb(dot)com>, pgsql-hackers(at)postgresql(dot)org, pgsql-packagers(at)postgresql(dot)org
Subject: Re: [pgsql-packagers] Getting to 8.3 beta1
Date: 2007-09-27 21:32:05
Message-ID: 46FC2155.7080200@Sun.COM
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:

>Stephen Frost <sfrost(at)snowman(dot)net> writes:
>
>
>>>Tom Lane wrote:
>>>
>>>
>>>>* Do we bump the .so major version number for libpq? I think we should
>>>>because there are two new exported functions since 8.2, and on at least
>>>>some platforms there's nothing else than major number to disambiguate
>>>>whether a client needs these or not. Comments?
>>>>
>>>>
>
>
>
>>Bumping the soname is an indication of a binary-incompatible change and
>>means that old binaries *can't* link against the new library, and so
>>everything has to be recompiled. Please don't do that unless it really
>>is a binary-incompatible change because it's alot of extra work for
>>packagers to deal with all of their reverse dependencies and getting
>>everyone to recompile.
>>
>>
>
>It's not only a question of whether old binaries can use the newer
>library; it's a question of whether a package's dependencies correctly
>show that it needs the newer library (if it does). Without this,
>dependency-solving update systems like yum, apt, etc may fail to install
>prerequisite updates.
>
>If we can skip the compatibility-package pushup this time around,
>I'll be as happy as anyone. But I'm worried about getting into the
>kind of mess we had in 8.0, where we decided *after* release that
>we needed a soname bump :-(
>
>Anyone on -packagers want to weigh in on this?
>
>

I'm for bumbing. Because if we use same number it also means that new
binary will able to use old library. But if there are two new functions
number must be increased. Standard practice how ELF loader works is
following:

Each library could have tree numbers libxxx-X.Y.Z. Loader/Linker ignores
Z number. It means any binaries can be linked e.g. with X.Y.Z+1 or
X.Y.Z-1. This is used for bugfixing. Middle number Y means that binaries
which requires Y can also use Y+1 (and linker takes it), but not Y-1. It
is used for adding new thing into interface - backward compatible.
Change in major number X means it is not backward compatible libraries.

More information you can get there:
http://www.iecc.com/linker/

In PostgreSQL perspective, we use only major number. We can increase
main number (X) or best way is add Y and keep major number same. But I
don't know if it is possible in current infrastructure and if it will
work everywhere.

Zdenek

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Zdenek.Kotala 2007-09-27 21:52:52 Re: Getting to 8.3 beta1
Previous Message Tom Lane 2007-09-27 21:04:32 Re: Eliminate more detoast copies for packed varlenas