Build recipes for several backports of the same upstream version resulting on different orig.tar.gz's

Asked by Laércio de Sousa on 2012-07-13

I maintain several backports of a given upstream source (quantal, precise, lucid, and even hardy). I created a build recipe for each backport in Launchpad, all of them uploading to the same PPA.

Each of these recipes should generate the same orig.tar.gz for upstream source, but, probably due to differences in timestamp in gzip header, the generated orig.tar.gz's are NOT identical, i.e., they have different checksums. In the end, after the first recipe succeeds building and uploading to PPA, all other recipes build successfully, but fail to upload.

I know I can simply delete the "upstream-<version>" tag in my branch to make my recipes fallback to native packaging, but I really want to build them as they should be, i.e., sharing the same orig.tar.gz.

Is there something I can do? Is it a limitation of Launchpad?

Question information

Language:
English Edit question
Status:
Solved
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Solved by:
Jelmer Vernooij
Solved:
2012-07-20
Last query:
2012-07-20
Last reply:
2012-07-18
Laércio de Sousa (lbssousa) said : #1

Just an information: I don't maintain my source version control directly in Launchpad. Instead, I use git-buildpackage to do my local version control and push my sources to GitHub. Then I import the GitHub's code to Launchpad.

Best Jelmer Vernooij (jelmer) said : #2

You can do this by adding the necessary pristine-tar metadata for the upstream releases. This data needs to be in a bzr revision property though. Since git doesn't have the concept of revision properties, that means this isn't possible if you're importing from a Git branch.

If you have bzr-builddeb installed, you can import a tarball using "bzr import-upstream", which will also the necessary revision property.

Laércio de Sousa (lbssousa) said : #3

OK, I'll try bzr-builddeb.

Just one more question: could I keep the pristine-tar metadata in a separate Bazaar branch and merge it with my imported Git branch when running the recipe? In fact, I already have a Git branch, created by git-buildpackage, with the pristine-tar info, but Launchpad can not import it directly.

Jelmer Vernooij (jelmer) said : #4

Git stores the pristine-tar data in a different format than Bazaar does.

You might be able to keep a separate bzr branch with the pristine-tar data. In that case, the main branch in your recipe would have to be the bzr branch with the upstream source and it would have to merge in the git source code. The bzr branch with the source needs to be derived from the git branch.

Laércio de Sousa (lbssousa) said : #5

OK. For now, I'm starting recreating my package branches from scratch with Bazaar while keeping my upstream sources in Git, exporting the tarballs and merging them with my Bazaar branch with "bzr merge-upstream". Now my recipes build as expected in Launchpad.

Thank you very much!

Laércio de Sousa (lbssousa) said : #6

Thanks Jelmer Vernooij, that solved my question.