lua-users home
lua-l archive

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


On Wed, Mar 31, 2004 at 06:15:14PM -0300, Andre Nathan wrote:
> * .lua files are installed to $PREFIX/share/lua5
> * .so/.a files are installed to $PREFIX/lua5

Probably supposed to say $PREFIX/lib/lua5 here? Also, maybe it should
be lua50, lua-5.0 or whatever instead as (?) Lua 5.1 is incompatible?

> So what is left to decide is wether library files should have a version
> number or not.

I don't think the module standard should be concerned with versioning.

There are two kinds of version numbers for libraries, the "package version"
and "API version". For example, the main Lua library under Debian is

 liblua50.so.5.0
       api   package

with a symlink

 liblua50.so

API version is part of the library name and system utilities are not 
concerned with it. 'ldconfig' is used to manage symlinks based on package
versions. On Windows such are not used, AFAIK. Ideally there would be only
one version number, and the addition of the API version can be seen as a 
failure of the .so.X.Y.Z scheme where one can not tell gcc -l which version
to use.

API version is needed if it is expected that a system may need multiple 
versions of the library with different APIs, and it should be up to the
module author to decide if this is the case. In this case the stubs should
also be versioned. If incompatible versions of the module are indicated 
with API versions, 'ldconfig' can be used to manage 'package versions' if
module authors consider those usefull. 


-- 
Tuomo