<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>47656</bug_id>
          
          <creation_ts>2023-09-20 21:46:15 +0300</creation_ts>
          <short_desc>proftpd: unknown configuration directive &apos;IdentLookups&apos;</short_desc>
          <delta_ts>2023-09-26 12:21:40 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>proftpd</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgeny Ivanitskiy">pikone</reporter>
          <assigned_to name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</assigned_to>
          <cc>amakeenk</cc>
    
    <cc>ender</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>233539</commentid>
    <comment_count>0</comment_count>
    <who name="Evgeny Ivanitskiy">pikone</who>
    <bug_when>2023-09-20 21:46:15 +0300</bug_when>
    <thetext>После обновления до версии 1.3.8-alt0.1.ga3489a6c8 proftpd перестал запускаться с уже имеющимся конфигурационным файлом.

В journalctl выводится следующая ошибка:

fatal: unknown configuration directive &apos;IdentLookups&apos; on line 15 of &apos;/etc/proftpd.conf&apos;

На предыдущей версии 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 &amp;&amp; sed -i &quot;s/inetd/standalone/&quot; /etc/proftpd.conf &amp;&amp; sed -i &quot;s/21/7777/&quot; /etc/proftpd.conf

3. Запустить proftpd:
    # systemctl start proftpd

Ожидаемый результат:
Сервис успешно запущен

