Часть 3. Накладывание патчей

Как и в 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’ей (каждое имя на новой строке). В нашем случае он будет выглядеть так:

01_mypatch

Теперь самое главное. В файл rules сразу после шапки нужно вставить строку:

include /usr/share/dpatch/dpatch.make

Далее в секции, которая выполняется перед конфигурацией пакета (обычно это config.status или если её нет, то build) нужно вставить вызов patch-stamp:

config.status: patch-stamp configure

К секции clean нужно добавить вызов unpatch, думаю понятно для чего:

clean: unpatch

Также в файл control необходимо добавить зависимость dpatch в поле Build-Depends. После этого можно собирать пакет.

Далее - Часть 4. Chroot. Mock. Pbuilder
Назад - Часть 2. Сборка пакетов.
Указатель