On Fri, 5 Oct 2007 10:19:59 -0700 Michael Jennings <[EMAIL PROTECTED]> babbled:

> 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. :)

yeah - that's what i;m saying. the fact that it has a different numbering
scheme just is painful - have to maintain 2 sets of numbers (yes - the forumla
is what you say to convert from package version to .so version going via
version-info). i'm only saying that we have a lump of shell script there
instead of a big wad of comments to do that for us. i.e. (in extreme ugliness
and a quick 1 minute job in an email:

VER=1.2.3.045
...
AM_INIT_AUTOMAKE(edje, $VER)
...
VMAJ=`echo $VER | awk -F . '{printf("%s", $1);}'`
VMIN=`echo $VER | awk -F . '{printf("%s", $2);}'`
VMIC=`echo $VER | awk -F . '{printf("%s", $3);}'`
SNAP=`echo $VER | awk -F . '{printf("%s", $4);}'`
version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN"
AC_SUBST(version_info)

etc.

i.e. - just a lump of shell logic that takes the package version and creates
a .so version from it that matches by appeasing the libtool version info gods
and sacrificing a little math to them.

a slight problem here is that the .so version for evas is already 1.0.0 so we
are going to make an exception until release (need to check other libs too).

> > 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!

indeed! absolutely. and i hope to maintain that discipline. until 1.0 i'm
reserving the right to break anything and ignore the version - but from 1.0 on
it's "slave to the abi" - we break abi - we go evas 2.0 or edje 3.0 etc. etc.
and onwards as needed, and not because of some marketing desires to call it 2.0
or 3.0 etc. :)

> > 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. :)

yeah - i know :) i'm trying to avoid that though by wanting to use .so
versioning as much as we can without juping into package versioning. that is a
work around after a project has been around long enough to require
compatibility back to older apps (gtk1 vs gtk2 for example) and allowing
development on older branches of the code etc. to continue. i hope not to get
into that boat :)


> 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
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [EMAIL PROTECTED]
裸好多
Tokyo, Japan (東京 日本)

-------------------------------------------------------------------------
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