Как и в RPM, в deb-пакетах можно накладывать патчи, однако это довольно трудоёмкий и неочевидный. И как всегда это можно делать разными способами. Рассмотрим один из них, dpatch (нам понадобится одноимённый пакет), на примере пакета liferea.
Первым делом нам нужно будет создать сам патч. Для этого, как и в случае с RPM, необходимо иметь два каталога исходников. Первый оригинальный, например, liferea-1.4.3b.orig, второй с изменениями liferea-1.4.3b. Патч создается командой:
|
diff -urN liferea-1.4.3b.orig liferea-1.4.3b > mypatch.patch
|
Далее необходимо превратить этот патч в формат dpatch. Для этого нужно отдать следующую команду:
|
dpatch patch-template -p "01_mypatch" \
"mypatch.patch описание" < mypatch.patch \
> 01_mypatch.dpatch
|
Вторые кавычки в принципе можно опустить. Далее нужно создать в каталоге debian подкаталог patches, в который необходимо скопировать наш .dpatch (или несколько .dpatch’ей). Также нужно создать в этом подкаталоге файл 00list с именами наших .dpatch’ей (каждое имя на новой строке). В нашем случае он будет выглядеть так:
Теперь самое главное. В файл rules сразу после шапки нужно вставить строку:
|
include /usr/share/dpatch/dpatch.make
|
Далее в секции, которая выполняется перед конфигурацией пакета (обычно это config.status или если её нет, то build) нужно вставить вызов patch-stamp:
|
config.status: patch-stamp configure
|
К секции clean нужно добавить вызов unpatch, думаю понятно для чего:
Также в файл control необходимо добавить зависимость dpatch в поле Build-Depends. После этого можно собирать пакет.
Далее - Часть 4. Chroot. Mock. Pbuilder
Назад - Часть 2. Сборка пакетов.
Указатель