This is the mail archive of the cygwin-apps mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ITP] znc 1.6.0

On Jul 19 20:54, Alexey Sokolov wrote:
> 19.07.2015 20:10, Achim Gratz ÐÐÑÐÑ:
> > Alexey Sokolov writes:
> >>> Is "1" some special number which should be used?
> > 
> > Just some number that gets bumped whenever the ABI changes
> > (i.e. applications that link against the library would need to be
> > recompiled).
> > 
> Well, in that case 1.6 works fine. When 1.7.0 will be released, the
> filename will be changed to cygznc-1.7.dll.

No, hang on.  The reason for the version-independent number is to allow
keeping the number the same for multiple versions of the package, and
only bump it when an ABI breakage occurs.  Consider this scenario with
different versioning schemes:

  znc 1.6

  --> cygznc1.dll  or  cygznc-1.6.dll

  znc 1.7 introduces new function znc_foo.  Adding functions is no ABI

  --> cygznc1.dll  or  cygznc-1.6.dll

  znc 1.8 removes function znc_bar.  ABI breakage; existing modules
  using this functions wouldn't load anymore.

  --> cygznc2.dll  or  cygznc-1.8.dll

  znc 1.9 adds function znc_foobar and a new structure.  No ABI breakage.

  --> cygznc2.dll  or  cygznc-1.8.dll

  znc 2.0 changes parameters to function znc_baz.  ABI breakage since
  existing modules using this function may crash.

  --> cygznc3.dll  or  cygznc-2.0.dll

The first scheme is what most autoconf-based build systems use.
However, openssl, for instance, uses the second scheme.  Both is ok, but
in both schemes the ABI version number attached to the DLL name does not
necessarily reflect the actual version number of the base package.  Did
I explain it sufficiently?

> > You ahould ask Yaakov, but I seem to remember that the preferred way to
> > name new libraries is now without the hyphen.
> Hm, ok...
> Yaakov, what's the plan?

Dunno about Yaakov, but what counts in the first place is to keep track
of the ABI change and only bump the ABI version attached to the DLL name
if a new version of the base package breaks it.  The ABI version itself
is mostly maintained by the project's build system.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgp86ZoueFHJF.pgp
Description: PGP signature

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]