Bug 34751
| Summary: | Создаваемые архивы с кириллическими именами файлов неправильно открываются в Windows | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Michael Shigorin <mike> |
| Component: | zip | Assignee: | Andrew Vasilyev <andy> |
| Status: | RESOLVED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P3 | CC: | admsasha, aen, andy, darktemplar, imz, kopilo4ka, ldv, mike, tt |
| Version: | unstable | Keywords: | regression, usability |
| Hardware: | all | ||
| OS: | Linux | ||
| Bug Depends on: | 14125 | ||
| Bug Blocks: | 34231 | ||
В штатной установке проблема ушла сама, но остаётся один воспроизводимый случай. zip 3.0-alt5 (задание https://packages.altlinux.org/tasks/396095/), natspec-патч отключён (в spec %%patch3 закомментирован). Контейнер Sisyphus, zip -r архива с файлом "привет.txt" при LANG=C, C.UTF-8 и ru_RU.UTF-8 — во всех трёх случаях заголовок начинается с 50 4b 03 04 0a 00 00 08 то есть general purpose flags = 0x0800, бит 11 (UTF-8) выставлен; python3 -c "import zipfile" подтверждает: flag_bits=0x0800, bit11=True, name=привет.txt; zipinfo показывает имя как Unicode. Механизм: zip.c:2214-2222 пробует setlocale(LC_CTYPE, "en_US.UTF-8") и при успехе ставит using_utf8=1, а zipfile.c:5402-5404 — сам бит. Случай, где бит не ставится: система без glibc-locales. После rpm -e --nodeps glibc-locales (доступна только встроенная C.UTF-8) тот же архив получает flag_bits=0x0000, bit11=False и битое имя — даже при LANG=C.UTF-8, потому что проверяется именно наличие локали en_US.UTF-8, а не кодировка текущей локали. Отсюда два варианта починки: Requires: glibc-locales либо патч в zip.c — пробовать "C.UTF-8" вторым кандидатом или смотреть nl_langinfo(CODESET). Оставляю открытым на ваше решение. (Ответ для Anton Farygin на комментарий #1) > Отсюда два варианта починки: Requires: glibc-locales либо патч в zip.c — > пробовать "C.UTF-8" вторым кандидатом или смотреть nl_langinfo(CODESET). > Оставляю открытым на ваше решение. Сделал второй вариант, просьба проверить из задания #432513 |

Description
Michael Shigorin 2018-04-02 20:22:21 MSK