Live data from Hacker News

20 years as a Debian maintainer

suihkulokki.blogspot.com

21–30 of 126 posts

Re: 20 years as a Debian maintainer

#21
post #11
post #7

Thanks Riku, debian has become an excellent distro thanks to the hard work of people like you. At the same time, it is sad to see how much work you guys need to do for things that should have been automated or done by the original developers... Let's hope AppImage changes that Edit: Changed flatpak to appimage

Packaging is a complicated task and isn't as automatable as you'd think, It is important to consider how changes impact other tools. AppImage depends on maintainers too. Consider for example how appimage recipes depend on wget and bash and thusly openssl and libidn and glibc and libdl and git too, which brings with it libz and, and, and ... PS: Thank you, Riku. I never understood the sheer amount of effort involved i…

It can be easy for certain kinds of software:

https://wiki.debian.org/AutomaticPackagingTools https://manpages.debian.org/man/1/dh_auto_configure https://manpages.debian.org/man/1/dh_auto_build https://manpages.debian.org/man/1/dh_auto_install

Re: 20 years as a Debian maintainer

#22
post #10

Earlier quoted context omitted.

How should Flatpak change that? These two (DEB and Flatpak) are, at least currently, entirely parallel, each with its own set of advantages and problems. I don't think it would make any sense to migrate a distribution such as Debian to Flatpak entirely.

Sorry, I meant to write AppImage not flatpak. The point was that a lot of packaging would be done by the devs, allowing minutes maintainers to so more important stuff.

I don't think having developers doing the packaging is an ideal situation. I often hear developers complaining about the multitude of GNU/Linux distros because they think it's somehow their responsibility to provide binaries. It's not. The role of the upstream developer is to make their build system easy to use so that other people (like distro maintainers, but also just "regular" users) can compile from source without feeling like they're pulling teeth. If your software is easy to build, it will naturally flow into the distros when its users want it. I package a lot of software and a lot of software is difficult to build without tons of hacks.

For interested readers, here's some best practices for being a good upstream:

- Just use the GNU autotools. Users expect `./configure && make && make install` to work. Too often people roll their own configure scripts and Makefiles and they always miss something important. Distros expect there to be certain knobs to tweak, and configure scripts and Makefiles generated by the autotools have all of them.

- Don't bundle third-party dependencies. For security (and for better documentation of the true dependency graph) distros often must go through extra trouble to unbundle third-party libraries when present. Some project even add their own custom patches to their bundled source. Resist the urge to do this.

- Include accurate copyright information. Put a license header at the top of every source file. Any serious distro will need to do at least a cursory inspection of licensing info to make sure it meets requirements.

- Make proper source release tarballs. Do not depend on your version control tool being available at build-time. Do not depend on the autotools being available build time. Use 'make distcheck' to make a fully bootstrapped tarball to distribute.

- Do not make any use of the Internet during a build. That means no downloading third-party libraries, pre-built binaries, etc. It's imperative that a build can succeed without network access, and some distributions isolate builds from the network to ensure they don't misbehave.

- Do not hardcode absolute paths to binaries. No /usr/bin/bash or etc. Your assumption will surely fail on a non-trivial number of systems. Find the location of a binary at configure time by inspecting $PATH. GNU autoconf can do that and substitute the absolute file name where it's needed, such as in a script's shebang. The same advice can be applied for anything else you need an absolute file name for.

- Do not assume /usr exists. The Filesystem Hierarchy Standard is not as popular as it used to be. This is a more generalized form of the previous point. Again, if you use the Autotools you will be doing the right thing by default.

There's surely more, but that's what I can think of right now. Surely a Debian developer or someone else has compiled a more thorough list. Anyone know of one?

I think that today's software being so difficult to build is making practices that are frowned upon by distributions (for very good reason) seem like acceptable solutions, which leads us to the growing popularity of Docker, Snappy, and Flatpak. "This software is nearly impossible to build, so just use my {Docker,Snappy,Flatpak} bundle!"

tl;dr - Make your software easy to build, don't just package up a mess.

Re: 20 years as a Debian maintainer

#24
post #10

Earlier quoted context omitted.

Sorry, I meant to write AppImage not flatpak. The point was that a lot of packaging would be done by the devs, allowing minutes maintainers to so more important stuff.

I don't think having developers doing the packaging is an ideal situation. I often hear developers complaining about the multitude of GNU/Linux distros because they think it's somehow their responsibility to provide binaries. It's not. The role of the upstream developer is to make their build system easy to use so that other people (like distro maintainers, but also just "regular" users) can compile from source witho…

Some more best practices:

https://wiki.debian.org/UpstreamGuide

Re: 20 years as a Debian maintainer

#25

Earlier quoted context omitted.

I don't think having developers doing the packaging is an ideal situation. I often hear developers complaining about the multitude of GNU/Linux distros because they think it's somehow their responsibility to provide binaries. It's not. The role of the upstream developer is to make their build system easy to use so that other people (like distro maintainers, but also just "regular" users) can compile from source witho…

Some more best practices: https://wiki.debian.org/UpstreamGuide

Thanks!

Re: 20 years as a Debian maintainer

#26
post #7

Thanks Riku, debian has become an excellent distro thanks to the hard work of people like you. At the same time, it is sad to see how much work you guys need to do for things that should have been automated or done by the original developers... Let's hope AppImage changes that Edit: Changed flatpak to appimage

There's another standard? Why couldn't the deb guys just support Flatpak... damnit

Re: 20 years as a Debian maintainer

#27
Thank you for all your work.

I installed Debian for the first time almost 13 years ago and have enjoyed the "Debian way" every second.

But as the saying goes, all good things must come to an end. Due to various decisions by the Debian community, Debian Wheezy will be the last version I'm going to install and for the last few years I have been in the proccess of migrating thousands of servers away from Debian.

Re: 20 years as a Debian maintainer

#28
post #2

Version that can be read without JS enabled: https://suihkulokki.blogspot.com/2017/01/20-years-of-being-d...

I cannot comprehend why on earth Javascript is required just to show some text. This must be the height of web design silliness.

Re: 20 years as a Debian maintainer

#29
post #27

Thank you for all your work. I installed Debian for the first time almost 13 years ago and have enjoyed the "Debian way" every second. But as the saying goes, all good things must come to an end. Due to various decisions by the Debian community, Debian Wheezy will be the last version I'm going to install and for the last few years I have been in the proccess of migrating thousands of servers away from Debian.

What are you migrating to, if you don't mind my asking?

Re: 20 years as a Debian maintainer

#30
post #16

Earlier quoted context omitted.

If they can't make good packages then I can't see them making good containers.

As a Debian Developer I often find myself throwing away the upstream Debian packaging and starting from scratch. It's not that it doesn't work but that it doesn't fit with Debian policy and so is not easily included or modified without basically starting from scratch anyway. In the cases (which happens more than you might think) where an upstream developer has actually got really good packaging, I've usually taken th…

Also, upstream may have different concerns. For example, they want to be built on various versions of the distribution while Debian will usually only target unstable.

I am upstream for some of my packages and I don't provide the same debian/ directory upstream as I use for Debian.

Post reply on HN