Ubuntu – How to create and administer multi-architecture PPAs

launchpadpackagingppa

I have a program that needs to be recompiled for every ubuntu version.

Currently I am packaging it using Ubuntu's PPA just for the current distribution.

Eventually, I have to provide packages for the previous ubuntu version.

I am not sure how to accomplish this.

How does the Ubuntu PPA build server works – does it just look at the distribution field in the most current changelog entry (in the debian/changelog file) to determine for what distribution the package should be build?

The debian specification allows to add multiple distributions into the distribution field. But this does not seam to help me.

Some ubuntu documents talk about encoding the distribution name into the version number (in the debian changelog file).

But how does this work in practice? A new version of the program is available, then what? Do I add for each distribution a new changelog entry and the PPA buildserver builds automatically for each distribution new packages after dput'ing it up? Or does the PPA buildserver just looks at the first changelog entry?

Best Answer

The way to go is to upload once for every Ubuntu version.

Launchpad won't build packages for Ubuntu versions that are no longer supported, and only build a package for one specific version of Ubuntu. The targeted version is (as you already know) specified in the changelog file, by the newest entry!

Remember to be aware that the packages your program depends on might not be available at the same version across all versions of Ubuntu.

You also talk about "multi-architecture" (architecture = CUP type, eg. x86, LPIA, AMD64) this makes no difference since every package uploaded is build for all available architectures as long as you have Architecture: any in the package definition (debian/control) file, this also allows you to make the package depend on different packages for different architectures (be defining the package more than once)