On 2015-5-2 23:30 , Lawrence Velázquez wrote:
> On May 2, 2015, at 9:05 AM, Ryan Schmidt <[email protected]> wrote:
> 
>> But it's not totally clear to me what proper library versioning entails -- 
>> what specifically I should be telling the developers of those projects to do 
>> instead. There are too many different version numbers. For example:
>>
>>
>> $ port installed gettext
>> The following ports are currently installed:
>>  gettext @0.19.4_0+universal (active)
>>
>> $ otool -L /opt/local/lib/libintl.dylib 
>> /opt/local/lib/libintl.dylib:
>>      /opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current 
>> version 10.3.0)
>>      /opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current 
>> version 8.1.0)
>>      /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
>> version 1213.0.0)
>>      
>> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
>>  (compatibility version 150.0.0, current version 1151.16.0)
>>
>>
>> Assuming gettext is an example of proper library version numbering, what's 
>> the relationship between version "0.19.4" and version "8" and version 
>> "10.3.0"? What do each of those numbers represent? What would be the 
>> appropriate circumstances when a developer would change each of those 
>> numbers?
> 
> https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW23
> 
> vq

tl;dr version:

Increase current_version when the library changes in any way.

Increase compatibility_version when new symbols are added.

Increase the major version (AKA "soname") when any symbols are removed
or have their semantics changed.

- Josh
_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to