Какой патч? Он хочет платить ebuild. Проблема патчей вообще в том, что они могут не применяться из-за слишком сильных отличий.
Зачем ему ради пары ebuild держать целую ветку?
В его локальную ветку и так никто не влезет, а ребейз ему не поможет обновить свои ebuild до новых версий автоматически, с наложением патчей на сами ebuild’ы.
И какая разница, локальная репа или официальная? Всё равно надо обновлять ебилд, а где он лежит в /var/db/repos/gentoo или /var/db/repos/local совершенно без разницы.
Это прокатило бы, если один раз пропатчил и затем не обновляешь пакет. Но обновлять нужно
Пока вижу только костыль - после emerge --sync запускать скрипт (не патч, ибо патч может не сработать при изменениях в ебилде), который ищет паттерн в ебилде и вырезает его.
а ребейз ему не поможет обновить свои ebuild до новых версий автоматически, с наложением патчей на сами ebuild’ы
Поможет
Проблема патчей вообще в том, что они могут не применяться из-за слишком сильных отличий.
git частично решает эту проблему, так как при ребейзе видит историю изменений. А если конфликты не решатся автоматически, то можно «дорешать» оставшиеся ёлочки вручную.
никакой магии нет - в package.provided ты кладешь atom(category/package-version) и emerge воспринимает это, как будто он у тебя безальтернативно установлен.
Но если ты положишь туда например category/package-1.0, а потом когда-нибудь выйдет package-1.1 - emerge предложит его «обновить»
Вариант - указать максимально возможную версию, которой никогда не будет у пакета. Т.к. live ebuild-ы в Gentoo имеют версию 9999, то достаточно указать 10000.
Правда я уже видел пару исключений в дереве, но это в основном служебные пакеты
Это просто достаточно большое число, соответствующее формату версии пакета из Package Manager Specification. Если где-то будет выпущена версия 10001 для какого-то пакета - он попытается «обновиться».
Так можно и 39156.999 и 64723.2.0 указать - никто не запрещает.