lua-users home
lua-l archive

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


On Tue, May 08, 2012 at 02:59:04PM +0200, steve donovan wrote:
> On Tue, May 8, 2012 at 2:45 PM, Enrico Tassi <gares@fettunta.org> wrote:
> > JFYI the README is going to be outdated soon. All Lua packages in debian
> > have been renamed
> 
> Well, I'm happy with progress - these are much better names, and the
> 5.1/5.2 compatibility management is elegant.
> 
> Here excuse my ignorance; there will be a mixture of old and new
> installations; how will old names (like liblua5.1-filesystem0) be
> mapped onto the new name?  Or will Squeeze/Wheezy represent an
> incompatibility boundary, so that a .deb having Lua dependencies will
> only work in either of these?

Short answer: I provide "transitional" packages, no breakage should happen.

Don't feel uninformed, nobody but a Debian developer is supposed to know all
these gory details. But since you are plumbing in the Debian internals now,
I'll give some more infos. Long answer:
 
The source package lua-lpeg now produces 4 binary packages, 2 of which are
dummy, have the old names and depend on the corresponding new package. 
So if you have liblua5.1-lpeg2 installed and you upgrade you will get an empty
(and appropriately marked as such) liblua5.1-lpeg2 package that pulls in the
new lua-lpeg package that holds the real content.

This is a pretty standard technique in Debian to obtain smooth renames.
After weezy is released I can remove the dummy packages.

Your package manager, or orphaner, or whatever you may run is able to cleanup
unused packages and recognizes dummy packages.
Here the relevant metadata of liblua5.1-lpeg2:

  Package: liblua5.1-lpeg2
  Depends: lua-lpeg
  Section: oldlibs
  Priority: extra
  Description-en: Transitional package for lua-lpeg
   This is a transitional package to ease upgrades to the lua-lpeg
   package. It can safely be removed.

The new lua-lpeg package has also special metadata to tell the package manager
that it cannot be coinstalled with the old version of liblua5.1-lpeg2 since
they hold the same files. And that it is actually a replacement for it.

  Package: lua-lpeg
  Breaks: liblua5.1-lpeg2 (<< 0.10.2-3~)
  Replaces: liblua5.1-lpeg2 (<< 0.10.2-3~)
  Provides: liblua5.1-lpeg2, lua5.1-lpeg, lua5.2-lpeg
  Description-en: LPeg library for the Lua language
   LPeg is a new pattern-matching library for Lua, based on Parsing Expression
   ...
  Lua-Versions: 5.1 5.2

On a different level of abstraction, the real name of the shared object is
still liblua5.1-lpeg.so.2.0.0, but nobody has to know that to use lpeg.
There is a convenience symlink 'lpeg' to it inside the lua 5.1 cpath and 

  `pkg-config --libs lua5.1-lpeg`

knows the right -l flag in case you want to link your app with it and prelod
the module in the lua state. And of course, in this case, you also get a 
pkgconfig file named lua5.2-lpeg.

As a last goodie, Debian weezy will be multiarch capable, meaning that
you can coinstall on your, say, 64 bit intel system also intel 32 bit 
libraries (to make skype happy for example), or even arm/mips/... libraries 
(useful to cross compile/link).
All these new lua packages are multiarch compliant.

Hum, I'm getting too technical now. It will just work™ ;-)

Cheers
-- 
Enrico Tassi