Я создал исходный пакет для своей библиотеки, над которой я работаю. Я использую 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
, но я не могу получить это на работу.
Простой ответ: ежедневные сборки на Launchpad, они делают все это для вас довольно безопасно.
Если вы хотите загружать исходный код из Jenkins, то я предлагаю создать ключ только для этой работы в Jenkins. Наличие парольной фразы не улучшит безопасность, если работа Дженкинса должна будет знать парольную фразу, так что можно просто оставить ее незащищенной.
Если вы действительно хотите подписать файлы .dsc
и .changes
от руки, подпишите их с помощью gpg --clearsign
и переименуйте файлы .asc
поверх оригиналов.
Я нашел следующее решение с 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
, изменены.
Я всегда предпочитаю хранить ключи с парольной фразой.