Question

I have configured a private APT repository (using resources on internet like http://inodes.org/2009/09/14/building-a-private-ppa-on-ubuntu/) and I'm uploading for the first time my package containing the sources of my C++ application. So reprepro repository is empty.

I use the following command in order to start the build:

sudo reprepro -V -b /srv/reprepro processincoming incoming

Then the build start, a lot of output is genearated and I can see that pbuilder is compiling the project source code and everything is fine. I can even find in the result/ folder debian packages etc...

But the build failed with a POST_BUILD_FAILED because it seems that pbuilder has changed the douane-testing_0.8.1-apt1.debian.tar.gz file and the md5 sum is now different as shown here:

File "pool/main/d/douane-testing/douane-testing_0.8.1-apt1.debian.tar.gz" is already registered with different checksums!
md5 expected: 97257ae2c5790b84ed7bb1b412f1d518, got: df78f88b97cadc10bc0a73bf86442838
sha1 expected: ae93c44593e821696f72bee4d91ce4b6f261e529, got: d6f910ca5707ec92cb71601a4f4c72db0e5f18d9
sha256 expected: c3fac5ed112f89a8ed8d4137b34f173990d8a4b82b6212d1e0ada1cddc869b0e, got: ebdcc9ead44ea0dd99f2dc87decffcc5e3efaee64a8f62f54aec556ac19d579c
size expected: 2334, got: 2344
There have been errors!

I don't understand why it is failing as when I compare the 2 packages (having those md5 sums) the content is strictly the same (I used a diff tool but no differences and no new or removed files). The only thing I can see is that the archive from pbuild is bigger of 10 Bytes than the orginal one I have uploaded:

On my development machine, the file with the md5 97257ae2c5790b84ed7bb1b412f1d518 :

-rw-r--r--  1 zedtux zedtux   2334 Feb  3 23:38 douane-testing_0.8.1-apt1.debian.tar.gz

On my server, the file with the md5 df78f88b97cadc10bc0a73bf86442838 :

-rw-r--r-- 1 root root   2344 Feb  5 00:58 douane-testing_0.8.1-apt1.debian.tar.gz

I have pbuild version 0.213 on my server.

What could be the reason of this behavior and how can I fix it ?

Edit

I'm suspecting an issue with the GPG key which looks missing and then files aren't signed so md5sum is different. During the build process I have the following lines:

I: Extracting source
gpgv: Signature made Wed Feb  5 22:04:37 2014 UTC using RSA key ID 9474CF36
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./douane-testing_0.8.1-apt1.dsc

Edit 2

I have tried to find the command to create manually the .debian.tar.gz file. The best I've found is the following:

tar cv debian | gzip --no-name --rsyncable -9 > douane-testing_0.8.1-apt1.debian.tar.gz

I don't get the same result than dpkg-source but I tried the same command on my server (I should at least have the same size) but it's not matching...

Could it be that Debian and Ubuntu aren't compressing the same way ?

Was it helpful?

Solution 2

My previous answer is alright but is not complete.

Then I had the issue that reprepro complains about the source tarball (.orig.tar.xz). But it was normal as I wasn't doing the packages correctly.

I have written a bash script which I'm executing in VM for each Ubuntu series. This script was always doing everything from scratch, and was using dh_make --createorig argument and here is the issue.

The correct way is to generate once (for example on Ubuntu precise) and then re-use the .orig.tar.xz file and no more use the --createorig argument of dh_make.

I hope this could help someone :-)

OTHER TIPS

Finally after some evenings of research I found the solution on launchpad.net !

Found the solution. By default pbuilder calls dpkg-buildpackage like so:

DEBBUILDOPTS="$DEBBUILDOPTS -rfakeroot" dpkg-buildpackage -us -uc $DEBBUILDOPTS

That causes dpkg-buildpackage to rebuild the diff.gz and .dsc files. Add a -b in there, and it won't. It also means the resulting .changes file will only reference the .deb file. Which is what you want, I think.

The easy solution is to add a line to your .pbuilderrc:

DEBBUILDOPTS="-b"

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top