Сборка обновленного пакета из ветки bzr может значительно отличаться в зависимости от того, кто поддерживает ветки или как пакет работает в целом. Тем не менее, вот несколько рекомендаций по быстрому и грязному обновлению практически любого пакета, которые должны быть переданы в PPA:
Получить ветку:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head
Затем переключитесь на него и обновите список изменений:
dch -i
dch -i просто откроет новую запись в debian / changelog, увеличив ревизию версии на единицу. Если вы хотите добавить патч, это прекрасно, но если вы хотите обновить его до более новой версии вышестоящего программного обеспечения, вам нужно обновить номер версии до тире (-). Скажем, версия в 1.2-0ubuntu1 , если вы запустите dch -i, она изменится на 1.2-0ubuntu2 , что хорошо для исправления, но если вам нужна новая версия, вы, вероятно, захотите изменить ее на 1.3-0ubuntu1 .
Если вам нужно исправить, сейчас самое время добавить свои изменения. В ветвях, в которых есть только каталог debian / , вы можете использовать bzr bd-do (требуется пакет bzr-builddeb), чтобы переключиться на рабочее дерево, где вы можете вносить изменения, использовать quilt или любую систему исправлений, а затем «выйти из 0», чтобы скопировать ваши изменения обратно.
Если вы хотите новую версию для апстрима, после изменения журнала изменений вы, вероятно, выполните команду, подобную этой:
debian/rules get-orig-source
Обычно вы загружаете нужный tarball от вышестоящего издателя, чтобы начать работу. Если необходимы дальнейшие изменения, продолжайте, как описано выше, для «исправления» или изменения других файлов в каталоге debian / , иначе вы почти закончили:
bzr bd -S
BZR BD позаботится о строительстве. Вызов его без аргументов начинает строить в вашей системе, в то время как вызов с -S говорит ему подготовить пакет с исходным кодом, который будет включать файл ..._ source.changes, который вы хотите загрузить в свой PPA (используйте dput ppa: <ваше имя> / <имя вашего ppa> <файл изменений> для этого).
Для пакетов NetworkManager это немного отличается. Давайте посмотрим на openconnect конкретно:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect
Убедитесь, что у вас есть все зависимости сборки: sudo get-build-deps
Получив ветку, вы прочитаете файл debian / control и попытаетесь загрузить все, что вам нужно для сборки network-manager-openconnect. Возможно, вам тоже нужен Git. Как только это будет сделано, запустите get-orig-source, чтобы получить только архив самого последнего снимка с git:
debian/rules get-orig-source
Вы увидите пролетающий текст и появится тарбол с длинным номером версии. Это последний код, который вы можете получить для nm-openconnect.
Затем вам нужно будет обновить список изменений, указав номер версии из архива, просто сохранив суффикс -0ubuntu1 без изменений.
Или измените debian / changelog на нужный номер версии, затем запустите: debian / rules get-current-source
Поскольку плагины не сильно меняются, вы можете просто собрать пакет оттуда, используя bzr bd, как указано выше. Если нет, примените любые необходимые изменения, как указано выше.
Не забудьте bzr commit после внесения изменений.
Сначала я забыл добавить, не стесняйтесь использовать систему предложений о слиянии ( предложите объединить ссылку на страницу вашего филиала на LP), когда изменения, которые вы делаете, могут принести пользу другим. Обычно вы можете просто предложить слияние с веткой, на которой основана ваша ветка (например, lp: ~ network-manager / network-manager / openconnect-ubuntu.head в этом случае).