On Saturday, 06 October 2007, at 01:50:06 (+0900),
Carsten Haitzler wrote:

> i know how it works :) i just don't want to work with libtool's
> abortion of a versioning system. i want to do it the old fashioned
> way. .so major version changes == abi break. old calls removed or
> changed abi or functionality. minor version == calls added, but no
> functionality changes in existing calls. micro == no calls added or
> removed, no functionality changes, just internal fixes/improvements.

That's really how it works already, or at least pretty close.  The
middle number is micro, so if anything at all changes, you bump the
middle number.  If you add new API calls, you increment BOTH the first
and third number; this will keep the major soversion the same and bump
the minor version.  If you remove any API calls, set the last number
to 0 after incrementing the first number -- this will bump the major
soversion.

Is that what you were saying?  If so, I totally missed it.  Too early
I guess. :)

> i want to keep the version of the package the same as the lib .so
> version. it's cleaner and nicer. unless we go screw things up and
> decide to name release versions without thought to compatibility -
> then we need to do the below, but if we do things right, we don't
> need to. if i break abi i will cal the package evas-2.0.0.tar.gz (or
> whatever) as opposed to 1.0.0. i will make the package release # the
> same as the lib .so version as needed.

That will work as long as everyone understands that the *package*
version is now a slave to the *library* version, not the other way
around.  We have to make sure the package is versioned based on the
ABI, not just force the soversion to match whatever arbitrary package
version we pick.

It's nice and clean, that's true -- but it's going to take discipline!

> nooo - i don't want to make a new .so for each version with
> -release. there is no need to put the link version directly in the
> library name. i ONLY need to do this if i plan on having 2 or more
> versions of the lib around AND application needing to explicitly
> link at compile time to either a newer or older version. eg. gtk2 vs
> gtk1. (at that point - mayaswell have new lib names too as the
> version is now part of the lib name anyway as far as ld.so etc. are
> concerned).

Right, but it does give one the ability to use the package version
when building the library without breaking soversioning.  But if
you're wanting to keep them in sync by focusing on the library
version, not the package version, that's fine.  It's just not the way
most projects seem to think these days. :)

Michael

-- 
Michael Jennings (a.k.a. KainX)  http://www.kainx.org/  <[EMAIL PROTECTED]>
Linux Server/Cluster Admin, LBL.gov       Author, Eterm (www.eterm.org)
-----------------------------------------------------------------------
 "The world isn't run by weapons any more, or energy, or money.  It's
  run by little 1's and 0's, little bits of data.  It's all just
  electrons!  There's a war out there, old friend -- a world war, and
  it's not about who's got the most bullets.  It's about who controls
  the information:  what we see and hear, how we work, what we think.
  It's all about the information." -- Cosmo (Ben Kingsley), "Sneakers"

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to