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

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

    <bug>
          <bug_id>31779</bug_id>
          
          <creation_ts>2016-02-10 15:06:52 +0300</creation_ts>
          <short_desc>Неверный вывод /usr/bin/manpath</short_desc>
          <delta_ts>2017-09-04 07:31:46 +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>man-db</component>
          <version>unstable</version>
          <rep_platform>all</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>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>33842</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Cherepanov">cas</reporter>
          <assigned_to name="Alexey Gladkov">legion</assigned_to>
          <cc>asy</cc>
    
    <cc>glebfm</cc>
    
    <cc>iv</cc>
    
    <cc>ldv</cc>
    
    <cc>legion</cc>
    
    <cc>mike</cc>
    
    <cc>placeholder</cc>
    
    <cc>ruslandh</cc>
    
    <cc>voins</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>154897</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2016-02-10 15:06:52 +0300</bug_when>
    <thetext>[root@c253 ~]# /usr/bin/manpath
/usr/share/man/ru:/usr/share/man:/usr/local/share/man:/usr/local/man
[root@c253 ~]# LC_ALL=C /usr/bin/manpath
/usr/share/man/ru:/usr/share/man:/usr/local/share/man:/usr/local/man

/usr/share/man/ru на первом месте. После этого при установленном man-pages-ru всегда показывается русская версия. Безотносительно от локали, указанной в LC_ALL.

Если же поменять местами:
export MANPATH=/usr/share/man:/usr/share/man/ru:/usr/local/share/man:/usr/local/man

То man начинает работать как положено:
в русской локали показывать русскую страницу, в LC_ALL=C man apt-cache - англоязычную.

Более того! man прекрасно переключает локализованные страницы сам, без добавления /usr/share/man/ru в MANPATH.

Вывод: /usr/bin/manpath не должен возвращать список с /usr/share/man/ru</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161942</commentid>
    <comment_count>1</comment_count>
    <who name="ruslandh">ruslandh</who>
    <bug_when>2017-02-17 07:54:52 +0300</bug_when>
    <thetext>Что-то никакого движения ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163531</commentid>
    <comment_count>2</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-05-04 10:22:33 +0300</bug_when>
    <thetext>А у меня, вроде бы, правильно работает (p8).

$ /usr/bin/manpath
/usr/share/man:/usr/local/share/man:/usr/local/man

$ rpm -qf /usr/bin/manpath
man-1.6g-alt3

$ rpm -qa|grep man-pages
man-pages-ru-4.08-alt3
man-pages-4.10-alt2
man-pages-ru-extra-0.1-alt5

Но, в любом случае, в Сизифе man поменялся на man-db, теперь надо проверять с ним. И, опять же, у меня и с man-db работает:

$ locale
LANG=ru_RU.UTF-8
LC_CTYPE=&quot;ru_RU.UTF-8&quot;
LC_NUMERIC=&quot;ru_RU.UTF-8&quot;
LC_TIME=C
LC_COLLATE=&quot;ru_RU.UTF-8&quot;
LC_MONETARY=&quot;ru_RU.UTF-8&quot;
LC_MESSAGES=C
LC_PAPER=&quot;ru_RU.UTF-8&quot;
LC_NAME=&quot;ru_RU.UTF-8&quot;
LC_ADDRESS=&quot;ru_RU.UTF-8&quot;
LC_TELEPHONE=&quot;ru_RU.UTF-8&quot;
LC_MEASUREMENT=&quot;ru_RU.UTF-8&quot;
LC_IDENTIFICATION=&quot;ru_RU.UTF-8&quot;
LC_ALL=

$ rpm -qa|grep man-pages
man-pages-4.10-alt2
man-pages-ru-4.08-alt3
man-pages-ru-extra-0.1-alt5

