[GRASS5] [bug #2968] (grass) Re: [Pkg-grass-general] Please use libtool soname versioning

this bug's URL: http://intevation.de/rt/webrt?serial_num=2968
-------------------------------------------------------------------------

On Fri, Feb 04, 2005 at 10:03:25AM -0500, Steve Halasz wrote:

Currently the libraries are versioned like libgrass_shape.6.0.cvs.so
with links. It would be great if you could switch to a soname versioning
scheme a la libtool[1]. This would solve a problem with packaging
programs that depend on the grass libs. Right now, every new release of
grass will break the gdal-grass packages dependencies. The libgrass
version should change based on changes to its interface rather than
versions of grass.

I looked into using libtool for grass and it looked like it was very
helpful to use automake to integrate it. So are there reasons grass
isn't using automake/libtool already?

The (non) usage of libtool has been discussed a few times in the
past, see for example:

http://grass.itc.it/pipermail/grass5/2002-April/005065.html
http://grass.itc.it/pipermail/grass5/2003-November/013059.html

If using libtool isn't palatable,
can we at least adopt the versioning scheme beginning at libgrass0.0.0?

Maybe yes. This should be discussed on the GRASS developers list (note
that the bug report communication is automatically forwarded to the list).

But: We'll have to find a person who is actually implementing that in
this case.

Markus

--- Headers Follow ---

From neteler@itc.it Sat Feb 5 17:32:04 2005

Return-Path: <neteler@itc.it>
Delivered-To: grass-bugs@lists.intevation.de
Received: from mail.intevation.de (aktaia [212.95.126.10])
  by lists.intevation.de (Postfix) with ESMTP id 2ECCC102BF4
  for <grass-bugs@lists.intevation.de>; Sat, 5 Feb 2005 17:32:04 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
  by mail.intevation.de (Postfix) with ESMTP id E4D813700F
  for <grass-bugs@lists.intevation.de>; Sat, 5 Feb 2005 17:32:03 +0100 (CET)
Received: from mail.itc.it (ns.itc.it [217.77.80.3])
  by mail.intevation.de (Postfix) with ESMTP id E960636DC6
  for <grass-bugs@intevation.de>; Sat, 5 Feb 2005 17:32:01 +0100 (CET)
Received: from ntmain.itc.it ([10.0.20.40])
  by mail.itc.it (8.12.11/8.12.11) with SMTP id j15GW0MV026402;
  Sat, 5 Feb 2005 17:32:00 +0100
Received: from orchestra.itc.it ([10.0.10.11])
by ntmain.itc.it (SMSSMTP 4.0.4.64) with SMTP id M2005020517320001418
; Sat, 05 Feb 2005 17:32:00 +0100
Received: from thuille.itc.it. (thuille [10.40.0.110])
  by orchestra.itc.it (8.12.11/8.12.11) with ESMTP id j15GW0ZR012184;
  Sat, 5 Feb 2005 17:32:00 +0100
Received: from thuille.itc.it. (localhost.localdomain [127.0.0.1])
  by thuille.itc.it. (8.12.11/8.12.11) with ESMTP id j15GW0DA004591;
  Sat, 5 Feb 2005 17:32:00 +0100
Received: (from neteler@localhost)
  by thuille.itc.it. (8.12.11/8.12.11/Submit) id j15GW09N004589;
  Sat, 5 Feb 2005 17:32:00 +0100
Date: Sat, 5 Feb 2005 17:32:00 +0100
From: Markus Neteler <neteler@itc.it>
To: Steve Halasz <debian@adkgis.org>
Cc: grass-bugs@intevation.de,
  DebianGIS <pkg-grass-general@lists.alioth.debian.org>
Subject: Re: [Pkg-grass-general] Please use libtool soname versioning
Message-ID: <20050205163200.GB4536@thuille.itc.it>
Mail-Followup-To: Steve Halasz <debian@adkgis.org>,
  grass-bugs@intevation.de,
  DebianGIS <pkg-grass-general@lists.alioth.debian.org>
References: <1107529405.3856.17.camel@marcy>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1107529405.3856.17.camel@marcy>
User-Agent: Mutt/1.4.1i
X-Spam-Status: No, hits=-4.9 tagged_above=-999.0 required=3.0 tests=BAYES_00
X-Spam-Level:

-------------------------------------------- Managed by Request Tracker

Request Tracker wrote:

this bug's URL: http://intevation.de/rt/webrt?serial_num=2968

> If using libtool isn't palatable,
> can we at least adopt the versioning scheme beginning at libgrass0.0.0?

Maybe yes. This should be discussed on the GRASS developers list (note
that the bug report communication is automatically forwarded to the list).

Implementing soname versioning (at least for Linux) is simple enough;
just add:

  -Wl,-soname,$(SONAME)

to the linking command for building shared libraries, where $(SONAME)
is the library name, e.g.:

  SONAME = $(SHLIB_PREFIX)$(SHLIB_NAME)$(SHLIB_SUFFIX).$(SHLIB_VERSION)

[SHLIB_VERSION would need to be defined in any Makefile which includes
Lib.make.]

The main problem is ensuring that developers actually increment the
version whenever they make an incompatible change (otherwise there is
no point in having versioning).

--
Glynn Clements <glynn@gclements.plus.com>