Ubuntu logo

Packaging Guide

5. Работа с пакетом

Как только у Вас есть ветка с исходным пакетом в общедоступном репозитории, Вы захотите создать дополнительные ветки для фиксов или другой запланированной работы. Вы захотите, чтобы Ваша ветка основывалась на пакете исходной ветки релиза distro, куда Вы планируете загружать. Обычно это текущий релиз разработки, но это могут быть и более старые релизы, если Вы, к примеру, выполняете обратный порт на SRU.

5.1. Ветвление для изменений

Первым делом убедитесь, что ветка исходного пакета актуальна. Если Вы ее только что проверили, то она будет актуальной, если же нет, то сделайте следующее:

$ cd tomboy.dev
$ bzr pull

Будут показаны любые обновления касательно пакета, которые были загружены с момента отладки. Вы не хотите вносить изменения в эту ветку. Вместо этого создайте ветку, которая будет содержать только те изменения, которые Вы собираетесь внести. Предположим, Вы хотите исправить баг 12345 для проекта Tomboy. Когда Вы находитесь в общедоступном репозитории, ранее созданном для Tomboy, Вы можете создать ветку для исправления багов следующим образом:

$ bzr branch tomboy.dev bug-12345
$ cd bug-12345

Теперь Вы можете выполнять всю работу в директории bug-12345. Делайте там все необходимые изменения, не забывая по ходу дела отправлять свою работу. Этот процесс схож с разработкой любых приложений при помощи Bazaar. Можно делать промежуточные отправки так часто, как захотите, а когда Вы закончили работу над изменениями, используйте стандартную команду dch (из пакета devscripts):

$ dch -i

Эта команда откроет редактор и добавит запись в файл debian/changelog.

tomboy (1.12.0-1ubuntu3) trusty; urgency=low

  * Don't fubar the frobnicator. (LP: #12345)

 -- Bob Dobbs <subgenius@example.com>  Mon, 10 Sep 2013 16:10:01 -0500

Подтвердить с нормальным:

bzr commit

Хук в bzr-builddeb будет использовать текст debian/changelog как сообщение о завершении отправки и установит тег для отметки бага #12345 в качестве фиксированного.

Это работает только с bzr-builddeb 2.7.5 и bzr 2.4, для более старых версий используйте debcommit.

5.2. Сборка пакета

По ходу дела Вы захотите создать свою ветку, чтобы Вы могли проверить ее и убедиться, что она действительно исправляет баг.

Чтобы создать пакет, Вы можете использовать команду bzr builddeb из пакета bzr-builddeb. Вы можете создать исходный пакет при помощи:

$ bzr builddeb -S

(bd — это псевдоним для builddeb.) Вы можете оставить пакет неподписанным, добавив к команде -- -uc -us.

Вы можете также использовать свои обычные инструменты, если они способны убирать каталоги .bzr из пакета, например:

$ debuild -i -I

Если Вы когда-либо столкнетесь с ошибкой, связанной с попыткой составить родной пакет без tar-архива, убедитесь что там есть файл .bzr-builddeb/default.conf, ошибочно выдающий пакет за родной. Если в версии лога изменений есть тире, то это не родной пакет, поэтому файл конфигурации следует убрать. Обратите внимание, если у bzr builddeb есть оператор --native, то у него нет оператора --no-native.

После того, как вы получили пакет исходного кода, можно собрать его как обычно, с помощью pbuilder-dist (или pbuilder, или sbuild).