Восстановить пакет из исходного кода?
Я пытаюсь пересобрать пакет (конкретно grub2
) для устранения некоторых ошибок, которые были исправлены в восходящем потоке, но не исправлены в Ubuntu, и чтобы пакет должным образом интегрировался в Ubuntu. Пакет размещается в bzr на Launchpad и GNU Savannah.
Как преобразовать "исходный" исходный пакет исходных текстов в версию "Ubuntu" и перекомпилировать / переупаковать его? Я понял, что могу получить последнюю версию исходного кода Ubuntu с apt-get source
, но есть существенные отличия от основной версии. Какой лучший курс действий здесь?
3 ответа
Вы можете попробовать этот трюк после установки bzr и bzr-builddeb:
bzr branch ubuntu:yourrelease/grub2
cd grub2
[ -d debian/patches ] && quilt pop -a
bzr commit -m 'reverting all patches' || :
bzr merge-upstream lp:grub2
dch -i
# Here edit the version info to match upstream..
bzr bd
Это должно создать вам новый grub2 из исходного кода чисто (без патчей). Вы можете обнаружить, что вам нужны некоторые из этих патчей, поэтому стоит взглянуть на список и принять решение.
обратите внимание, что 'ubuntu:yourrelease/grub2' может не работать на старых версиях bzr. Если это не поможет, попробуйте 'lp:ubuntu/yourrelease/grub2'
Для моего собственного требования к упаковке, которое похоже на вопрос, я использовал этот метод: https://wiki.ubuntu.com/PackagingGuide/Complete
Вы можете сосредоточиться на ссылках pbuilder, чтобы ускорить процесс.
Что касается меня, я следовал инструкции до шага 5 в методе. Тогда я сделал:
apt-get build-dep <package> #since I had not configured pbuilder
dpkg-buildpackage -k<key id>
Может случиться так, что версия Grub, которая упакована в Ubuntu, старше, чем та, что находится в восходящей ветке Grub.
В ветке Ubuntu также будет каталог "debian /", содержащий метаданные, специфичные для Debian / Ubuntu для пакета, и, возможно, некоторые патчи с бэкпортами исправлений ошибок или дальнейшей интеграцией для Ubuntu. Для получения дополнительной информации читайте http://developer.ubuntu.com/packaging/html/