После обновления до версии 1.3.8-alt0.1.ga3489a6c8 proftpd перестал запускаться с уже имеющимся конфигурационным файлом. В journalctl выводится следующая ошибка: fatal: unknown configuration directive 'IdentLookups' on line 15 of '/etc/proftpd.conf' На предыдущей версии 1.3.6-alt0.4.ga73dbfe3b, при наличии той же строки в конфигурационном файле, подобной ошибки не возникало, proftpd исправно запускался. Версия пакета: 1.3.8-alt0.1.ga3489a6c8 Проверялось в виртуальной машине на workstation и workstation K обновленных до Sisyphus Шаги для воспроизведения: 1. Установить proftpd: # apt-get install proftpd -y 2. Убедиться в наличии строки IdentLookups в файле /etc/proftpd.conf, а также заменить используемый для подключения порт и изменить тип сервера: # cat /etc/proftpd.conf | grep IdentLookups && sed -i "s/inetd/standalone/" /etc/proftpd.conf && sed -i "s/21/7777/" /etc/proftpd.conf 3. Запустить proftpd: # systemctl start proftpd Ожидаемый результат: Сервис успешно запущен Фактический результат: Сервис не запускается выдавая сообщение об ошибке: fatal: unknown configuration directive 'IdentLookups' on line 15 of '/etc/proftpd.conf'
(In reply to Evgeny Ivanitskiy from comment #0) > После обновления до версии 1.3.8-alt0.1.ga3489a6c8 proftpd перестал > запускаться с уже имеющимся конфигурационным файлом. > > В journalctl выводится следующая ошибка: > > fatal: unknown configuration directive 'IdentLookups' on line 15 of > '/etc/proftpd.conf' > > На предыдущей версии 1.3.6-alt0.4.ga73dbfe3b, при наличии той же строки в > конфигурационном файле, подобной ошибки не возникало, proftpd исправно > запускался. предыдущая версия в сизифе была 1.3.7, та версия, что вы имеете в виду, это из p10. А по вашей директиве см. http://www.proftpd.org/docs/RELEASE_NOTES-1.3.7a + The mod_ident module is no longer automatically built by default. To include the mod_ident module in the build, it must be explicitly requested via --enable-ident or --with-shared=mod_ident. This means that configuration files using the IdentLookups directive will now want to using an enclosing <IfModule> section, like so: <IfModule mod_ident.c> IdentLookups off </IfModule> Я включу этот модуль снова в новой сборке.
Кстати, а что именно все-таки хочется добиться с этой переменной? - Я могу убрать эту опцию из конфигурации по умолчанию и не собирать модуль ident - Я могу обновить эту опцию в конфигурации по умолчанию и собрать модуль ident.
(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #2) > Кстати, а что именно все-таки хочется добиться с этой переменной? Не сломать уже существующие установки при обновлении пакета в стабильных бранчах.
(In reply to Alexander Makeenkov from comment #3) > (Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #2) > > Кстати, а что именно все-таки хочется добиться с этой переменной? > > Не сломать уже существующие установки при обновлении пакета в стабильных > бранчах. Я собрал исправление в таске #330015, прошу проверить. Насчет обновления и "не сломать" не получится: - в апстриме это breaking change, и логика тут есть - выкинуть код, который потенциально опасный и не нужен в большинстве случаев. Поэтому тащить эту функциональность включенной по умолчанию нет смысла (т.к. в 100% она отключена на уровне конфигурации "из коробки"). - в сборке для sisyphus я тоже это изменение сделал в виде триггера с предупреждением, что либо эту опцию нужно убрать либо поставить модуль. - в сборке для дистрибутива это на усмотрение выпускающего, либо поддерживать свою сборку, либо тоже написать это в замечаниях по обновлению, либо переписать триггер, чтобы он опцию выкусывал из конфига (не очень надежно).
(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #4) > Я собрал исправление в таске #330015, прошу проверить. Проверил воспроизводимость ошибки в sisyphus с заданием. Если устанавливать proftpd сразу из задания, то никаких проблем не возникает, сервис успешно запускается. Но если обновляться с версии из репозитория, то после обновления до задания ошибка не пропадает. Сервис отказывается запускаться сообщая об ошибке "fatal: unknown configuration directive 'IdentLookups'". Однако с новой версией добавляется новый конфигурационный файл, который записывается в "/etc/proftpd.conf.rpmnew". Он отличается от стандартного конфигурационного файла тем, что там вместо > IdentLookups off Используется > <IfModule mod_ident.c> > IdentLookups off > </IfModule> Если добавить эти две строки в старый конфигурационный файл, то сервис успешно с ним запускается. Следовательно, в любом случае, требуется правка конфигурационного файла для дальнейшей работы
(Ответ для Evgeny Ivanitskiy на комментарий #5) > Если добавить эти две строки в старый конфигурационный файл, то сервис > успешно с ним запускается. Следовательно, в любом случае, требуется правка > конфигурационного файла для дальнейшей работы Если при обновлении выводится сообщение о необходимости это сделать, то думаю, что этого достаточно в данном случае.
(Ответ для Alexander Makeenkov на комментарий #6) > Если при обновлении выводится сообщение о необходимости это сделать, то > думаю, что этого достаточно в данном случае. Единственное предупреждающее сообщение выводится apt-get при обновлении: Обновление / установка... 1: proftpd-1.3.8-alt0.2.ga3489a6c8 предупреждение: /etc/proftpd.conf создан как /etc/proftpd.conf.rpmnew Больше никаких сообщений нет
(In reply to Evgeny Ivanitskiy from comment #7) > (Ответ для Alexander Makeenkov на комментарий #6) > > Если при обновлении выводится сообщение о необходимости это сделать, то > > думаю, что этого достаточно в данном случае. > > Единственное предупреждающее сообщение выводится apt-get при обновлении: > > Обновление / установка... > 1: proftpd-1.3.8-alt0.2.ga3489a6c8 > предупреждение: /etc/proftpd.conf создан как /etc/proftpd.conf.rpmnew > > Больше никаких сообщений нет триггер добавлен для обновления с версии 1.3.6, которая в p10, если обновляться с нее то предупреждение будет выводится. %triggerun -- proftpd < 1.3.7 if grep -q IdentLookups /etc/proftpd.conf; then echo 'WARNING! WARNING! Outdated config detected!' echo 'Manual intervention needed:' echo 'Please remove IdentLookups directive from config or' echo 'install proftpd-mod_indent package if you still need' echo 'IDENT lookups support.' fi
Предупреждение выводится: WARNING! WARNING! Outdated config detected! Manual intervention needed: Please remove IdentLookups directive from config or install proftpd-mod_indent package if you still need IDENT lookups support. 356: proftpd-1.3.6-alt0.4.ga73dbfe3b Вот только пакета proftpd-mod_indent, который в нём указан нету: # apt-get install proftpd-mod_indent Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено E: Невозможно найти пакет proftpd-mod_indent # apt-repo list 330015 | grep -c indent 0 Потому что в сообщении опечатка, и пакет называется proftpd-mod_ident: # apt-repo list 330015 | grep ident proftpd-mod_ident Нужно поправить сообщение, и думаю, что можно отправлять в сизиф.
proftpd-1.3.8-alt0.2.ga3489a6c8 -> sisyphus: Thu Sep 21 2023 L.A. Kostis <lakostis@altlinux.ru> 1.3.8-alt0.2.ga3489a6c8 - enable mod_ident and make trigger with warning if unsupported configuration detected (closes #47656). - adjust default configuration for IdentLookups changes.