Попытка патча скрипта из пакета

Added by Oleg Butovich 15 days ago

Может поправит кто меня )

для примера, хочу пропатчить cl-kernel скрипт
и сделал такой файлик

# Calculate env=install format=diff name=cl-kernel path=/usr/sbin/ link=/usr/sbin/cl-kernel ac_install_patch==on&&mergepkg(sys-apps/calculate-toolkit)!=
--- cl-kernel 2017-11-04 22:24:20.229472963 +0000
+++ cl-kernel 2017-11-04 22:24:45.872472963 +0000
...
и тд

поместил его в /var/calculate/templates

sys-apps/calculate-toolkit уже стоит

потом вызываю

cl-setup-system --templates local

и ничего 🙁
что я делаю не так? =)

6_ac_install_patch/net-misc/openconnect/openconnect-disable-lz4.patch:# Calculate format=diff
6_ac_install_patch/media-gfx/digikam/digikam_i686.patch:# Calculate format=diff
6_ac_install_patch/media-gfx/gimp/remove_wilber-2.8.6.patch:# Calculate format=diff merge(media-gfx/gimp)>=2.8.6
6_ac_install_patch/media-gfx/inkscape/inkscape-gdm_ptr_fix.patch:# Calculate format=diff
6_ac_install_patch/media-gfx/splashutils/fix_mtab.patch:# Calculate format=diff
6_ac_install_patch/media-gfx/splashutils/text_align.patch:# Calculate format=diff
6_ac_install_patch/media-gfx/splashutils/50-theme_shutdown.patch:# Calculate format=diff
6_ac_install_patch/x11-drivers/ati-drivers/kernel4.2_15.9-r1_x86.patch:# Calculate format=diff pkg(sys-kernel/calculate-sources)=>4.2,4.3&&merge(x11-drivers/ati-drivers)==15.9-r1&&os_arch_machine==i686

вот первые нагрепленные примеры из templates

и так как в моих темлейтах пока нету структуры каталогов такой.. я попытался перенести это дело в заголовок шаблона.. как описано в доке

но походу что-то не хватает )

# Calculate format=diff path=/usr/sbin ac_install_patch==on&&pkg(sys-apps/calculate-toolkit)!=
--- cl-kernel 2017-11-04 22:24:20.229472963 +0000
+++ cl-kernel 2017-11-04 22:24:45.872472963 +0000
...

так тож не работает (
# Calculate format=diff path=/usr/sbin ac_install_patch==on
--- cl-kernel 2017-11-04 22:24:20.229472963 +0000
+++ cl-kernel 2017-11-04 22:24:45.872472963 +0000
....

всмысле так тож не работает ) уже вродь как меньше некуда и особо отличий от того что нагрепил нету...

вообщем после долгих перебираний вот такой вариант заработал

# Calculate format=diff ac_install_merge==on
--- /usr/sbin/cl-kernel 2017-11-04 22:24:20.229472963 +0000
+++ /usr/sbin/cl-kernel 2017-11-04 22:24:45.872472963 +0000
....

тоесть два изменения ac_install_patch -> ac_install_merge и удалена path переменная и добавлен абсолютный путь в патче

Вообщем осталось два вопроса:
1) по поводу второго изменения path это баг? или я как-то не так использовал ее?
2) есть точная дока по хукам ac_install_patch и ac_install_merge (нашел только http://www.calculate-linux.org/main/en/templates_variables но там нету ac_install_patch, наверное уже устарела)


Replies (1)

RE: Попытка патча скрипта из пакета - Added by Mikhail Hiretsky 15 days ago

Правильный вариант следующий:

# Calculate env=install format=diff ac_install_merge==on&&mergepkg(sys-apps/calculate-toolkit)!=
--- /usr/sbin/cl-kernel 2017-11-04 22:24:20.229472963 +0000
+++ /usr/sbin/cl-kernel 2017-11-04 22:24:45.872472963 +0000
....

env=install нужен для того, чтобы подгрузилась переменная ac_install_merge. Условие mergepkg нужно, чтобы шаблон выполнялся только при установке пакета calculate-toolkit, а не всех.

ac_install_patch выполняется перед компиляцией пакета.

1) игнорирование path в формате diff - это баг. Будет исправлено в последующих версиях.
2) по поводу работы шаблонов можно посмотреть записи http://www.calculate-linux.ru/blogs/ru/show_by_tag/шаблоны

(1-1/1)

Thank you!