[MeeGo-dev] on compatibility (was....)
Wichmann, Mats D
mats.d.wichmann at intel.com
Mon Feb 22 09:55:39 CST 2010
>> from an ideal perspective: it would all work (any rpm on any
>rpm-based
>> distro). In reality, this breaks even in between fedora versions? I
>> can't find a reason to look too long into it - I'd rather work on
>> meaningful improvements instead of maintaining compatibility on that
>> level :)
>
>Well, there are some LSB tools to do so, notably an helper named
>makelsbpkg, that would produce a rpm package usable on any
>LSB-compliant distribution (including non-rpm based distros)
>See http://ldn.linuxfoundation.org/node/28707
There are mechanisms out there for making things more portable.
I've spent a long time on LSB, and will happily answer any
direct questions about it, but I don't think the LSB model
is going to bail us out of anything here.
Fundamentally, we have to realize life is very hard for
applications which live outside the distribution's internal
build system, and comparatively easy for those inside.
The binding between the packages inside this wall is
relatively tight, in that both the rpm and deb package
building process will write in a lot of fairly explicit
dependendcies. Many are probably more explicit than
strictly necessary, but it doesn't really matter because
you can consider the packages inside a repository for
a distro/version combination as a set - a self-consistent
set unless somebody makes a mistake on updates (which,
umm, HAS actually been known to happen :)
When you're building an application outside this wall,
and expect it to run a few places, not just one, then any
of this automatic binding to details of what appears on
the build environment will kill you, and you have to avoid
it to have any hope of portability. LSB uses a model which
depends on doing that - the entire set of required
functionality (which is way too small for general MeeGo
usage) is abstracted into one single package dependency, "lsb".
The problem is you can't get to "it would all work (any rpm
on any rpm-based distro)", you can maybe get to "any
rpm which is built \with special attention to wide
portability/ will work on many rpm-based distros" and that's
fuzzy enough that it's not really that useful. One thing
that actually can be handy out of the LSB project is a
knowledge base on features/versions present in a large
variety of distributions, and this is embodied in a checker
that can make some predictions on where you could expect
a given package to have a chance.
The most common approach I'm aware of that external apps
use it to use a controlled build environment, where the
assumptions are as conservative as it is possible to get
away with, and as far as I know that's what people are
working on here.
More information about the MeeGo-dev
mailing list