man iconv открывает английский man, LC_MESSAGES=ru_RU.UTF-8 man iconv - русский.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163546</commentid>
    <comment_count>3</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2017-05-04 13:28:43 +0300</bug_when>
    <thetext>На man-db-2.7.6.1 то же самое: в локали C, POSIX, en_US показывается русский man.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163548</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-05-04 14:02:55 +0300</bug_when>
    <thetext>(In reply to comment #3) and (In reply to comment #0)

&gt; На man-db-2.7.6.1 то же самое: в локали C, POSIX, en_US показывается русский
&gt; man.

&gt; Вывод: /usr/bin/manpath не должен возвращать список с /usr/share/man/ru

Ну так надо понять, откуда вылез /usr/share/man/ru. У меня-то этого ни с man, ни с man-db нет. Для man (в p8 правда) вывод приведён в Comment #2, для man-db вот:

$ LC_MESSAGES=ru_RU.UTF-8 /usr/bin/manpath
/usr/bin/manpath: предупреждение: найдена переменная среды $MANPATH, игнорируется /etc/man_db.conf
/usr/local/share/man:/usr/share/man:/usr/local/man

У и если переоткрывать, то с перевешиванием на man-db надо было.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163569</commentid>
    <comment_count>5</comment_count>
    <who name="ruslandh">ruslandh</who>
    <bug_when>2017-05-05 00:20:59 +0300</bug_when>
    <thetext>

$ /usr/share/man/ru:/usr/share/man:/usr/local/share/man:/usr/local/man
bash: /usr/share/man/ru:/usr/share/man:/usr/local/share/man:/usr/local/man: Нет такого файла или каталога
$ LC_ALL=C /usr/bin/manpath
/usr/bin/manpath: warning: $MANPATH set, ignoring /etc/man_db.conf
/usr/local/share/man:/usr/share/man/ru:/usr/share/man:/usr/local/man
$ /usr/bin/manpath
/usr/bin/manpath: предупреждение: найдена переменная среды $MANPATH, игнорируется /etc/man_db.conf
/usr/local/share/man:/usr/share/man/ru:/usr/share/man:/usr/local/man
$ echo $MANPATH
/usr/local/share/man:/usr/share/man/ru:/usr/share/man:/usr/local/man


rpm -qf /etc/bash_completion.d/man-sh
man-sh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163570</commentid>
    <comment_count>6</comment_count>
    <who name="ruslandh">ruslandh</who>
    <bug_when>2017-05-05 00:21:50 +0300</bug_when>
    <thetext>В смысле, если стоит, попробовать удалить man-sh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165450</commentid>
    <comment_count>7</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-08-28 16:30:31 +0300</bug_when>
    <thetext>Исходя из Comment #3 перевешиваю на man-db, но проблему локализовать может только тот, у кого это проявляется. Я вот у себя воспроизвести не могу, так что, вероятно, это проблема какого-то другого пакета, который /usr/share/man/ru.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165513</commentid>
    <comment_count>8</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-08-31 16:09:47 +0300</bug_when>
    <thetext>(In reply to comment #7)

&gt;  который /usr/share/man/ru.

слово &quot;добавляет&quot; не дописал.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165520</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2017-08-31 17:35:26 +0300</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; Исходя из Comment #3 перевешиваю на man-db, но проблему локализовать может
&gt; только тот, у кого это проявляется. Я вот у себя воспроизвести не могу, так
&gt; что, вероятно, это проблема какого-то другого пакета, который
&gt; /usr/share/man/ru.
man-pages-ru такое имеет. Но проблему это не решает. MANPATH работает криво.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165521</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2017-09-01 00:18:55 +0300</bug_when>
    <thetext>manpath(1):
Если установлена переменная окружения $MANPATH, то manpath просто покажет её значение и выдаст предупреждение.

Если установлена переменная окружения $MANPATH, то её значение используется в качестве пути поиска справочных страниц. Если её нет, то man покажет страницу согласно локали т.е. дополнительно указывать /usr/share/man/ru нигде не нужно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165523</commentid>
    <comment_count>11</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2017-09-01 05:54:32 +0300</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; manpath(1):
&gt; Если установлена переменная окружения $MANPATH, то manpath просто покажет её
&gt; значение и выдаст предупреждение.
&gt; 
&gt; Если установлена переменная окружения $MANPATH, то её значение используется в
&gt; качестве пути поиска справочных страниц. Если её нет, то man покажет страницу
&gt; согласно локали т.е. дополнительно указывать /usr/share/man/ru нигде не нужно.
Показывает всегда только русскую. Даже в английской и POSIX-локали.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165526</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2017-09-01 11:59:02 +0300</bug_when>
    <thetext>(В ответ на комментарий №11)
&gt; (В ответ на комментарий №10)
&gt; &gt; manpath(1):
&gt; &gt; Если установлена переменная окружения $MANPATH, то manpath просто покажет её
&gt; &gt; значение и выдаст предупреждение.
&gt; &gt; 
&gt; &gt; Если установлена переменная окружения $MANPATH, то её значение используется в
&gt; &gt; качестве пути поиска справочных страниц. Если её нет, то man покажет страницу
&gt; &gt; согласно локали т.е. дополнительно указывать /usr/share/man/ru нигде не нужно.
&gt; Показывает всегда только русскую. Даже в английской и POSIX-локали.

$ printf &apos;{%s}\n&apos; &quot;$MANPATH&quot;
{}

$ manpath
/usr/share/man:/usr/local/man:/usr/local/share/man

$ LANG=C man -w manpath
/usr/share/man/man1/manpath.1.xz

$ LANG=ru_RU.UTF-8 man -w manpath
/usr/share/man/ru/man1/manpath.1.xz

$ LANG=de_DE.UTF-8 man -w manpath
/usr/share/man/de/man1/manpath.1.xz

У меня всё работает согласно документации. Файл /etc/man_db.conf не модифицирован.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165527</commentid>
    <comment_count>13</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-09-01 12:22:44 +0300</bug_when>
    <thetext>(In reply to comment #7)

&gt; так что, вероятно, это проблема какого-то другого пакета, который
&gt; /usr/share/man/ru добавляет.

Кстати, косвенно это подтверждается тем, что поведение manpath и из старого man, и из нового man-db одинаково. Если только man и man-db какой-то общий код не используют. Но, вроде бы, оба пакета старые и, кажется, развивались сами по себе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165531</commentid>
    <comment_count>14</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2017-09-01 14:56:04 +0300</bug_when>
    <thetext>(В ответ на комментарий №12)
&gt; (В ответ на комментарий №11)
&gt; &gt; (В ответ на комментарий №10)
&gt; &gt; &gt; manpath(1):
&gt; &gt; &gt; Если установлена переменная окружения $MANPATH, то manpath просто покажет её
&gt; &gt; &gt; значение и выдаст предупреждение.
&gt; &gt; &gt; 
&gt; &gt; &gt; Если установлена переменная окружения $MANPATH, то её значение используется в
&gt; &gt; &gt; качестве пути поиска справочных страниц. Если её нет, то man покажет страницу
&gt; &gt; &gt; согласно локали т.е. дополнительно указывать /usr/share/man/ru нигде не нужно.
&gt; &gt; Показывает всегда только русскую. Даже в английской и POSIX-локали.
&gt; 
&gt; $ printf &apos;{%s}\n&apos; &quot;$MANPATH&quot;
&gt; {}
&gt; 
&gt; $ manpath
&gt; /usr/share/man:/usr/local/man:/usr/local/share/man
&gt; 
&gt; $ LANG=C man -w manpath
&gt; /usr/share/man/man1/manpath.1.xz
&gt; 
&gt; $ LANG=ru_RU.UTF-8 man -w manpath
&gt; /usr/share/man/ru/man1/manpath.1.xz
&gt; 
&gt; $ LANG=de_DE.UTF-8 man -w manpath
&gt; /usr/share/man/de/man1/manpath.1.xz
&gt; 
&gt; У меня всё работает согласно документации. Файл /etc/man_db.conf не
&gt; модифицирован.
Вот. А у меня:

cas@cas git $ printf &apos;{%s}\n&apos; &quot;$MANPATH&quot;
{/usr/local/share/man:/usr/share/man/ru:/usr/share/man:/usr/local/man}

и /etc/profile.d/mpi-selector-manpath.sh тоже самодеятельность проявляет. Осталось найти того, кто MANPATH переиначивает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165534</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2017-09-01 17:04:55 +0300</bug_when>
    <thetext>(В ответ на комментарий №14)
&gt; Вот. А у меня:
&gt; 
&gt; cas@cas git $ printf &apos;{%s}\n&apos; &quot;$MANPATH&quot;
&gt; {/usr/local/share/man:/usr/share/man/ru:/usr/share/man:/usr/local/man}
&gt; 
&gt; и /etc/profile.d/mpi-selector-manpath.sh тоже самодеятельность проявляет.
&gt; Осталось найти того, кто MANPATH переиначивает.

А! вот оно что! У меня всё работает как раз из-за того что:

$ rpm -V mpi-selector
S.5....T.    /etc/profile.d/mpi-selector-manpath.sh

$ egrep -c -v -e &apos;^#&apos; -e &apos;^$&apos; /etc/profile.d/mpi-selector-manpath.sh
0

Если выкинуть этот скрипт, то всё должно начать работать. По крайней мере мне этого хватило.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165565</commentid>
    <comment_count>16</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2017-09-04 07:31:46 +0300</bug_when>
    <thetext>(В ответ на комментарий №15)
&gt; Если выкинуть этот скрипт, то всё должно начать работать. По крайней мере мне
&gt; этого хватило.
Да, это и было причиной. Закрываю баг.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>