Сборка пакетов. Глава 2. DEB. Часть 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. После этого можно собирать пакет.
|
опубликовано: Tigro, 2. Октябрь 2007, 13:08