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

Re: making packager-friendly software



> Very nice paper. Point any software author who doesn't know what
> they're doing (and we've had a share of that) this way.

Good paper indeed. Most of it is not even really specific to making
software packager-friendly, but just general good practice if you
want to make your software usable to others.

It raises an interesting point, that I think merits further discussion.
As the author rightly notices, many problems stem from the fact
that developers are not packagers themselves. Now, I maintain that
the reason for this is that packaging is difficult, and unnecessarily
so.

I must say I like OpenBSD's ports system. It does most things just
the way I like them, and porting software is often a matter of just
creating a Makefile with the right variables in it. Simple enough.

The problem is, it's only one of many systems out there, and they're
all different (the nice thing about standards etc). Pkgsrc, for
example, installs files to their final destination before (optionally)
building a package, rather than installing to a fake root, building
a package, and installing that. Packaging for most Linux distros
is wildly different.  I don't even know how to package things for
Solaris.

This, I think, is why developers don't package. It simlply adds too
much complexity, and is generally better left to those who know the
packaging system their system happens to use. And the incompatibilities
between packaging systems make it hard (if not impossible) to prepare
your sources in such a way that they work well on every packaging
system out there. Some of them will want you to install configuration
files to /etc, others will want you not to, some will pass you a
variable indicating where they want something, others won't, etc.

I think pkgsrc is on to something with their approach of providing
an infrastructure that works on a diversity of systems. Unfortunately,
I imagine most systems won't be willing to abandon their established
packaging systems. Still, coordination is the key to success. If
we can at least standardize the way that packaging systems communicate
their desires to the build process, both developers and packagers
will have easier lives.

Sorry for the long post... I've been willing to say this for weeks,
and this seemed like a good opportunity (although not necessarily
the right place).

        -- Bob