Re: [pgsql-packagers] Getting to 8.3 beta1 - Mailing list pgsql-hackers

From Zdenek.Kotala@Sun.COM
Subject Re: [pgsql-packagers] Getting to 8.3 beta1
Date
Msg-id 46FC2155.7080200@Sun.COM
Whole thread Raw
In response to Re: Getting to 8.3 beta1  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [pgsql-packagers] Getting to 8.3 beta1
List pgsql-hackers
Tom Lane wrote:

>Stephen Frost <sfrost@snowman.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



pgsql-hackers by date:

Previous
From: Chris Browne
Date:
Subject: Re: Getting to 8.3 beta1
Next
From: Zdenek.Kotala@Sun.COM
Date:
Subject: Re: Getting to 8.3 beta1