РепреП жалуется на сгенерированный архив pbuilder debian.tar.gz md5

Я настроил частный репозиторий APT (используя ресурсы в Интернете, такие как http://inodes.org/2009/09/14/building-a-private-ppa-on-ubuntu/), и я впервые загружаю свой пакет, содержащий источники моего приложения C++. Так что репозиторий реппро пуст.

Я использую следующую команду, чтобы начать сборку:

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

Затем начинается сборка, генерируется много выходных данных, и я вижу, что pbuilder компилирует исходный код проекта, и все в порядке. Я даже могу найти в result/ папки Debian и т. д.

Но сборка завершилась неудачно с POST_BUILD_FAILED, потому что кажется, что pbuilder изменил файл douane-testing_0.8.1-apt1.debian.tar.gz и сумма md5 теперь отличается, как показано здесь:

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!

Я не понимаю, почему происходит сбой, потому что, когда я сравниваю 2 пакета (с этими суммами md5), содержимое строго одинаково (я использовал инструмент сравнения, но без различий и без новых или удаленных файлов). Единственное, что я вижу, это то, что архив из pbuild больше на 10 байт, чем оригинальный, который я загрузил:

На моей машине для разработки файл с md5 97257ae2c5790b84ed7bb1b412f1d518:

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

На моем сервере файл с md5 df78f88b97cadc10bc0a73bf86442838:

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

У меня pbuild версии 0.213 на моем сервере.

В чем может быть причина такого поведения и как я могу это исправить?

редактировать

Я подозреваю, что проблема с ключом GPG, который выглядит отсутствующим, а затем файлы не подписаны, поэтому md5 sum отличается. В процессе сборки у меня есть следующие строки:

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

Редактировать 2

Я попытался найти команду для создания вручную.debian.tar.gz файл. Лучшее, что я нашел, это следующее:

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

Я не получаю тот же результат, чем dpkg-source но я попробовал ту же команду на моем сервере (я должен по крайней мере иметь тот же размер), но она не соответствует...

Может ли быть так, что Debian и Ubuntu сжимаются не одинаково?

2 ответа

Решение

Мой предыдущий ответ в порядке, но не является полным.

Затем у меня возникла проблема, которая представляет недобросовестную версию исходного архива (.orig.tar.xz). Но это было нормально, так как я не делал пакеты правильно.

Я написал скрипт bash, который я выполняю в ВМ для каждой серии Ubuntu. Этот скрипт всегда делал все с нуля, использовал аргумент dh_make --createorig, и вот в чем проблема.

Правильный способ - сгенерировать один раз (например, для точной версии Ubuntu), а затем повторно использовать файл.orig.tar.xz и больше не использовать аргумент --createorig в dh_make.

Я надеюсь, что это может кому-то помочь:-)

Наконец, после нескольких вечеров исследований, я нашел решение на launchpad.net!

Нашел решение. По умолчанию pbuilder вызывает dpkg-buildpackage примерно так:

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

Это заставляет dpkg-buildpackage перестраивать файлы diff.gz и.dsc. Добавьте туда -b, и этого не будет. Это также означает, что полученный файл.changes будет ссылаться только на файл.deb. Что ты хочешь, я думаю.

Самое простое решение - добавить строку в ваш.pbuilderrc:

DEBBUILDOPTS = "-" б

Другие вопросы по тегам