[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: add-on lib versioning (concrete example g-wrap) -- what to do?
From: |
tomas |
Subject: |
Re: add-on lib versioning (concrete example g-wrap) -- what to do? |
Date: |
Fri, 13 Dec 2002 09:47:26 +0100 |
User-agent: |
Mutt/1.3.28i |
On Thu, Dec 12, 2002 at 02:25:46PM -0600, Rob Browning wrote:
>
[good explanation of the problem of `same' add-on lib built
against different guile versions]
OK, it's me again, the guy talking about the big Pees ;-)
> [1] The only contenders I can think ATM of are
>
> - put the guile version in the add-on lib name.
Hmmm. I find library names already nearly unreadable. Imagine making a
Debian package from that...
> - use a /usr/lib/guile/VERSION/ subdir for add on libs and just
> figure out and deal with the -L/LD_LIBRARY_PATH/rpath issues.
I'd favor this way. The advantages I see:
- It's the thing ``the others'' do (Perl, Python, Emacs...). I'm not only
saying that it's tried and tested, but sysadmin's expectations play a
role here too. I'd put *any* add-on which depends on the version
in /usr/lib/guile/VERSION/, be it an .so or an .scm or whatever.
- Note that it'd be possible to put version independent stuff in
/usr/lib/guile still.
Make provision for a `local' place, be it /usr/local/lib/guile/...
(preferred) or something with .../site/...
(one could consider even doing /usr/lib/guile/MAJOR/MINOR, to be able
to put major-version-dependent stuff together, but it seems a bit like
overkill. OTOH it'd be a boon for those poor guys trying to keep several
versions of guile running, e.g. for testing purposes).
> - more radically, drop the idea that people will directly link via
> gcc/ld against guile libs, and require some kind of run-time
> dlopen/dlsym/function-pointer-patchup initialization. i.e.
If the above scheme is to work, one should consider this independently,
I'd say. Fix first the requirements and see whether the tools at hand
(ld/libtool/whatnot) do the job. Develop own tools if necessary.
> scm_make_u8_vector = scm_lt_dlsym (srfi_4_lib, "scm_make_u8_vector");
>
> or similar.
I'd consider this quite attractive, from an introspection standpoint,
but... it's me again ;-)
Regars
-- tomas