Как правильно применять багфиксные патчи? (Предлагаю для FAQ)

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Kopilov
Сообщения: 958
ОС: [K]Ubuntu, Debian

Как правильно применять багфиксные патчи?

Сообщение Kopilov »

Вопрос:
Нас часто тыкают носом в Багзиллу для поиска уже готовых решений, а что с ними потом делать? Рядом с ebuild-ами лежит каталог files с патчами, попробовал поместить туда -- толку никакого. Неужели распаковывать архив из distfiles, применять патч и класть обратно? Но emerge видит подмены: подменённые distfiles качает заново, а после изменения ebuild-файлов отказывается ставить пакет.

Ответ:
Патчи для исходников поместить в каталог files, верно. Патч для ebuild придётся применить вручную -- конечно, не в текстовом редакторе, а командой

Код: Выделить всё

patch package.ebuild package.diff

Потом сделать

Код: Выделить всё

ebuild package.ebuild manifest
чтобы emerge не ругался на незнакомые патчи -- и можно ставить!
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Как правильно применять багфиксные патчи?

Сообщение serzh-z »

Kopilov
Спасибо, но использование утилиты patch, имхо, не Gentoo-specific. К тому же применения диффа к ебилду не решает проблемы патча для исходников пакета. И потом - куда умнее сделать собственный оверлей/репозиторий, в котором и разместить патченный ебилд, вместо того, чтобы портить файл манифеста из офф. дерева, который всё равно будет затёрт при следующей синхронизации.
Спасибо сказали:
Kopilov
Сообщения: 958
ОС: [K]Ubuntu, Debian

Re: Как правильно применять багфиксные патчи?

Сообщение Kopilov »

serzh-z писал(а):
31.03.2010 01:00
Kopilov
Спасибо
Пожалуйста. Это было моё первое использование Багзиллы, многого ещё не знаю.
Но наверно у патчей есть простой стандартный способ применения? Если да -- предложите свой полный ответ на исходный вопрос. Думаю, он многим будет полезен.

serzh-z писал(а):
31.03.2010 01:00
использование утилиты patch, имхо, не Gentoo-specific.
Тогда что следует использовать?

serzh-z писал(а):
31.03.2010 01:00
К тому же применения диффа к ебилду не решает проблемы патча для исходников пакета.
Патч для исходников помещается в каталог files и применяется epatch-ем при сборке -- конечно, если он будет задействован в пропатченном ебилде. По крайней мере, в моём случае: исправлении библиотеки icu-4.4, чтобы revdep-rebuild не пересобирал её раз за разом (#310297) -- произошло именно так.

Кстати, руководство разработчика (целиком не читал, но именно там нашёл один из ключевых моментов: команду ebuild package.ebuild manifest), похоже, переехало на http://devmanual.gentoo.org/ -- можно изменить ссылку на "С чего начать написание собственного ебилда". Точнее, именно эта ссылка находится на лицевой странице портала, хотя в списке документаций старая.

serzh-z писал(а):
31.03.2010 01:00
И потом - куда умнее сделать собственный оверлей/репозиторий, в котором и разместить патченный ебилд, вместо того, чтобы портить файл манифеста из офф. дерева, который всё равно будет затёрт при следующей синхронизации.
Спасибо, буду учиться.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Как правильно применять багфиксные патчи?

Сообщение serzh-z »

Kopilov писал(а):
31.03.2010 02:07
Тогда что следует использовать?
Я имел в виду то, что использование утилиты patch - это не предмет для обсуждения в Gentoo FAQ.

Kopilov писал(а):
31.03.2010 02:07
Но наверно у патчей есть простой стандартный способ применения? Если да -- предложите свой полный ответ на исходный вопрос. Думаю, он многим будет полезен.
Выше - всё было верно, но не стоит портить файл манифеста. Для этого лучше завести собственный оверлей/репозиторий.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Как правильно применять багфиксные патчи?

Сообщение serzh-z »

P.S.: обновил FAQ
Спасибо сказали:
Corvus
Сообщения: 78

Re: Как правильно применять багфиксные патчи?

Сообщение Corvus »

есть простенький экспресс-метод, который не портит манифеста и не требует правки ебилда.

ebuild /path/to/ebuild unpack
исходники распаковываются в /var/tmp/portage/ там их можно пропатчить в спокойной обстановке, затем
ebuild /path/to/ebuild merge
пошла сборка.

Недостаток метода в том, что при повторной пересборке патч испарится.
Спасибо сказали:
Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Re: Как правильно применять багфиксные патчи?

Сообщение Juliette »

serzh-z писал(а):
31.03.2010 17:10
P.S.: обновил FAQ


OFF
Да, четыре года уже ФАКу, и только один (1!) человек за всё время сказал "спасибо". Даже учитывая, что спасибы ввели позже 2006 года. :(
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Как правильно применять багфиксные патчи?

Сообщение serzh-z »

Juliette
Да и пофиг. =)
Спасибо сказали:
Kopilov
Сообщения: 958
ОС: [K]Ubuntu, Debian

Re: Как правильно применять багфиксные патчи?

Сообщение Kopilov »

Думаю, если все благодарные стали бы отмечаться -- список растянулся очень сильно!

P.S.: Было очень приятно увидеть себя в списке авторов :)
Спасибо сказали: