Bug#367853: libdb transition policy?

2006-05-30 Thread Gerfried Fuchs
Hi!

 Sorry for late response.

* Nikita V. Youshchenko [EMAIL PROTECTED] [2006-05-24 12:10]:
 However, contrary to what the NM templates suggest, symbol versioning
 is not a cure-all for all ABI incompatibilities.  If libetpan returns
 a DB_ENV * in its API, you need to port[1] all its dependencies to the
 new Berkeley DB version.
 
 No, libetpan uses libdb only internally, and does not export it.
 
 So I guess the question is to people who maintain etpan-ng and 
 sylpheed-claws-gtk2 - is it safe for your packages if I will upload new 
 version of libetpan (without soname change or package name change) that 
 will link against libdb4.4?

 I don't know if anyone has tried to, but I spoke to Hoa (= upstream)
about the thing, and it was like I expected: libetpan uses libdb for its
cache files. If it can't read them (like, b0rked file, or incompatible
old db file) it would get regenerated anyway. So there is no
compatibility problem with changing the libdb in libetpan at all.

 Have fun with updating the library, it won't affect depending packages. :)
Some times are that easy to solve, you know?

 So long,
Alfie
-- 
So ist das Leben eben: Es muss Beben geben, ab und zu.
Noch eben standst Du in der Sonne -- uuh, da kommt der Regen
  -- Seeed, Tide Is High


signature.asc
Description: Digital signature


Bug#367853: libdb transition policy?

2006-05-30 Thread Nikita V. Youshchenko
  Have fun with updating the library, it won't affect depending packages.
 :) Some times are that easy to solve, you know?

Ok, will upload today :)


pgpIuC2az1vuQ.pgp
Description: PGP signature


Bug#367853: libdb transition policy?

2006-05-30 Thread DINH Viêt Hoà

On 30 May 2006, at 12:50, Gerfried Fuchs wrote:


Hi!

 Sorry for late response.

* Nikita V. Youshchenko [EMAIL PROTECTED] [2006-05-24 12:10]:
However, contrary to what the NM templates suggest, symbol  
versioning
is not a cure-all for all ABI incompatibilities.  If libetpan  
returns
a DB_ENV * in its API, you need to port[1] all its dependencies  
to the

new Berkeley DB version.


No, libetpan uses libdb only internally, and does not export it.

So I guess the question is to people who maintain etpan-ng and
sylpheed-claws-gtk2 - is it safe for your packages if I will  
upload new
version of libetpan (without soname change or package name change)  
that

will link against libdb4.4?


 I don't know if anyone has tried to, but I spoke to Hoa (= upstream)
about the thing, and it was like I expected: libetpan uses libdb  
for its

cache files. If it can't read them (like, b0rked file, or incompatible
old db file) it would get regenerated anyway. So there is no
compatibility problem with changing the libdb in libetpan at all.


In fact, I checked the code and it does not this, the database won't  
be regenerated but that might be a enhancement to implement in  
libetpan. Do we need a release to fix this ?

That means that cache files must be deleted by the user.

--
DINH Viêt Hoà




Bug#367853: libdb transition policy?

2006-05-24 Thread Florian Weimer
* Andreas Barth:

 Why that? It would only affect packages that (correctly or wrongly) also
 depend on libdb4.2. (And libdb4.2 unfortunatly doesn't have versioning,
 otherwise, it wouldn't be any issue; lidb4.3 and libdb4.4 are better in
 that regard.)

Berkeley DB 4.2 was compiled such that every exported symbol ends with
_4002.  Have a look at:

  $ readelf -sW /usr/lib/libdb-4.2.so  | grep -v _4002

This means that even though it does not use symbol versioning, it can
coexist with other versions in the same process image.

However, contrary to what the NM templates suggest, symbol versioning
is not a cure-all for all ABI incompatibilities.  If libetpan returns
a DB_ENV * in its API, you need to port[1] all its dependencies to the
new Berkeley DB version.

[1] A simple recompilation may not be enough because a new Berkeley DB
version usually changes the API in slight ways.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#367853: libdb transition policy?

2006-05-24 Thread Nikita V. Youshchenko

 * Andreas Barth:
  Why that? It would only affect packages that (correctly or wrongly)
  also depend on libdb4.2. (And libdb4.2 unfortunatly doesn't have
  versioning, otherwise, it wouldn't be any issue; lidb4.3 and libdb4.4
  are better in that regard.)

 Berkeley DB 4.2 was compiled such that every exported symbol ends with
 _4002.  Have a look at:

   $ readelf -sW /usr/lib/libdb-4.2.so  | grep -v _4002

 This means that even though it does not use symbol versioning, it can
 coexist with other versions in the same process image.

 However, contrary to what the NM templates suggest, symbol versioning
 is not a cure-all for all ABI incompatibilities.  If libetpan returns
 a DB_ENV * in its API, you need to port[1] all its dependencies to the
 new Berkeley DB version.

No, libetpan uses libdb only internally, and does not export it.

