Я создал исходный пакет для библиотеки I, над которой я работаю. Я использую debuild для его создания, а затем могу успешно загрузить его с помощью dput.
Теперь я хочу настроить его, чтобы я мог сделать это автоматически у Дженкинса. Основная проблема, с которой я столкнулся, - это подписать файлы .dsc и .changes. То, что я пытаюсь сделать, это подписать пакеты с gpg, а не делать debuild. Таким образом, я могу автоматически подписывать файлы с помощью опции gpg --passphrase-fd 0.
Поэтому я использую debuild с параметрами -uc и -us, а затем удаляет файлы с помощью gpg. Но когда я делаю это, он создает отдельные .dsc.asc и source.changes.asc. Когда я пытаюсь загрузить с помощью dput, я получаю сообщение об ошибке
Checking signature on .changes
gpg: no valid OpenPGP data found.
gpg: the signature could not be verified.
Please remember that the signature file (.sig or .asc)
should be the first file given on the command line.
. Это может показаться, что я должен указать файл .asc в качестве аргумента dput, но я не могу заставить это работать.
Я нашел следующее решение с опцией debsign и -p:
используйте debuild без подписи, как вы уже упоминали, используйте debsign с опцией -p, устанавливая парольную фразу для использования, напримерdebsign \
-p'gpg --passphrase-file /home/myname/my_passphrase_file.txt --batch --no-use-agent'\
-S -kMYKEYID package_source.change
Все еще есть некоторые другие проблемы, но эта часть выглядит как работающая. Подписание файлов с помощью GPG напрямую не работает, поскольку контрольные суммы, вычисленные во время debuild, изменяются.
Я всегда предпочитаю хранить ключи с кодовой фразой.