Ну, это звучит так, как будто рецепты упаковки - это путь сюда. По сути, упаковочные рецепты могут автоматически создавать исходные пакеты 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
".
На странице рецептов упаковки на Launchpad вы можете указать, в какой 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 не сможет применить (дублировать) патч и пакет не удастся собрать.
lp:ubuntu/gtk+3.0
отслеживает? Текущая стабильная или текущая версия разработки?