Наложение патча на исходники
Добрый день, захотелось у себя на малинке сконпелять openarena с поддержкой arm64. Сделал патч, положил его в /etc/portage/games-fps/openarena/, в /etc/portage/bashrc добавил хак для наложения своих патчей чтобы не создавать локальный оверлей и править на лету:
post_src_unpack()
{
    [[ ${EAPI:-0} == [012345] ]] || return
    if type epatch_user &> /dev/null ; then
        if [[ -d ${S} ]]; then
            pushd "${S}" 2>/dev/null
            epatch_user
            popd 2>/dev/null
        else
            epatch_user
        fi
    fi
}
запускаю emerge, пишет, что
* Applying user patches from /etc/portage/patches//games-fps/openarena ...
* Done with patching
и ничего не применяется в итоге. Проверяю исходники в /var/tmp/portage/games-fps/openarena-0.8.8/work/openarena-engine-source-0.8.8 на предмет изменений, а их нет. Вот собственно сам патч: https://paste.ee/p/TzeU3 Смущают два слеша там где /patches//games-fps/, может из-за этого не работает? А где и что нужно править? Помогите разобраться, плиз!
- Для комментирования войдите или зарегистрируйтесь
 

/
1. Каталог НЯП /etc/portage/patches/…
2. И смотри на EAPI. Не помню, начиная с какого эта фича поддерживается автоматом. Вроде не раньше 5. Или даже 6.
ЗЫ: http://megabaks.blogspot.com/2012/10/portage.html
:wq
--
Live free or die
Так это я всё знаю. Почему
Так это я всё знаю. Почему только патч не накладывается на исходники, в чём там причина?
?
Отладка — квест ещё тот.
Вот как у меня было сделано (давненько уже) для ебилда из дерева, не поддерживающего
epatch_user:Делай раз:
$ cat /etc/portage/env/x11-libs/vte-0.40.2 pre_src_prepare () { EPATCH_SOURCE="/etc/portage/patches.rc/$CATEGORY/$PN/" \ EPATCH_SUFFIX="patch" \ EPATCH_FORCE="yes" epatch }Делай два:
$ cat /etc/portage/patches.rc/x11-libs/vte/vte_ctl_bs.patch --- src/vte.c 2011-08-29 03:31:45.000000000 +0600 +++ src/vte.c.new 2014-09-10 19:26:34.774749132 +0600 @@ -5356,6 +5356,12 @@ suppress_meta_esc = FALSE; break; } + if (modifiers & GDK_CONTROL_MASK && ! suppress_meta_esc) { + if (strcmp(normal, "") == 0) + normal = g_strdup("); + else + normal = g_strdup(""); + } handled = TRUE; break; case GDK_KEY (KP_Delete)::wq
--
Live free or die