PPA package delete rules question

Asked by Daniel

I'm doing my first experiments with PPAs since a while, the workflow from today is new to me.

my ppa: https://launchpad.net/~hackie/+archive/ubuntu/anki

Given you upload the following:

1) mypackage-1, builds fine
2) mypackage-2, fails to build
3) mypackage-3, fails to build

After this, it seems that mypackage-1 is wiped from the PPA. Why not mypackage-2? Sure, mypackage-2 is newer, but it didn't build, so what's the rule which versions are removed, is it always the oldest, even if the oldest has a better build quality?

I my case, I had some ongoing trouble with a new build script and thus uploaded multiple versions in a row which all didn't build. I was surprised at the end that the good release has disappeared. And I also cannot upload it anymore because of this:

> Rejected: anki_23.12.1-2ubuntu4.dsc: Version older than that in the archive. 23.12.1-2ubuntu4 <= 24.04rc1-1ubuntu3

Bonus question: what's the rule if multiple ubuntu releases are involved?

Question information

Language:
English Edit question
Status:
Answered
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Simone Pelosi (pelpsi) said (last edit ):
#1

Hey Daniel! If you upload a package with a higher version number the system automatically supersede and remove the older version.

Ubuntu package names are suffixed by the version number of the package. This allows Ubuntu to distinguish newer packages from older ones and so remain up to date.

If you're creating an alternative version of a package already available in Ubuntu's repositories, you should ensure that:

    - your package supersedes the official Ubuntu version

    - future Ubuntu versions will supersede your package.

To do this, add the suffix ppan (where n is your package's revision number). Two examples:

    - Ubuntu package myapp_1.0-1 → PPA package myapp_1.0-1ppa1

    - Ubuntu package myapp_1.0-1ubuntu3 → PPA package myapp_1.0-1ubuntu3ppa1

Version numbers must be unique. This has implications if you want to provide packages for multiple Ubuntu series at once:

If your package can be used on different versions of Ubuntu without being recompiled then use the naming scheme already described, and start by uploading your package to the oldest series that you want to support. When you have successfully uploaded your package to your PPA you can copy the existing binaries to the new series; use the "Copy existing binaries" option.

If your package does need to be recompiled to support multiple Ubuntu series, then you should add a suffix of a tilde and the series version to the version number. So a package for the Yakkety Yak (16.10) could be named myapp_1.0-1ubuntu3ppa1~ubuntu16.10.1 and for the Xenial Xerus (16.04) myapp_1.0-1ubuntu3ppa1~ubuntu16.04.1. If you need to release an updated package, increment the ppan suffix. It is important to note that specifying the version name here doesn't change the series that you are targetting; this must still be set correctly as described in the Ubuntu packaging guide's section on the changelog file.

Revision history for this message
Daniel (hackie) said :
#2

Thanks for this interesting answer. even though my question was not completely answered, it brings some thoughts into the topic which I wasn't aware of.

I just realized that anki-24.04rc2 is higher than anki-24.04. Do I have to translate it to something like anki-24.04-0rc1?

That brings me to a new topic: the orig files: I would say every version, even release candidates, have their own version number (so 24.04beta1 -> 24.04rc1 -> 24.04). But debuild -S expects one of (anki_24.04.orig.tar.gz, anki_24.04.orig.tar.bz2,
anki_24.04.orig.tar.lzma, anki_24.04.orig.tar.xz or anki-24.04-0rc2.orig) interesting is the last one - it looks like a directory, not a tar file. why?

Is there any way to have an orig file like anki_24.04-0rc1.orig.tar.xz or is there another recommendation for this situation?

Or should I completely wait with deploying rc versions until the final release is out?

Can you help with this problem?

Provide an answer of your own, or ask Daniel for more information if necessary.

To post a message you must log in.