Собираю под fedora пакет cairo c наложением своего патча. Делаю все вот по этой статье.
В spec файл, полученный из src пакета я добавил только две строки, помеченные (*):
....
Patch0: cairo-1.8.6-repeat-modes.patch
Patch1: cairo-1.2.4-lcd-cleartype-like.diff (*)
....
%prep
%setup -q
%patch0 -p1 -b .repeat-modes
%patch1 -p1 -b .repeat-modes (*)
%build
%configure --disable-static \
.........
В результате при сборке пакета имею:
[516][demas.localhost: rpmbuild]$ rpmbuild -bb SPECS/cairo.spec
Выполняется(%prep): /bin/sh -e /var/tmp/rpm-tmp.Ed0xCc
+ umask 022
+ cd /home/demas/rpmbuild/BUILD
+ cd /home/demas/rpmbuild/BUILD
+ rm -rf cairo-1.8.8
+ /usr/bin/gzip -dc /home/demas/rpmbuild/SOURCES/cairo-1.8.8.tar.gz
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd cairo-1.8.8
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ echo 'Patch #0 (cairo-1.8.6-repeat-modes.patch):'
Patch #0 (cairo-1.8.6-repeat-modes.patch):
+ /bin/cat /home/demas/rpmbuild/SOURCES/cairo-1.8.6-repeat-modes.patch
+ /usr/bin/patch -s -p1 -b --suffix .repeat-modes --fuzz=0
+ echo 'Patch #1 (cairo-1.2.4-lcd-cleartype-like.diff):'
Patch #1 (cairo-1.2.4-lcd-cleartype-like.diff):
+ /bin/cat /home/demas/rpmbuild/SOURCES/cairo-1.2.4-lcd-cleartype-like.diff
+ /usr/bin/patch -s -p1 -b --suffix .repeat-modes --fuzz=0
1 out of 5 hunks FAILED -- saving rejects to file src/cairo-ft-font.c.rej
ошибка: Неверный код возврата из /var/tmp/rpm-tmp.Ed0xCc (%prep)
Как я понимаю, мой патч найден, но почему то не смог наложиться.
Если я распакую исходники в отдельную папку и ручками наложу патчи - то все пройдет успешно:
[521][demas.localhost: cairo-1.8.8]$ patch -p1 -i cairo-1.8.6-repeat-modes.patch
patching file src/cairo-xlib-surface.c
[522][demas.localhost: cairo-1.8.8]$ patch -p1 -i cairo-1.2.4-lcd-cleartype-like.diff
patching file src/cairo-ft-font.c
Hunk #1 succeeded at 57 (offset 4 lines).
Hunk #2 succeeded at 524 with fuzz 1 (offset 30 lines).
Hunk #3 succeeded at 817 (offset 34 lines).
Hunk #4 succeeded at 1123 (offset 35 lines).
Hunk #5 succeeded at 1240 (offset 36 lines).
Отсюда я делаю вывод, что я просто не так прописал строки в spec файле.
Пробовал вместо
%patch1 -p1 -b .repeat-modes
писать
%patch1 -p1
- то же самое.
Как правильно добавить патч?
Я понимаю, что я ручками могу пропатчить исходники, запаковать их обратно и собрать пакет без патчей, но пока рассматриваю этот вариант, как неспортивный.