Как создать шаблон format=diff?

Кто может подсказать, КАК НАЙТИ, что у меня не так :frowning: Т.е. интересует, не столько сама ошибка, сколько алгоритм поиска.

Есть кастомный шаблон /var/calculate/templates/additional_soft_patch/net-mail/dovecot/dovecot-duplicate-lock-max-locks.patch:

Спойлер
# Calculate format=diff
--- a/src/lib-storage/mail-duplicate.c  2022-06-14 13:55:03.000000000 +0700
+++ b/src/lib-storage/mail-duplicate.c  2022-08-05 23:18:27.000000000 +0700
@@ -27,7 +27,7 @@

 #define DUPLICATE_LOCK_TIMEOUT_SECS 65
 #define DUPLICATE_LOCK_WARN_SECS 4
-#define DUPLICATE_LOCK_MAX_LOCKS 100
+#define DUPLICATE_LOCK_MAX_LOCKS 4096

 enum mail_duplicate_lock_result {
        MAIL_DUPLICATE_LOCK_OK,

Если указанный патч положить в /etc/portage/patches/, то он нормально накладывается.

Шаблон делал по аналогии с /var/db/repos/calculate/profiles/templates/6_ac_install_patch/media-video/mplayer/0202_glibc-2.27.patch Если делать ebuid .... compile, то для mplayer шаблон накладывается, а на dovecot нет. :frowning:

Возможно, это поможет в понимании:
https://old.calculate-linux.org/main/ru/calculate_utilities_templates
https://old.calculate-linux.org/main/ru/templates_variables

А этот шаблон у меня отработал штатно. Сравните со своим.
additional_soft_patch.tar.xz (572 байта)

ООООО! Что я Вам сейчас таки расскажу!.. Ммммать!..

Начал я сравнивать Ваш вариант со своим и обнаружил, что у меня additional_soft_patch/net-mail/.calculate_directory пустой. Это единственное отличие. Ну, ОК, прописал как у Вас. ebuid clean, ebuid compile, и пишут мне на экран такое:


>>> Source configured.
 * Применение патчей Calculate утилитами для dovecot ...
 * Применение патча dovecot-duplicate-lock-max-locks.patch
 * Утилиты Calculate изменили файлы:
 *      src/lib-storage/mail-duplicate.c

Я изумляюсь и проверяю, таки да, патч наложен. Но мне же интересно, ибо не должно так быть. Опять делаю net-mail/.calculate_directory пустым. ebuid clean, ebuid compile, и мне опять пишут, что патч наложен. Я начинаю ощущать себя идиотом. И что я не делаю, патч накладывается, а ощущения усиливаются. И тут мне вспоминается, что перед тем, как начать сверку Вашего варианта со своим, я накатил апдейт на систему, есть у меня такая дурная привычка. :frowning: Но у меня же почтовых серверов много больше одного! :slight_smile:

На “другом” сервере удаляю additional_soft_patch, разворачиваю Ваш вариант, ebuid clean, ebuid compile, иии…

Install prefix . : /usr
script drivers . : file dict ldap
>>> Source configured.
>>> Compiling source in /var/calculate/tmp/portage/net-mail/dovecot-2.3.21.1/work/dovecot-2.3.21.1 ...

Т.е. Ваш вариант тоже не работает.

Дальше делается десяток экспериментов, которые показывают, что если в систему поставить/обновить любой пакет из dev-python/, то ситуация исправляется, и всё начинает работать!

Таким образом, помимо первого вопроса про “как искать проблему”, возникает второй вопрос: А какого чёрта происходит в системе, причём молча и минуя пакетный менеджер ??? :grimacing: :face_with_symbols_over_mouth: :grimacing:

PS. За ссылки спасибо. Я их, правда, скоро наизусть выучу, но тем не менее. И за Ваш вариант пача отдельное большое спасибо!