I have a package that can be build for both groovy and xenial. Ubuntu groovy have libpng-dev that resolves to libpng16. Plus it has libpng12. Xenial has no libpng-dev or libpng16. It has only libpng12-dev. It's ok for me to build the app with libpng12 on xenial, but I wan't to use libpng16 on groovy.

Also xenial's debhelper seems to not provide debhelper-compat.

Thus I need Build-Depends: debhelper-compat (=9), libpng-dev(>=1.2.0) for groovy and Build-Depends: debhelper (>=9.0), libpng12-dev(>=1.2.0) for xenial.

My package version is app-1.0-0ubuntu1_i386.deb

Launchpad seems to not allow building same source twice in same PPA. You can copy binaries between series, but not rebuild the source. It seems launchpad ignores that "0-ubuntu1" part of version when make this decision. Also it doesn't allow to upload any version less then it already have. So even if I end up with some series-dependent Build-Depends: in debian/control file - I couldn't benefit from this as source will be build only once. And I don't want to increment app version twice just to backport to xenial.

Are there any elegant solution for this problem?

1 Answer 1


Ok, it seems I figured out how to set up the control file to get the deb build via pbuilder-dist for both trusty (14.04) and groovy (20.10) on groovy machine.

  1. Create debian/compat file with 9 inside. (old way of declaring compatibility)
  2. Remove debhelper-compat (=9), from Build-Depends: (it's incompatible with old way of declaring compatibility)
  3. Leave debhelper (>=9.0) in Build-Depends:

I have ${shlibs:Depends} in Depends:

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .