Я ищу инструмент для следующего:
dpkg-source --commit [something-or-other]
?) Может ли Launchpad сделать все это для меня?
Если нет, есть ли инструмент, который будет автоматически делать все это из задания cron?
В противном случае, Я сам соберу что-нибудь вместе, но какие команды мне нужны:
Я нашел вопрос ( Как правильно установить исправление Wine для пользовательского PPA? ), что похоже, но шаги в ответе по-прежнему в основном ручные и интерактивные. Полностью автоматическая версия этого, плюс автоматическое обнаружение обновлений источника, очень помогли бы.
Что ж, похоже, рецепты упаковки - вот путь. По сути, рецепты упаковки могут автоматически создавать исходные пакеты Ubuntu и загружать их в PPA всякий раз, когда изменяется ветка bzr на Launchpad. Онлайн-документация довольно хорошая, но я приведу пару примеров ...
Сначала вы указываете ветку для отслеживания (например, lp:gtk3
), а затем добавляете команду, чтобы вложить вашу собственную ветку упаковки Debian в эту ветку. Взгляните на этот рецепт , который я создал для ежедневных сборок Inkscape.
# bzr-builder format 0.4 deb-version 1:0.48+devel+{revno}+{revno:packaging}
lp:inkscape
nest packaging lp:~inkscape.dev/inkscape/debian-packaging debian
Этот рецепт создает пакет Ubuntu каждый день, используя последний исходный исходный код Inkscape, но копирует настроенные инструкции по упаковке Debian из ветви lp:~inkscape.dev/inkscape/debian-packaging
в подпапку с именем «debian
».
На странице рецептов упаковки на панели запуска вы можете указать, в какой PPA автоматически загружать ваши пакеты. В нашем случае он загружен здесь здесь .
В качестве альтернативного подхода вы можете основывать свой рецепт на существующем пакете Ubuntu, а не непосредственно на исходном коде. Например, lp:ubuntu/gtk+3.0
. Затем вам нужно будет создать ветку этого кода и зафиксировать любые необходимые изменения. Давайте назовем это lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
, например. Затем вы должны создать рецепт для автоматического объединения ваших изменений вместо того, чтобы вкладывать инструкции по упаковке. Рецепт будет выглядеть примерно так:
# bzr-builder format 0.4 deb-version {debversion}+{date}
lp:ubuntu/gtk+3.0
merge my-custom-build lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
Таким образом, этот рецепт автоматически создает пользовательский исходный пакет Ubuntu и загружает его в PPA всякий раз, когда происходит изменение в официальном пакете Ubuntu.
Если вы воспользуетесь этим подходом «слияния», у вас есть два варианта применения патчей. Либо вы просто отредактируете исходный исходный код прямо в вашей ветке и позволите bzr позаботиться о его слиянии, либо вы можете создать файлы патчей в папке debian/
, используя quilt. У каждого есть свои преимущества / недостатки. Первый подход немного умнее ... если один из ваших патчей будет принят вышестоящим разработчиком, то слияние обычно все равно будет работать, и пакет Ubuntu будет работать нормально. Последний подход позволяет вам обрабатывать ваши патчи, используя стандартный подход на основе Debian, заключающийся в том, чтобы отделить код упаковки от исходного кода ... однако, если вышестоящий разработчик примет один из ваших патчей, то Quilt не сможет применить (дублировать) патч и пакет не удастся собрать.