LINUX.ORG.RU

не сpaбатывает epatch, но patch сpaбатывает

 , ,


0

1

короче, модифицировал малость ebuild для freetype, чтоб использовать пачти от bohoomil'a https://github.com/bohoomil/fontconfig-ultimate/tree/master/freetype. но

epatch "${FILESDIR}"/02-upstream-*.patch
не работает, а
patch -p1 -i "${FILESDIR}"/02-upstream-*.patch
отлично пачтит.

patch.out - https://bpaste.net/show/87a872c50511

В чём дело?

Pinkbyte, выручай.

Deleted

Последнее исправление: Lifun (всего исправлений: 5)

Проверь пути к файлам в самом патче. Иногда epatch считает только относительно WORKDIR.

iVS ★★★★★
()
Последнее исправление: iVS (всего исправлений: 1)
Ответ на: комментарий от iVS

проверял.
фигня в том, что остальные два патча епатчатся без проблем.
а может дело в том, что там всякие комментарии типа

From 30fe5e762e062612fdf4b56b50d813525a5aa311 Mon Sep 17 00:00:00 2001
From: Werner Lemberg <wl@gnu.org>
Date: Sun, 4 Oct 2015 13:08:08 +0200
Subject: [PATCH 022/110] [base] Replace left shifts with multiplication
 (#46118).

* src/base/ftglyph.c (ft_bitmap_glyph_bbox, FT_Get_Glyph): Do it.
---
 ChangeLog          |  6 ++++++
 src/base/ftglyph.c | 14 +++++++-------
 2 files changed, 13 insertions(+), 7 deletions(-)
?

Deleted
()
Ответ на: комментарий от Deleted

---

Тут epatch будет искать имя файла и будет упс

В patch.out есть команды которую применяет epatch:

PATCH COMMAND: patch -p0 -g0 -E --no-backup-if-mismatch < '/home/my_user/overlay/media-libs/freetype/files/02-upstream-2015.11.08.patch'

PATCH COMMAND: patch -p1 -g0 -E --no-backup-if-mismatch < '/home/my_user/overlay/media-libs/freetype/files/02-upstream-2015.11.08.patch'

Вот если с ними напрямую всё патчится, а с epatch нет - тогда это странно

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

PATCH COMMAND: patch -p1 -g0 -E --no-backup-if-mismatch < '/home/my_user/overlay/media-libs/freetype/files/02-upstream-2015.11.08.patch'

с этой пропачтилось

Deleted
()
Ответ на: комментарий от Deleted

Тогда открывай багрепорт и прикладывай туда как неудавшийся патч, так и ссылку на то, что им должно патчиться

Pinkbyte ★★★★★
()
Ответ на: комментарий от Deleted

багрепорте на epatch, в качестве примера для воспроизведения проблемы указывай freetype и соответствующий патч

Pinkbyte ★★★★★
()

В patch.out же куча сообщений «Hunk FAILED». Так что файлы находятся правильно, а вот сам патч не накладывается.

Попробую угадать: патч хорошо накладывается руками на чистые сорцы, а через epatch этот патч идёт после всех остальных патчей, которые есть в генте, и возникает конфликт?

cchr
()
Последнее исправление: cchr (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

честно говоря, по мне это бред, т.е. надо писать патч таким образом, чтоб он соответствовал требованиям epatch.

Deleted
()
Ответ на: комментарий от Deleted

Проблема в том, что patch и patch --dry-run работают по разному. А так как epatch опирается на последнее - вот тут-то и происходит фэйл.

Цитата из багрепорта:

The problem seems to be that the patch patches «ChangeLog» multiple times and these patches on depend on each other. Without --dry-run patch applies the patches one after each other and everything works. With --dry-run patch sees whether the first patch applies. Next, it checks whether the second patch applies _to the original file_, to which the second patch might not apply after all.

Предложи другое решение для epatch. Вариант - патчить сразу не глядя - не подходит.

К слову, в патчах доставаемых из VCS напрямую, а не собираемых руками из множества коммитов такой хрени не бывает.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte

забить на dry-run.
почему нельзя сразу же патчить, если патчить всё равно надо, т.к. если патч не применится, тогда вот тебе и ошибка?

Deleted
()
Ответ на: комментарий от Deleted

Попробуй, --dry-run должен вроде как делать тоже самое что и обычный запуск patch, только без фактического применения патчей. Тут как видишь всё немного не так.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

наезд на epatch был необоснован, дело в патче, он криво сделан

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.