[Rpm-maint] Re: [packaging] RFC: Berlin Packaging API

Edward Welbourne eddy at opera.com
Thu Feb 28 10:29:10 UTC 2008


>> > First, I''m not sure I agree that anything like this is needed.
>> Do you have any specific questions or objections about the need for it?

> My main objection is that plain old packages rule, and
> vendor-supplied installers suck.

As an ISV's packager, I'd like to point out that maintaining our own
installer also sucks: I'm very keen to see some solution that lets us
use something more like a "plain old package", and I suspect most ISVs
are too.  However, there are problems with "plain old packages", too.
Supporting older versions of each distro obliges us to have several
builds.  Further, even among distros with nominally the same package
format, we've had problems with incompatibilities: we've seen this
most with RPM, probably simply because it's so widely used.

ISVs want to be able to create one package for use on all distros.  Of
course, that's one per CPU type, times one per older edition (e.g. of
LSB, but typically it's mostly glibc version that we care about) we
chose to continue supporting; but, crucially, it's *not* times one per
distro.  Just dropping one factor from the product would greatly
reduce the number of packages we have to build (and test, before
publishing).  That would mean less work for ISVs which would tend to
mean more ISVs supporting Linux.

That would also mean that non-distro packages would have a clear
reason to follow LSB policy (e.g. only put things under /opt/, bring
your own non-core libraries) where, at present, the requirement that
we build a distro-specific package ensures that our ballance of
incentives is towards acting fully like a distro package
(i.e. installing under /usr/ and using the dependency system to ensure
all the libraries we need are installed) - all the documentation for
the package format tells us that's what to do (because it's the format
for distro packages, so its documentation is aimed at distro package
maintainers).  That implies being installed by a privileged user, who
thus gets to run {pre,post}-{un,}install scripts, which may do
pernicious (or incompetent) things.  Make it easier for us to ship
packages, that unprivileged users can install, and we'll be happy to
let the tools you've provided insist on us living under /opt/.

The other advantage of a cross-distro format for non-distro packages
is that it leaves the door open for a distro to develop a newer
package format.  At present, the simple fact that everything is only
available as .deb and .rpm means that there's a huge application
barrier to entry in the Linux distro domain, which essentially
precludes any possibility of radical (as distinct from incremental)
improvement in how distro packaging is done.  Having a common format
for non-distro packages would mean that a new distro package system
would merely need to support this to overcome (most of) the
application barrier to entry.  While we have fairly good package
formats at present, it's important that we leave the door open for
distros to develop a better package format and have some chance of
getting it taken up widely if its virtues deserve it; which can never
happen if the only way for it to happen is for non-distro package
maintainers (i.e. ISVs, both libre and proprietary) to start
supporting that package format - they never will, until they see it
enjoying wide take-up, which it never will until ISVs support it,

	Eddy.



More information about the Rpm-maint mailing list