[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
pgpiNUBdjyzKc.pgp
Description: PGP signature