mrweasel 5 days ago

This is awesome, well, useful. I have a package I'd like to have in Debian, and I am willing to maintain it, but getting startet is just ... complex.

The whole Debian package infrastructure is remarkable complete and capable, but it's dense and the documentation is not great. The git-buildpackage is barely documented, at least not in a manor which where a newbie can just build a package and be sure that an upgrade will work in the future.

2
LtWorf 5 days ago

I think this is a good starting point https://mentors.debian.net/

Also personally I'd avoid using git buildpackage at the beginning since it's rather complicated and not everyone uses it (although those who do are very vocal!)

You don't need git at all, but if you want something easier, create a repo on salsa and keep the debian/ directory there and that's it.

ValdikSS 4 days ago

Can't agree more!!

10 years ago, when I wanted to package my utility, there were 3-4 documentation snippets, each of which usually used different set of utilities.

- Should I create the package boilerplate with dh_make or debmake? The structure they create differs.

- What's the name of command which I use to update the version in changelog? deb... no, dh_... no, ... it's `dch`!

- You manage patches with `quilt`, but where do I get `dquilt` mentioned in the documentation? It's not in any package! Oh, it just an alias you should grab from `Chapter 3. Modifying the source` documentation and add into your .bashrc! And also `~/.quiltrc-dpkg`, or nothing would work.

- Packaging: dpkg-buildpackage, debmake, or maybe pbuilder?

- How do I append CFLAGS? It's DEB_CFLAGS_MAINT_APPEND, thanks dh_make comment inside the rule file! Too bad if you've created the structure with debmake!

- dpkg-gensymbols: warning: some new symbols appeared in the symbols file

- dh_missing: error: missing files, aborting

But to Debian's credit, once you've done everything more or less correctly, you can use all the power of the build system. It's very easy to cross-compile software, just a matter of a single command. On other systems it's usually much harder.