To be fair, it did take me 15 minutes to write my first RPM. Documentation is pretty good.
Writing my first Debian package, on the other hand, took me a day. Documentation is horrible. All tutorials are outdated. All the documents throw tons of jargon at me and just expect that I understand them. The tooling consists of 300 different tools with a lot of overlapping functionality, mostly for historical and backward-compatibility reasons. Debuilder, pbuilder, dpkg-buildpackage, debhelper, cbbs.... what? Learning all this stuf was a nightmare, while RPM was pretty straightforward.
Furthermore, Debian packaging tools don't have a preprocessor. It seems they really expect me to repackage my app separately for every distribution version. RPM on the other hand has a builtin preprocessor so that I can customize my specfile on a per-distribution basis with only a single file and a single tool. I ended up writing my own preprocessor for Debian packages, but something tells me I shouldn't have to.
On the other hand, RPM does not support "Recommended" and "Suggested" dependencies which are very useful. Neither does it support OR statements in dependency specifications. This latter sucks, a lot.
Fully agreed. I don't really like the RPM format, though, it's a glorified makefile which makes it inconvenient to generate in an automated fashion. Though, from what I can see, the Debian maintainers have done a good effort at bringing together the various packaging resources in a single document [1]. And, well, packaging is a complicated topic.
Writing my first Debian package, on the other hand, took me a day. Documentation is horrible. All tutorials are outdated. All the documents throw tons of jargon at me and just expect that I understand them. The tooling consists of 300 different tools with a lot of overlapping functionality, mostly for historical and backward-compatibility reasons. Debuilder, pbuilder, dpkg-buildpackage, debhelper, cbbs.... what? Learning all this stuf was a nightmare, while RPM was pretty straightforward.
Furthermore, Debian packaging tools don't have a preprocessor. It seems they really expect me to repackage my app separately for every distribution version. RPM on the other hand has a builtin preprocessor so that I can customize my specfile on a per-distribution basis with only a single file and a single tool. I ended up writing my own preprocessor for Debian packages, but something tells me I shouldn't have to.
On the other hand, RPM does not support "Recommended" and "Suggested" dependencies which are very useful. Neither does it support OR statements in dependency specifications. This latter sucks, a lot.