Summary: | Перенести файл /usr/share/man/ru/.charset в пакет man | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly A. Ostanin <vyt> |
Component: | man | Assignee: | Dmitry V. Levin <ldv> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | ldv, mike, rider, sass, slava, stanv, voins |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 10446 |
Description
Vitaly A. Ostanin
2006-04-04 13:37:07 MSD
Есть ли файл /usr/share/man/ru/.charset и если есть, то что в нём? Аналогичная ситуация в ru_RU.UTF-8. $ file /usr/share/man/ru/.charset /usr/share/man/ru/.charset: ERROR: cannot open `/usr/share/man/ru/.charset' (No such file or directory) $ rpm -qa|grep man man-pages-2.27-alt1 man-1.5m2-alt3 Тогда я не вижу хорошего решения. Такого файла /usr/share/man/ru/.charset нет. А откуда он должен был появиться? man-pages-2.25-alt1 man-1.5m2-alt3 Я думаю, вы понимаете, что roff довольно старая штука и никаких charset'ов не понимает. Другими словами, из самого файла man'а информации о charset'е не добудешь. Наш man пропатчен на тему добывания charset'а из файла .charset, и /usr/share/man/ru/.charset поставляет пакет man-pages-ru. По случайному совпадению charset, в котором написан /usr/share/man/ru/man1/gpg.1.bz2, совпадает с тем, что использован для man-pages-ru, поэтому установка пакета man-pages-ru решает данную конкретную проблему. я так и знал ;( Беда в том, что много man'ов из man-pages-ru устарели. Соответственно читать их удобнее на английском. а можно сделать так, что если charset файла не найдено - то и показывать английский man ? > а можно сделать так, что если charset файла не найдено - то и показывать
> английский man ?
Присоединяюсь.
Наверное, можно сделать так, чтобы в отсутствии файла /usr/share/man/LANG/.charset каталоги /usr/share/man/LANG/manX не сканировались в поисках man-файла. *** Bug 10847 has been marked as a duplicate of this bug. *** Видимо это оптимальное решение. Перевешиваю на пакет man. Займусь, как время будет. *** Bug 12169 has been marked as a duplicate of this bug. *** Сорри за дурацкий вопрос: если все маны в UTF-8 перекодировать, то это проблему не решит ли случаем? (In reply to comment #13) > Сорри за дурацкий вопрос: если все маны в UTF-8 перекодировать, то это проблему > не решит ли случаем? Решит для пользователей с юникодной локалью, сломает для пользователей с koi8-r и не исправит для тех у кого cp1251. Причем переконвертирование всех манов в utf-8 потребует гораздо больше усилий. (In reply to comment #14) > Решит для пользователей с юникодной локалью, сломает для пользователей с koi8- r и не исправит для тех у кого cp1251. recode/iconv -f UTF-8 -t $LC_CTYPE (In reply to comment #15) > (In reply to comment #14) > > > Решит для пользователей с юникодной локалью, сломает для пользователей с koi8- > r и не исправит для тех у кого cp1251. > > recode/iconv -f UTF-8 -t $LC_CTYPE recode/iconv -f KOI8-R -t $LC_CTYPE Только в твоём случае ещё придётся все маны в юникод конвертировать. (In reply to comment #16) > recode/iconv -f KOI8-R -t $LC_CTYPE Все пакеты содержат маны в кодировке KOI8-R? А о чём тогда вообще этот баг? > Только в твоём случае ещё придётся все маны в юникод конвертировать. Ты совсем ничего не понял. Нужна *одна* кодировка, чтобы не нужно было гадать на кофейной гуще. И из этой *одной* кодировки нужно перекодировать в кодировку локали. (In reply to comment #17) > (In reply to comment #16) > > recode/iconv -f KOI8-R -t $LC_CTYPE > > Все пакеты содержат маны в кодировке KOI8-R? А о чём тогда вообще этот баг? БОльшая часть русскоязычных манов находится в пакете man-pages-ru и в нём все страницы в локали koi8-r (насколько мне известно). > > Только в твоём случае ещё придётся все маны в юникод конвертировать. > Ты совсем ничего не понял. Нужна *одна* кодировка, чтобы не нужно было гадать > на кофейной гуще. И из этой *одной* кодировки нужно перекодировать в кодировку > локали. Т.е. сейчас кодировка мана может быть любой, при этом в .charset-файле она должна быть указана, чтобы знать из какой кодировки перекодировать. Ты предлагаешь вообще избавиться от .charset-файлов и всегда использовать UTF-8 как кодировку мана по умолчанию? Я правильно понимаю? Вариант, в принципе, да. (In reply to comment #18) > > Т.е. сейчас кодировка мана может быть любой, при этом в .charset-файле она > должна быть указана, чтобы знать из какой кодировки перекодировать. Ты > предлагаешь вообще избавиться от .charset-файлов и всегда использовать UTF-8 как > кодировку мана по умолчанию? Я правильно понимаю? Вариант, в принципе, да. И чем, в таком случае, это нам поможет? Сейчас koi8-r, будет utf-8. Наобходимость в .charset пропадёт лишь в том случае, если одновременно во всех дистрибутивах и работающих системах будет использоваться локаль utf-8. (In reply to comment #19) > И чем, в таком случае, это нам поможет? См. выше про iconv в локаль пользователя. > Наобходимость в .charset пропадёт лишь в том случае, если одновременно во всех > дистрибутивах и работающих системах будет использоваться локаль utf-8. Неа. Нигде в man'ах нет указания кодировки. В пакетах man-pages-LL есть файл /usr/share/man/LL/.charset, где указана кодировка ВСЕХ man'ов на этом языке и кодировка эта ОДНА. Так понятнее? iconv, кстати, и сейчас используется как это написано несколькими каментами выше. (In reply to comment #21) > Нигде в man'ах нет указания кодировки. В пакетах man-pages-LL есть файл > /usr/share/man/LL/.charset, где указана кодировка ВСЕХ man'ов на этом языке и > кодировка эта ОДНА. Как следствие, либо любой пакет с маном на языке LL должен иметь зависимость на man-pages-LL, либо нужно уметь определять кодировку без .charset. Ни того, ни другого пока не наблюдается. Зависимость на man-pages-LL мне ну никак не нужна, тем более что man-pages-LL есть только ru и uk. Значит надо выносить LL/.charset в пакет man вместе со всеми /usr/share/man/LL. $ rpm -qf /usr/share/man/{de,pl,it} warning: file /usr/share/man/de is not owned by any package warning: file /usr/share/man/pl is not owned by any package warning: file /usr/share/man/it is not owned by any package (In reply to comment #24) > Зависимость на man-pages-LL мне ну никак не нужна, тем более что man-pages-LL > есть только ru и uk. Значит надо выносить LL/.charset в пакет man вместе со > всеми /usr/share/man/LL. > > $ rpm -qf /usr/share/man/{de,pl,it} > warning: file /usr/share/man/de is not owned by any package > warning: file /usr/share/man/pl is not owned by any package > warning: file /usr/share/man/it is not owned by any package +1 Не забудьте расставить конфликты на man-pages-LL версии меньше чем требуемые, и зависимости на требуемую версию пакета man. (In reply to comment #25) > > $ rpm -qf /usr/share/man/{de,pl,it} > > warning: file /usr/share/man/de is not owned by any package > > warning: file /usr/share/man/pl is not owned by any package > > warning: file /usr/share/man/it is not owned by any package Вот тут неясно. Какие конкретно языки должны принадлежать? У тебя только три этих есть? У меня вот больше: [c0der@rock ~]$ ls -1d /usr/share/man/?? /usr/share/man/cs /usr/share/man/de /usr/share/man/es /usr/share/man/fr /usr/share/man/hu /usr/share/man/it /usr/share/man/lt /usr/share/man/pl /usr/share/man/pt /usr/share/man/ru /usr/share/man/sv /usr/share/man/zh Короче, по этому вопросу у меня пока ясности не наступило. > Не забудьте расставить конфликты на man-pages-LL версии меньше чем требуемые, > и зависимости на требуемую версию пакета man. Тут надо с sass@ действовать вместе. Как понял нужно дейстовать так: Я должен в пакете man: - поставить Conflicts: man-pages-ru < 0.98-alt11 - добавить файл /usr/share/man/ru/.charset в пакет sass@ должен в пакете man-pages-ru: - поставить Requires: man >= 1.6e-alt1 - выкинуть файл /usr/share/man/ru/.charset из пакета А потом мы должны почти одновременно влить пакеты на сборку. Я всё правильно понял? Если да, то я бы уже начал реализовывать это. (In reply to comment #26) > > sass@ должен в пакете man-pages-ru: > - поставить Requires: man >= 1.6e-alt1 > - выкинуть файл /usr/share/man/ru/.charset из пакета > > А потом мы должны почти одновременно влить пакеты на сборку. Я всё правильно > понял? Если да, то я бы уже начал реализовывать это. У меня готово. Могу заливать. И ещё man-pages-uk. .charset класть только для тех языков, которые нам "интересны". ru, uk, be... Понадобится что-то новое - добавим, тем более что пакетов man-pages-LL всего два. (In reply to comment #27) [...] > У меня готово. Могу заливать. 2sass@: каталог /usr/share/man/ru какому пакету будет принадлежать? Видимо, логично было бы чтобы пакету man? Пакет man-pages-uk я поправлю сам, так как у mike@ мало времени да и пакет висит на nobody@. Также жду когда мне дадут право на заливку пакета man. При удачном стечении звёзд завтра с моей стороны всё будет готово к отправке в Incoming. Исправления доступны здесь: http://git.altlinux.org/people/php_coder/packages/man.git http://git.altlinux.org/people/php_coder/packages/man-pages-uk.git Если у кого-то есть претензии/предложения/пожелания, то прошу высказаться. (In reply to comment #29) > (In reply to comment #27) > [...] > > У меня готово. Могу заливать. > > 2sass@: каталог /usr/share/man/ru какому пакету будет принадлежать? Видимо, > логично было бы чтобы пакету man? Тогда он также должен содержать: /usr/share/man/cs /usr/share/man/de /usr/share/man/es /usr/share/man/fr /usr/share/man/hu /usr/share/man/it /usr/share/man/lt /usr/share/man/pl /usr/share/man/pt /usr/share/man/ru /usr/share/man/sv /usr/share/man/zh А также для всех прочих языков. Логично? ;) (In reply to comment #31) > Тогда он также должен содержать: [...] > А также для всех прочих языков. Логично? ;) Логично, но у нас нет пакетов man-pages-{cs,de,es,fr,hu,it,lt,pl,pt,sv,zh} Когда такие пакеты появятся, то добавим соответствующие каталоги. И кстати. Все эти каталоги вообще не ясно откуда взялись. У raorn@'а их всего три, у меня вот 12, а у mithraen@'а два... У меня их гораздо больше, а идут они из пакетов, которые носят с собой неанглоязычные маны. (In reply to comment #33) > У меня их гораздо больше, а идут они из пакетов, которые носят с собой > неанглоязычные маны. Предлагаю вопрос принадлежности каталогов вида /usr/share/man/$LANG обсудить в другой баге, а эту уже исправить и забы^Wзакрыть. :) (In reply to comment #34) > (In reply to comment #33) > > У меня их гораздо больше, а идут они из пакетов, которые носят с собой > > неанглоязычные маны. Аналогично. > > Предлагаю вопрос принадлежности каталогов вида /usr/share/man/$LANG обсудить в > другой баге, а эту уже исправить и забы^Wзакрыть. :) > К чему плодить баги? Я придерживаюсь мнения, что подкаталоги в %_mandir следует оставить во владении локализованных манов. Резон: если оставить принадлежность каталогов так, как есть, то появление нового локализованного пакета не потребует дополнительной работы - параллельной пересборки пакета man. (In reply to comment #35) > К чему плодить баги? К тому, чтобы в багах было 40 комментариев, а не 400. И чтобы статус "fixed" было понятно когда ставить, и было понятно как проверять, что баг пофикшен. И к тому, чтобы название бага соответствовало его содержанию. (In reply to comment #35) [...] > К чему плодить баги? Я придерживаюсь мнения, что подкаталоги в %_mandir следует > оставить во владении локализованных манов. > Резон: если оставить принадлежность каталогов так, как есть, то появление нового > локализованного пакета не потребует дополнительной работы - параллельной > пересборки пакета man. Пересборка пакета man потребуется в любом случае, ведь .charset-файл должен будет предоставляться именно пакетом man, а не man-pages-foo. В случае, если каталог /usr/share/man/$LANG будет принадлежать пакету man, то не возникнет ситуации, когда установен только пакет man и каталог /usr/share/man/$LANG никому не принадлежит. Т.е. man может быть установлен в системе без пакета man-pages-foo, а обратное не верно, так как man-pages-foo всегда требует установки пакета man. (In reply to comment #37) > (In reply to comment #35) > [...] > > Пересборка пакета man потребуется в любом случае, ведь .charset-файл должен > будет предоставляться именно пакетом man, а не man-pages-foo. А для какиех языков он может ещё понадобиться? ru, ua, bg, by? Кто ещё пишет на кириллице? В общем, у меня пакет готов, так что я могу заливать. Махните кто-нибудь платочком, когда можно. Кстати! %_cachedir/man/%LANG тогда тоже следует присоединить к man. (In reply to comment #39) > Кстати! %_cachedir/man/%LANG тогда тоже следует присоединить к man. И это - %_cachedir/man/%LANG/whatis - до кучи. (In reply to comment #38) > В общем, у меня пакет готов, так что я могу заливать. Махните кто-нибудь > платочком, когда можно. Что ж. Вы меня убедили -- каталоги /usr/share/man/{ru,uk} не будут принадлежать пакету man, только соответствующие .charset-файлы. Пакет man-1.6e-alt1 отправился в Инкоминг и уже успешно прошел сборку. 2sass@: можете заливать man-pages-ru (In reply to comment #41) > (In reply to comment #38) > > Пакет man-1.6e-alt1 отправился в Инкоминг и уже успешно прошел сборку. > > 2sass@: можете заливать man-pages-ru Ушло. Поясните, кому теперь будут принадлежать /usr/share/man/cs и прочие. (In reply to comment #43) > Поясните, кому теперь будут принадлежать /usr/share/man/cs и прочие. Пока так же как и раньше -- никому. Надо обсудить этот вопрос и найти правильное решение. Можно в devel@, можно отдельный баг открыть. |