So I guess the question is to people who maintain etpan-ng and 
sylpheed-claws-gtk2 - is it safe for your packages if I will upload new 
version of libetpan (without soname change or package name change) that 
will link against libdb4.4?

Nikita


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#367853: libdb transition policy?

2006-05-24 Thread Steve Langasek
On Wed, May 24, 2006 at 07:59:48AM +0200, Florian Weimer wrote:

  Why that? It would only affect packages that (correctly or wrongly) also
  depend on libdb4.2. (And libdb4.2 unfortunatly doesn't have versioning,
  otherwise, it wouldn't be any issue; lidb4.3 and libdb4.4 are better in
  that regard.)

 Berkeley DB 4.2 was compiled such that every exported symbol ends with
 _4002.  Have a look at:

   $ readelf -sW /usr/lib/libdb-4.2.so  | grep -v _4002

 This means that even though it does not use symbol versioning, it can
 coexist with other versions in the same process image.

 However, contrary to what the NM templates suggest, symbol versioning
 is not a cure-all for all ABI incompatibilities.  If libetpan returns
 a DB_ENV * in its API, you need to port[1] all its dependencies to the
 new Berkeley DB version.

Then again, if libetpan returns a DB_ENV * in its API, it deserves a special
award for retarded library design.

Happily, it doesn't do this.

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
[EMAIL PROTECTED]   http://www.debian.org/


signature.asc
Description: Digital signature


Bug#367853: libdb transition policy? (Was: Re: Bug#367853: libetpan: Please consider transitioning to libdb4.4)

2006-05-23 Thread Nikita V. Youshchenko
[CCing to -devel and to people who maintain packages that depend on 
libetpan]

 Package: libetpan
 Severity: wishlist


 Hi,
 currently several versions of the berkeley db libraries are used in the
 archive: libdb[4.2,4.3,4.4].
 Please consider upgrading to libdb4.4 in order to ship etch with fewer
 versions of this library.

Thank you for pointing this.

However, if I will build library against libdb4.4 instead of libdb4.2, this 
will probably break any binaries built against the library - both packaged 
and local.

Asking upstream to change soname is IMO not an option in this case because 
libdb transition is debian internal activity, and upstream has nothing to 
do with it.

So how to handle this? Change soname (making it different from upstream)?

Reading Library Packaging guide [1] could not point me to any particular 
solution.

Btw, I guess the same situation is with other packages also - maybe there 
is some policy around this particular transition?

Nikita

[1] http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#367853: libdb transition policy?

2006-05-23 Thread Florian Weimer
* Nikita V. Youshchenko:

 However, if I will build library against libdb4.4 instead of
 libdb4.2, this will probably break any binaries built against the
 library - both packaged and local.

What kind of interface does libetpan expose?  Based on the package
description, I wouldn't expect the library to export any Berkeley DB
objects at all.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#367853: libdb transition policy?

2006-05-23 Thread Florian Weimer
* Nikita V. Youshchenko:

 * Nikita V. Youshchenko:
  However, if I will build library against libdb4.4 instead of
  libdb4.2, this will probably break any binaries built against the
  library - both packaged and local.

 What kind of interface does libetpan expose?  Based on the package
 description, I wouldn't expect the library to export any Berkeley DB
 objects at all.

 Library internally uses libdb (to maintain mail cache, and probably
 for other things also), and is currently linked against libdb4.2. So
 the issue exists.

Berkeley DB uses symbol versioning, so I don't think changing the DB
version will affect the library ABI.

You need to devise a procedure for upgrading the database
environments, of course.  But this is completely separate from soname
issues.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#367853: libdb transition policy?

2006-05-23 Thread Nikita V. Youshchenko

 * Nikita V. Youshchenko:
  However, if I will build library against libdb4.4 instead of
  libdb4.2, this will probably break any binaries built against the
  library - both packaged and local.

 What kind of interface does libetpan expose?  Based on the package
 description, I wouldn't expect the library to export any Berkeley DB
 objects at all.

Library internally uses libdb (to maintain mail cache, and probably for 
other things also), and is currently linked against libdb4.2. So the issue 
exists.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#367853: libdb transition policy? (Was: Re: Bug#367853: libetpan: Please consider transitioning to libdb4.4)

2006-05-23 Thread Andreas Barth
* Nikita V. Youshchenko ([EMAIL PROTECTED]) [060523 17:22]:
 However, if I will build library against libdb4.4 instead of libdb4.2, this 
 will probably break any binaries built against the library - both packaged 
 and local.

Why that? It would only affect packages that (correctly or wrongly) also
depend on libdb4.2. (And libdb4.2 unfortunatly doesn't have versioning,
otherwise, it wouldn't be any issue; lidb4.3 and libdb4.4 are better in
that regard.)

AFAICS, this is only the case with etpan-ng. So, perhaps a conflict
between your new version and the current version of etpan-ng and an
upload of a changed version of etpan-ng (with a conflict to the current
version of libetpan) could help? Gerfried, what do you think?


Cheers,
Andi
-- 
  http://home.arcor.de/andreas-barth/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]