[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Putting .so symlinks in libs package for dlopen()ing?

[Please CC all replies to me]

Hi all,

I'm having issues with getting parted's reiserfs support to work in a
way that complies with Debian policy. The issue is that parted dlopen()s
libreiserfs.so and libdal.so (from the libreiserfs-0.3-{0,dev}
packages) for its reiserfs support. This is fine, but the issue is that
the .so symlinks are in the -dev package, so parted's reiserfs support
fails unless the -dev package is installed (BAD). This problem is the
cause of bug #163107.

Possible solutions:

1. Put the .so symlinks in the libreiserfs-0.3-0 package. This breaks
   policy (section 9.0 says that the associated development package
   should contain the shared library without a version number). This is
   also a really bad precedent to set for other shared library packages
   which are dlopen()d.

2. Make parted dlopen() libreiserfs-0.3.so.0 rather than libreiserfs.so.
   This will solve the problem, but is not ideal solution since a minor
   version upgrade or SONAME change of libreiserfs will break parted's
   reiserfs support (note that parted does its own internal checking of
   libreiserfs versions to make sure it is compatible, and gracefully
   fails if it can't resolve all required symbols on dlopen()).
   Also, the parted source code needs to be manually edited on every
   minor or SONAME change of library.

3. Include a symlink to the appropriate libreiserfs in the
   libparted1.6-0 package "/lib/parted/modules/libreiserfs.so" and
   dlopen that instead. This has the added advantage that the symbolic
   link could be updated from libparted's postinst, and I could also
   modify it from libreiserfs's postinst. However, I'd rather find a
   solution that didn't require _any_ mention of parted in libreiserfs,
   other than a Suggests:. Or am I just being a puritan here?

ATM I'm leaning towards 2, or possibly 3. Any comments/queries/further



Timshel Knoll <timshel@pobox.com>, Debian email: <timshel@debian.org>
Debian GNU/Linux developer: http://people.debian.org/~timshel/
GnuPG public key: finger timshel@debian.org

Attachment: pgpG52TGytfNb.pgp
Description: PGP signature

Reply to: