[cups.development] needs to provide backward compatibility API thenbump up soname?

Michael Sweet mike at easysw.com
Wed Aug 2 05:33:18 PDT 2006


Kenshi Muto wrote:
> Hi,
> 
> After my investigation, I think r4683 and r4741 changes of CUPS 1.2
> make libcups API incompatible with older libcups.
> 
> For example the change from cups_strlcpy to _cups_strlcpy breaks
> the combination of cupsd 1.1 and libcupsys 1.2.

We work very hard to not break binary compatibility with *public*
APIs.

Since those emulation functions are a) not public APIs and b) not
available on all systems (i.e. they only show up if your platform
doesn't provide the named functions), they aren't considered for
the library version number.  Non-CUPS programs using these functions
should expect to fail at random times depending on the version of
CUPS that is installed...

> Although such mixture is rare case, I think it's better to bump up
> the soname version if you remove an exported function or change its
> argument against the libraries.

Doing so will cause unnecessary breakage of all existing applications.

The CUPS CMP (now called the CUPS Developer Guide) has always
documented the rules for naming of public APIs, and we have NEVER
documented private APIs to avoid their use.

-- 
______________________________________________________________________
Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Publishing Software        http://www.easysw.com




More information about the cups-devel mailing list