What should go into "How Software Producers can distribute their products directly in .deb format"?
I'm interested in writing the "How Software Producers can distribute
their products directly in .deb format" manual, as listed on
http://www.debian.org/doc/devel-manuals. I have thought about what
should go into it, and I thought of the following:
- First, consider the license of your product. If it's
DFSG-Compatible and of general interest, consider adding it to
debian/main. That'd be the best solution because of all the things
like the BTS and the worldwide mirrors.
- If it's not DFSG-Compatible, but of general interest and you'd want
it into debian, consider adding it to debian/non-free. Or even
better changing the license.
- Otherwise, read the New Maintainer's Guide / Debian Policy and all
the other docs. Make a package using the normal debian tools, check
it with lintian, try it, whatever. There are a few "special"
issues, though. Unstable and testing are changing all the time; a
closed-source package which isn't updated too often would probably
quite soon get uninstallable because of some unsatisfied
dependencies or break somehow. Thus, build your package for stable,
but *do not* use strictly versioned dependencies (i.e., require an
exact version), but only >= dependencies. So there's chance that
it'll be installable/run also on testing and unstable.
- Consider putting fast-changing libraries/programs into your package
instead of depending on the ones shipped with debian. They could be
installed into /usr/lib/<package-name>/.
- If you've got only few and/or seldom updated programs, shipping the
.debs will probably do. If you've got many and/or often updated
programs, or just want to be cool, you can setup your own package
This is the basic idea for packages which can be adapted to the FHS in
a reasonable way; but for some really large, closed-source and older
programs that might be too difficult; it would probably be much easier
to put them into their "own" directory, with their own bin, lib, and
whatever other folders they need. I know that isn't the "proper" way
to do it, but I'd prefer some program to be installed in this impure
way than overwriting some other files or sprinkling the file system
with mysterious configuration and cache files. Thoughts?
My GPG Public Key: http://www.isotton.com/gpg-public-key