LINUX.ORG.RU

принудительные патчи

 


0

1

Как быть с ебилдами, в которых нет epatch_user?
Уже успел напихать всякого мусора в /etc/portage: http://pastebin.com/eihYpbDt
Всё равно не патчится :(

UPD: Поставим вопрос по-другому - почему то, что выложено по ссылке, не работает?

★★★

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

Поместить в локальный оверлей и добавить функцию epatch_user, либо просто указать патч и ставить из локального оверлея.

kostik87 ★★★★★
()

Как быть с ебилдами, в которых нет epatch_user?

1. Локальный оверлей
2. Если ебилд из главного дерева - запросить поддержку epatch_user на bugs.gentoo.org

Многие мэйнтэйнеры не считают данную фичу полезной(и зря) и не добавляют ее в свои ебилды без запросов от пользователей. Нет запросов на багзилле - фича не нужна. Я с этим не согласен, поэтому в большинстве моих ебилдов epatch_user явно или неявно присутствует.

3. Если ебилд из оверлея - отправить реквест владельцу оверлея.

4. Если решение нужно прямо сейчас - разобраться как правильно использовать bashrc. Об этом писал в том числе и megabaks - http://megabaks.blogspot.co.uk/2012/10/portage.html

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

Другой очевидный вариант это написать о проблеме мантейнеру ebuild`а и ждать, пока он поправит, вас он видимо тоже не устраивает ?

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

1. Локальный оверлей

И так каждую версию в оверлей копировать и править... Неудобно ж так

2. Если ебилд из главного дерева - запросить поддержку epatch_user на bugs.gentoo.org

Я хочу патчить что угодно, а не то, что мне разрешат Их Величества Генту-девелоперы

3. Если ебилд из оверлея - отправить реквест владельцу оверлея.

Примерно то же самое

4. Если решение нужно прямо сейчас - разобраться как правильно использовать bashrc. Об этом писал в том числе и megabaks

С его сайта я и взял автопатчер, который раньше работал, а теперь не хочет.

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

Я хочу патчить что угодно, а не то, что мне разрешат Их Величества Генту-девелоперы

Очевидно что

1. Локальный оверлей

решает.

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

Подытожим, я хочу, что бы мне всё было работало, но не хочу ничего для этого делать.

Тебе уже сказали как решить твою проблему, локальны оверлей раз, обращение к мантейнеру два, разобраться как использовать скрипт, написанный megabaks`ом три, ну либо просто отредактируй ebuild в дереве portage, внеся функцию epatch_user в секцию src_prepare, например, после чего выполни digest для ebuild`а, поставить пакет с этого ebuild`а с наложением патчей до первой синхронизации дерева portage сможешь, это 4.

Ну и ешё раз, это open source, если какого-либо функционала нет, то реализуй его сам, либо пошли запрос о функционале разработчику, в данном случае мантейнеру ebuild`а. Ведь если запроса нет, значит ни кому это не нужно.

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

Подытожим, я хочу, что бы мне всё было работало, но не хочу ничего для этого делать.

Я УЖЕ сделал, и хочу теперь разобраться, почему ТЕПЕРЬ это не работает - у меня или вообще

разобраться как использовать скрипт, написанный megabaks`ом три

Так он у меня работал прекрасно, уж не знаю, я там что-то накосячил или гентушники поломали...

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

Мда, что-то тогда название темы не соответствует.

Нужно было позвать megabaksё`а и в теме указать, что проблемы с его авто патчером.

Ну а по хорошему, нужно написать запросы мантейнерам нужных вам пакетов.

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

Я УЖЕ сделал, и хочу теперь разобраться, почему ТЕПЕРЬ это не работает - у меня или вообще

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

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

Я хочу патчить что угодно, а не то, что мне разрешат Их Величества Генту-девелоперы

Ну так пропатчи портаж, если такой умный. Или жди EAPI 6, где будет соответсвующая фича

Тебе предлагают помощь а ты отбрыкиваешься - желание помочь резко пропадает. Я доходчиво объясняю?

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

Нужно было позвать megabaksё`а и в теме указать, что проблемы с его авто патчером.

Я рассуждал по другой логике - кто-то посмотрит в выложенные файлы и скажет, что не так. Всё-таки, автопатчер - это просто небольшой скрипт, а не прога на C. Возможно, я был неправ, да.

Ну а по хорошему, нужно написать запросы мантейнерам нужных вам пакетов.

Ради того, чтобы уменьшить ЧСВ hibernate-script'а и ускорить до максимума убирание плашки «Press F11 to leave full screen» (или что там понаписано) - писать какие-то багрепорты? Глупость какая...

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

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

грустно, да?

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

Отбрыкиваюсь я от очевидных вариантов или от... не знаю даже, как это сказать. Вот если я захочу на свой велик приделать звонок, стану ли я писать фирме, которая этот велик делала, чтобы все велики выпускали сразу со звонками? Почти так же и тут.
За предложенную вами помощь я искренне благодарен. Правда.

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

либо ты правишь код сам, либо пишешь багрепорты

Я исправил сам, что мне нужно, теперь я хочу, чтобы исправления накладывались на все версии нужного софта и для этого пытаюсь воспользоваться мощью portage. А получается, его самого нужно патчить. Ну как так...

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

Ну сделай тогда сам, а именно помести ebuild в локальный оверлей и поправь его, не забыв выполнить digest. Либо перейди в директорию с ebuild`ом, выполни 'ebuild package-version.ebuild unpack', затем перейди в /var/tmp/portage/<category>/<atom>/work, наложи патч, затем выполни 'ebuild package-version.ebuild configure', 'ebuild package-version.ebuild compile' и 'ebuild package-version.ebuild merge' или 'ebuild package-version.ebuild package'.

Понимаешь, есть определённые способы, которыми можно выполнить нужное тебе действие, а именно наложить патч. Их всего несколько:
- поместить ebuild в локальный оверлей и отредактировать его, внеся информацию о наложении патча, либо добавив функцию epatch_user;
- запросить мантейнера пакета внести в ebuild изменения;
- Поставить пакет тем способом с наложением патча, который я указал выше в этом сообщении;
- собрать программу вообще не через ebuild, но это не приветствуется;
- ну и последний вариант, написать скрипт наложения патчей либо воспользоваться чьим-либо, в случае проблем ты их решаешь сам или просишь помощи у автора скрипта.

Других вариантов нет. Ну а сравнение со звонком не корректно, потому, что возможность установки звонка предусмотрена уже производителем велосипеда, и производителем звонка наличием соответствующего крепления. В Gentoo для наложения патчей тоже предусмотрены свои механизмы, о которых тебе и написали и нет ничего зазорного в том, что бы ими воспользоваться.

Ну и шапка темы действительно не соответствует вопросу.

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

Ебилды нужно править, если я решу эти патчи добавить в свой оверлей. А если мне нужно просто добавить в софт изменения под себя, то это некрасивое решение, хоть и надежное, не спорю.

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

А вот так, мантейнер пакета не подумал, что понадобится возможность наложения патчей не указанных в ebuild`е, а ему ни кто не написал запрос. Ну а разработчики собственно portage только добавляют необходимый функционал поддержки наложения сторонних патчей без явного указания функции epatch_user. Посмотрите changelog более новых версий portage, возможно нужный вам функционал уже добавлен.

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

а «красивого» решения не существует

можно, конечно, патчить вручную и устанавливать мейк инсталлом, но красивым такой способ назвать невозможно

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

Вот если я захочу на свой велик приделать звонок, стану ли я писать фирме, которая этот велик делала, чтобы все велики выпускали сразу со звонками?

Угу, я уже понял твое отношение к опенсорсу. «У меня работает - и ладно, на остальных - плевать».

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

Патчи не нужны, твоя цель написать запрос на добавление в ebuild функции epatch_user, как универсального решения.

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

А ведь правда...
В funtoo уже давно эта «фича» есть, а в gentoo до сих пор не могут добавить. Или добавили, но в portage-2.2.1 нет, а обновиться я пока не могу по техническим причинам.
Багрепорты не писал ни разу, так что возьмусь, как только будет свободное время и нормальное самочувствие.

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

я без поправок ламоботов разберусь что в этой ситуации правильно, а что - нет

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