acl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Acl-devel] [attr PATCH 1/3] Add explicit symbol versioning for attr


From: Dmitry V. Levin
Subject: Re: [Acl-devel] [attr PATCH 1/3] Add explicit symbol versioning for attr_copy_action
Date: Mon, 21 Sep 2015 22:37:54 +0300

On Mon, Sep 21, 2015 at 02:52:34PM -0400, Mike Frysinger wrote:
> On 21 Sep 2015 21:19, Dmitry V. Levin wrote:
> > On Sat, Sep 19, 2015 at 03:19:32AM -0400, Mike Frysinger wrote:
> > > On 15 Sep 2015 19:41, Dmitry V. Levin wrote:
> > > > As all symbols that are part of public interface are expected
> > > > to be properly versioned, add versioning to attr_copy_action.
> > > > ---
> > > >  exports | 5 +++++
> > > >  1 file changed, 5 insertions(+)
> > > > 
> > > > diff --git a/exports b/exports
> > > > index 6b6ca17..253dbbf 100644
> > > > --- a/exports
> > > > +++ b/exports
> > > > @@ -55,3 +55,8 @@ ATTR_1.2 {
> > > >         attr_list;
> > > >         attr_listf;
> > > >  } ATTR_1.1;
> > > > +
> > > > +ATTR_1.3 {
> > > > +    global:
> > > > +       attr_copy_action;
> > > > +} ATTR_1.2;
> > > 
> > > this one i'm not sure about because i don't know what the symbol
> > > versioning policies are for libattr.
> > 
> > I'm not sure either, just using common sense.
> > 
> > > using ATTR_1.3 looks fine, but so would adding it to ATTR_1.2.
> > > Andreas will have to comment.
> > 
> > It has to be a new version, otherwise applications linked with versioned
> > attr_copy_action will not require libattr that provides that version,
> > which in turn will cause compatibility issues in some package management
> > systems.
> 
> how is a missing version symbol that much different from a missing
> symbol ?  some systems look only at the version symbols and not the
> symbols they version ?

Yes, most of rpm-based systems behave this way.

For example, in Fedora Rawhide,

$ rpm -q --provides libattr
config(libattr) = 2.4.47-14.fc24
libattr = 2.4.47-14.fc24
libattr(x86-64) = 2.4.47-14.fc24
libattr.so.1()(64bit)
libattr.so.1(ATTR_1.0)(64bit)
libattr.so.1(ATTR_1.1)(64bit)
libattr.so.1(ATTR_1.2)(64bit)

$ rpm -q -R coreutils | grep -F libattr
libattr.so.1()(64bit)
libattr.so.1(ATTR_1.1)(64bit)

This system would allow installation of a package linked with
address@hidden without installing a proper libattr
that provides address@hidden

The rule of thumb is to never add symbols to released interfaces.


-- 
ldv

Attachment: pgpiNUBdjyzKc.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]