Фактический результат:
Сервис не запускается выдавая сообщение об ошибке:
fatal: unknown configuration directive &apos;IdentLookups&apos; on line 15 of &apos;/etc/proftpd.conf&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233544</commentid>
    <comment_count>1</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2023-09-20 22:49:32 +0300</bug_when>
    <thetext>(In reply to Evgeny Ivanitskiy from comment #0)
&gt; После обновления до версии 1.3.8-alt0.1.ga3489a6c8 proftpd перестал
&gt; запускаться с уже имеющимся конфигурационным файлом.
&gt; 
&gt; В journalctl выводится следующая ошибка:
&gt; 
&gt; fatal: unknown configuration directive &apos;IdentLookups&apos; on line 15 of
&gt; &apos;/etc/proftpd.conf&apos;
&gt; 
&gt; На предыдущей версии 1.3.6-alt0.4.ga73dbfe3b, при наличии той же строки в
&gt; конфигурационном файле, подобной ошибки не возникало, proftpd исправно
&gt; запускался.
предыдущая версия в сизифе была 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 &lt;IfModule&gt; section, like so:

      &lt;IfModule mod_ident.c&gt;
        IdentLookups off
      &lt;/IfModule&gt;

Я включу этот модуль снова в новой сборке.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233549</commentid>
    <comment_count>2</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2023-09-21 00:35:43 +0300</bug_when>
    <thetext>Кстати, а что именно все-таки хочется добиться с этой переменной?

- Я могу убрать эту опцию из конфигурации по умолчанию и не собирать модуль ident
- Я могу обновить эту опцию в конфигурации по умолчанию и собрать модуль ident.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233559</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2023-09-21 08:54:31 +0300</bug_when>
    <thetext>(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #2)
&gt; Кстати, а что именно все-таки хочется добиться с этой переменной?

Не сломать уже существующие установки при обновлении пакета в стабильных бранчах.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233742</commentid>
    <comment_count>4</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2023-09-23 23:24:35 +0300</bug_when>
    <thetext>(In reply to Alexander Makeenkov from comment #3)
&gt; (Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #2)
&gt; &gt; Кстати, а что именно все-таки хочется добиться с этой переменной?
&gt; 
&gt; Не сломать уже существующие установки при обновлении пакета в стабильных
&gt; бранчах.

Я собрал исправление в таске #330015, прошу проверить. Насчет обновления и &quot;не сломать&quot; не получится:
- в апстриме это breaking change, и логика тут есть - выкинуть код, который потенциально опасный и не нужен в большинстве случаев. Поэтому тащить эту функциональность включенной по умолчанию нет смысла (т.к. в 100% она отключена на уровне конфигурации &quot;из коробки&quot;).
- в сборке для sisyphus я тоже это изменение сделал в виде триггера с предупреждением, что либо эту опцию нужно убрать либо поставить модуль.
- в сборке для дистрибутива это на усмотрение выпускающего, либо поддерживать свою сборку, либо тоже написать это в замечаниях по обновлению, либо переписать триггер, чтобы он опцию выкусывал из конфига (не очень надежно).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233793</commentid>
    <comment_count>5</comment_count>
    <who name="Evgeny Ivanitskiy">pikone</who>
    <bug_when>2023-09-25 17:09:46 +0300</bug_when>
    <thetext>(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #4)
&gt; Я собрал исправление в таске #330015, прошу проверить.

Проверил воспроизводимость ошибки в sisyphus с заданием.

Если устанавливать proftpd сразу из задания, то никаких проблем не возникает, сервис успешно запускается. Но если обновляться с версии из репозитория, то после обновления до задания ошибка не пропадает. Сервис отказывается запускаться сообщая об ошибке &quot;fatal: unknown configuration directive &apos;IdentLookups&apos;&quot;.

Однако с новой версией добавляется новый конфигурационный файл, который записывается в &quot;/etc/proftpd.conf.rpmnew&quot;. Он отличается от стандартного конфигурационного файла тем, что там вместо 

&gt; IdentLookups off

Используется 

&gt; &lt;IfModule mod_ident.c&gt;
&gt;         IdentLookups off
&gt; &lt;/IfModule&gt;

Если добавить эти две строки в старый конфигурационный файл, то сервис успешно с ним запускается. Следовательно, в любом случае, требуется правка конфигурационного файла для дальнейшей работы</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233794</commentid>
    <comment_count>6</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2023-09-25 17:28:46 +0300</bug_when>
    <thetext>(Ответ для Evgeny Ivanitskiy на комментарий #5)
&gt; Если добавить эти две строки в старый конфигурационный файл, то сервис
&gt; успешно с ним запускается. Следовательно, в любом случае, требуется правка
&gt; конфигурационного файла для дальнейшей работы

Если при обновлении выводится сообщение о необходимости это сделать, то думаю, что этого достаточно в данном случае.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233795</commentid>
    <comment_count>7</comment_count>
    <who name="Evgeny Ivanitskiy">pikone</who>
    <bug_when>2023-09-25 17:46:28 +0300</bug_when>
    <thetext>(Ответ для Alexander Makeenkov на комментарий #6)
&gt; Если при обновлении выводится сообщение о необходимости это сделать, то
&gt; думаю, что этого достаточно в данном случае.

Единственное предупреждающее сообщение выводится apt-get при обновлении:

Обновление / установка...
1: proftpd-1.3.8-alt0.2.ga3489a6c8                                 предупреждение: /etc/proftpd.conf создан как /etc/proftpd.conf.rpmnew

Больше никаких сообщений нет</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233797</commentid>
    <comment_count>8</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2023-09-25 18:20:25 +0300</bug_when>
    <thetext>(In reply to Evgeny Ivanitskiy from comment #7)
&gt; (Ответ для Alexander Makeenkov на комментарий #6)
&gt; &gt; Если при обновлении выводится сообщение о необходимости это сделать, то
&gt; &gt; думаю, что этого достаточно в данном случае.
&gt; 
&gt; Единственное предупреждающее сообщение выводится apt-get при обновлении:
&gt; 
&gt; Обновление / установка...
&gt; 1: proftpd-1.3.8-alt0.2.ga3489a6c8                                
&gt; предупреждение: /etc/proftpd.conf создан как /etc/proftpd.conf.rpmnew
&gt; 
&gt; Больше никаких сообщений нет

триггер добавлен для обновления с версии 1.3.6, которая в p10, если обновляться с нее то предупреждение будет выводится.

%triggerun -- proftpd &lt; 1.3.7                                                                                                                                                                                                                                                             
if grep -q IdentLookups /etc/proftpd.conf; then                                                                                                                                                                                                                                           
    echo &apos;WARNING! WARNING! Outdated config detected!&apos;                                                                                                                                                                                                                                    
    echo &apos;Manual intervention needed:&apos;                                                                                                                                                                                                                                                    
    echo &apos;Please remove IdentLookups directive from config or&apos;                                                                                                                                                                                                                            
    echo &apos;install proftpd-mod_indent package if you still need&apos;                                                                                                                                                                                                                           
    echo &apos;IDENT lookups support.&apos;                                                                                                                                                                                                                                                         
fi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233813</commentid>
    <comment_count>9</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2023-09-25 19:59:14 +0300</bug_when>
    <thetext>Предупреждение выводится:

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

Нужно поправить сообщение, и думаю, что можно отправлять в сизиф.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233875</commentid>
    <comment_count>10</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2023-09-26 12:21:40 +0300</bug_when>
    <thetext>proftpd-1.3.8-alt0.2.ga3489a6c8 -&gt; sisyphus:

 Thu Sep 21 2023 L.A. Kostis &lt;lakostis@altlinux.ru&gt; 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.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>