Bug 26304 - Нестандартная кодировка в именах файлов в некоторых пакетах
Summary: Нестандартная кодировка в именах файлов в некоторых пакетах
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: runawfe-common (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: kana
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-14 23:24 MSK by aureliano
Modified: 2011-10-11 01:49 MSK (History)
1 user (show)

See Also:


Attachments
Исходник си-программки для проверки filelists.xml на не-ASCII-символы и результат этой проверки. (386.60 KB, application/x-compressed-tar)
2011-09-14 23:24 MSK, aureliano
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description aureliano 2011-09-14 23:24:57 MSK
Created attachment 5107 [details]
Исходник си-программки для проверки filelists.xml на не-ASCII-символы и результат этой проверки.

Скачал репозиторий сизиф целиком, чтобы использовать его локально. Запустил сначала на компе, на котором он у меня лежит, команду "createrepo /путь_к_репозиторию", которая создаёт каталог "repodata/" и файлы в нём, в т. ч. файл "repodata/filelists.xml.gz". Далее прописал репозиторий на клиенте и запустил там же (на клиенте) команду "yum makecache", которая через некоторое время выдала следующее:

+---
# yum makecache
Making cache files for all metadata files.
This may take a while depending on the speed of this computer
Setting up Repos
sisyphus                  100% |=========================|  951 B    00:00
primary.xml.gz            100% |=========================|  40 MB    00:04
MD Read   : ################################################## 81715/81715
filelists.xml.gz          100% |=========================|  47 MB    00:04
MD Read   : ################################################   79972/81715//var/cache/yum/sisyphus/filelists.xml.gz:79975: parser error : internal error
unawfe/ru/WF-system_User_guide_ru.odt</file><file>/usr/share/doc/runawfe/ru/doc/
                                                                               ^


Exiting on user cancel
+---

После чего повисла, пока я её не прервал.
Посмотрел строку 79975 в распакованной версии этого файла, вот как она выглядит, для удобочитаемости разбитая на подстроки:

+---
<package pkgid="2835072492cbc7c4a411cc468ca912a56a51d0b1" name="runawfe-doc" arch="noarch">
 <version epoch="0" ver="3.4.0RC" rel="alt1.svn3204"/>
 <file>/etc/xdg/menus/applications-merged/runawfe-documentation.menu</file>
 <file>/usr/share/applications/runawfe-documentation.desktop</file>
 <file>/usr/share/doc/runawfe/ru/Alfwf.core.DevelopersGuide_ru.doc</file>
 <file>/usr/share/doc/runawfe/ru/AltLinux_Readme.odt</file>
 <file>/usr/share/doc/runawfe/ru/General-Description_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/MS_InfoPath_2007_Forms_support.odt</file>
 <file>/usr/share/doc/runawfe/ru/Process-editor_Developer_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/Process-editor_User_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/Process-editor_configuration_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/TaskNotifier_Administrator_guide_additional_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/TaskNotifier_Administrator_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/TaskNotifier_Developer_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/TaskNotifier_Instruction_for_Kerberos_Using_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/TaskNotifier_User_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/Textbook_UGATU_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-services_bot_and_API_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-system_Administrator_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-system_Administrator_scripts_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-system_BotStation_description_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-system_Bp_structure_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-system_Demo_description_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-system_Developer_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-system_Installation_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-system_Relations_description_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/WF-system_User_guide_ru.odt</file>
 <file>/usr/share/doc/runawfe/ru/doc/4&lt;8=8AB@0B&gt;@A:85_A:@8?BK.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/=0;&gt;3_4&gt;:070B5;LAB20_B5&gt;@5&lt;K_?&gt;;=&gt;BK.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/@E8B5:BC@0_A8AB5&lt;K.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/@0D8G5A:89_@540:B&gt;@_&gt;;L7&gt;20B5;L.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/@0D8G5A:89_@540:B&gt;@_ 07@01&gt;BG8:.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/;85=B-&gt;?&gt;25I0B5;L_4&lt;8=8AB@0B&gt;@.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/;85=B-&gt;?&gt;25I0B5;L_ 07@01&gt;BG8:.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/;85=B_&gt;?&gt;25I0B5;L_&gt;;L7&gt;20B5;L.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/01&gt;@0B&gt;@=K9_?@0:B8:C&lt;.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/?8A0=85_20@80=B&gt;2_8A?&gt;;L7&gt;20=8O.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/ C:&gt;2&gt;4AB2&gt;_04&lt;8=8AB@0B&gt;@0.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/ C:&gt;2&gt;4AB2&gt;_?&gt;;L7&gt;20B5;O.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/ C:&gt;2&gt;4AB2&gt;_?&gt;_45&lt;&gt;-?@&gt;F5AA0&lt;.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/ C:&gt;2&gt;4AB2&gt;_@07@01&gt;BG8:0.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/!@02=5=85_3@0D8G5A:8E_=&gt;B0F89.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/!B@C:BC@0_par_D09;0.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/"5@&lt;8=K.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/#AB0=&gt;2:0_8_:&gt;=D83C@0F8O_4&lt;8=.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/#AB0=&gt;2:0_A_AltLinux.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/MS_InfoPath_D&gt;@&lt;K.doc</file>
 <file>/usr/share/doc/runawfe/ru/doc/RunaWFE_1I55_&gt;?8A0=85.doc</file>
 <file>/usr/share/doc/runawfe/ru/odt/4&lt;8=8AB@0B&gt;@A:85_A:@8?BK.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/=0;&gt;3_4&gt;:070B5;LAB20_B5&gt;@5&lt;K_?&gt;;=&gt;BK.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/@E8B5:BC@0_A8AB5&lt;K.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/@0D8G5A:89_@540:B&gt;@_&gt;;L7&gt;20B5;L.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/@0D8G5A:89_@540:B&gt;@_ 07@01&gt;BG8:.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/;85=B-&gt;?&gt;25I0B5;L_4&lt;8=8AB@0B&gt;@.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/;85=B-&gt;?&gt;25I0B5;L_ 07@01&gt;BG8:.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/;85=B_&gt;?&gt;25I0B5;L_&gt;;L7&gt;20B5;L.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/01&gt;@0B&gt;@=K9_?@0:B8:C&lt;.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/?8A0=85_20@80=B&gt;2_8A?&gt;;L7&gt;20=8O.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/ C:&gt;2&gt;4AB2&gt;_04&lt;8=8AB@0B&gt;@0.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/ C:&gt;2&gt;4AB2&gt;_?&gt;;L7&gt;20B5;O.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/ C:&gt;2&gt;4AB2&gt;_?&gt;_45&lt;&gt;-?@&gt;F5AA0&lt;.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/ C:&gt;2&gt;4AB2&gt;_@07@01&gt;BG8:0.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/!@02=5=85_3@0D8G5A:8E_=&gt;B0F89.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/!B@C:BC@0_par_D09;0.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/"5@&lt;8=K.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/#AB0=&gt;2:0_8_:&gt;=D83C@0F8O_4&lt;8=.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/#AB0=&gt;2:0_A_AltLinux.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/MS_InfoPath_D&gt;@&lt;K.odt</file>
 <file>/usr/share/doc/runawfe/ru/odt/RunaWFE_1I55_&gt;?8A0=85.odt</file>
 <file>/usr/share/doc/runawfe/ru/pdf/4&lt;8=8AB@0B&gt;@A:85_A:@8?BK.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/=0;&gt;3_4&gt;:070B5;LAB20_B5&gt;@5&lt;K_?&gt;;=&gt;BK.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/@E8B5:BC@0_A8AB5&lt;K.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/@0D8G5A:89_@540:B&gt;@_&gt;;L7&gt;20B5;L.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/@0D8G5A:89_@540:B&gt;@_ 07@01&gt;BG8:.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/;85=B-&gt;?&gt;25I0B5;L_4&lt;8=8AB@0B&gt;@.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/;85=B-&gt;?&gt;25I0B5;L_ 07@01&gt;BG8:.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/;85=B_&gt;?&gt;25I0B5;L_&gt;;L7&gt;20B5;L.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/01&gt;@0B&gt;@=K9_?@0:B8:C&lt;.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/?8A0=85_20@80=B&gt;2_8A?&gt;;L7&gt;20=8O.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/ C:&gt;2&gt;4AB2&gt;_04&lt;8=8AB@0B&gt;@0.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/ C:&gt;2&gt;4AB2&gt;_?&gt;;L7&gt;20B5;O.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/ C:&gt;2&gt;4AB2&gt;_?&gt;_45&lt;&gt;-?@&gt;F5AA0&lt;.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/ C:&gt;2&gt;4AB2&gt;_@07@01&gt;BG8:0.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/!@02=5=85_3@0D8G5A:8E_=&gt;B0F89.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/!B@C:BC@0_par_D09;0.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/"5@&lt;8=K.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/#AB0=&gt;2:0_8_:&gt;=D83C@0F8O_4&lt;8=.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/#AB0=&gt;2:0_A_AltLinux.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/MS_InfoPath_D&gt;@&lt;K.pdf</file>
 <file>/usr/share/doc/runawfe/ru/pdf/RunaWFE_1I55_&gt;?8A0=85.pdf</file>
 <file>/usr/share/doc/runawfe/ru/web-services_guide.doc</file>
 <file>/usr/share/pixmaps/RunaWFE-Documentation.gif</file>
 <file>/usr/share/pixmaps/RunaWFE-Documentation_48.gif</file>
 <file type="dir">/usr/share/doc/runawfe</file>
 <file type="dir">/usr/share/doc/runawfe/ru</file>
 <file type="dir">/usr/share/doc/runawfe/ru/doc</file>
 <file type="dir">/usr/share/doc/runawfe/ru/odt</file>
 <file type="dir">/usr/share/doc/runawfe/ru/pdf</file>
</package>
+---

Можно видеть, что начиная с 1-ой подстроки "<file>/usr/share/doc/runawfe/ru/doc/" в именах файлов какая-то абракадабра. Проверил, что там в именах файлов внутри пакета (вдруг это у меня yum или createrepo чудит) -- та же самая абракадабра. Т. е. пакет runawfe-doc версии 3.4.0RC кривой (локаль у меня utf-8). После удаления пакета и перезапуска createrepo "yum makecache" прошёл на ура. Однако я всё же решил проверить, что там с именами файлов в других пакетах, для чего написал коротенькую программку на Си, исходник которой прилагается (если необходима лицензия, пусть будет GPL любой версии на ваш выбор) и обработал ею предварительно распакованный файл filelists.xml, к результату применил фильтр "sed 's/<package /\n<package /g;s/<version /\n <version /g;s/<file>/\n <file>/g;s/<file /\n <file /g;s/<\/package>/\n<\/package>/g;'" исключительно для удобочитаемости и получил довольно длинный файл filelists.errs.readable.xml, в который попали пакеты, содержащие файлы с именами не ASCII (или не только ASCII, иногда в имени только один символ из другого набора). Файл filelists.errs.readable.xml тоже прикрепляю.

Исходник компилируется командой "gcc -Wall -O3 -o ckfilelist ckfilelist.c",
файл filelists.errs.readable.xml получается командой
"./ckfilelist < filelists.xml | sed 's/<package /\n<package /g;s/<version /\n <version /g;s/<file>/\n <file>/g;s/<file /\n <file /g;s/<\/package>/\n<\/package>/g;' | tee filelists.errs.readable.xml".

Удачи!

PS: У вас тут похоже можно только один файл прикрепить, так что прикрепляю архив с двумя файлами.

PPS: Я не понимаю, что за компонент, который я должен указать. В хэлпе у вас рекомендуют "General", но с ним баг не сохраняется, поэтому поставлю первый попавшийся.
Comment 1 kana 2011-10-11 01:49:08 MSK
Исправлено с 4.0.RC4