Вы здесь

Наложение патча на исходники

Добрый день, захотелось у себя на малинке сконпелять 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