The Debian changelog and OBS

Posted on Jan 4, 2022

So the OBS supports packaging Debian packages for a while now. Is it perfect? No. But it works well enough. Though one problem I recently ran into …

How to get past lintian?

The obvious answer is of course: Fix the errors it spits out. And I agree. I have done that. For all but one …

bad-distribution-in-changes-file

For many of the debian packages, I helped to start, we used:

pkgname (1.2.3-1.1) unstable; urgency=medium

or

pkgname (1.2.3-1.1) experimental; urgency=medium

This works fine when building for Debian, but fails for Ubuntu with the error above. The deb workflow has one package/source tree per distribution release so you can set that field per distro and you are fine. But in the OBS world we have this:

“Build one set of input sources for as many distributions as possible”

The overrides support in lintian does not cover this case as it is checking the changes file and not the sources. The debian/source/lintian.overrides is only for the source.

If you search for the problem, you find a few more people with the problem. The solution proposed is always:

lintian --suppress-tags bad-distribution-in-changes-file

But how do I hook that up in the OBS?

So I did my usual thing when I run into Debian packaging problems: I complained to Adam. Which often turns out to help. After some code digging he suggested:

Use UNRELEASED

Our entry in the debian/changelog now looks like this:

pkgname (1.2.3-1.1) UNRELEASED; urgency=medium

Thanks Adam!

Now it works for all distributions. On to the next problem.