Bug 21137

Summary: Неверно показываются файлы с кириллическими именами в Zip-архиве
Product: Sisyphus Reporter: Andrey Cherepanov <cas>
Component: unzipAssignee: arei <arei>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P2 CC: aen, arei, mike, zerg
Version: unstableKeywords: distro-blocker, regression
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 19564    
Attachments:
Description Flags
файл, созданный в венде none

Description Andrey Cherepanov 2009-08-20 13:45:03 MSD
Распаковываются нормально, но показываются как ????

Воспроизведение:
[cas@c249 tmp]$ touch файл
[cas@c249 tmp]$ zip test.zip файл
  adding: файл (stored 0%)
[cas@c249 tmp]$ unzip -l test.zip
Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2009-08-20 13:42   ????
---------                     -------
        0                     1 file
[cas@c249 tmp]$ unzip test.zip
Archive:  test.zip
replace ????? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
 extracting: ????
[cas@c249 tmp]$ rm -f файл
[cas@c249 tmp]$ unzip test.zip
Archive:  test.zip
 extracting: ????
[cas@c249 tmp]$ ls файл
файл
Comment 1 Sergey V Turchin 2009-09-10 16:13:59 MSD
Причем, независимо имена файлов в cp1251 или в utf8
Comment 2 Victor Forsyuk 2009-09-10 16:36:37 MSD
[victor@alt ~]$ rpm -q unzip
unzip-6.0-alt1
[victor@alt ~]$ touch файл
[victor@alt ~]$ zip test.zip файл
  adding: файл (stored 0%)
[victor@alt ~]$ unzip -l test.zip
Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  09-10-2009 15:35   файл
---------                     -------
        0                     1 file
[victor@alt ~]$ unzip test.zip
Archive:  test.zip
replace файл? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
 extracting: файл
[victor@alt ~]$ rm -f файл
[victor@alt ~]$ unzip test.zip
Archive:  test.zip
 extracting: файл
[victor@alt ~]$ ls файл
файл
[victor@alt ~]$
Comment 3 Sergey V Turchin 2009-09-10 16:43:45 MSD
Created attachment 3867 [details]
файл, созданный в венде

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

$ rpm -q unzip
unzip-6.0-alt1

$ unzip -l arch_test_win32.zip
Archive:  /home/zerg/Documents/arch_test_win32.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2008-03-20 13:38   ????? ?????/
        0  2008-03-20 13:38   ????? ?????/????? ?????1/
        0  2008-03-20 13:39   ????? ?????/????? ?????2/
       15  2008-03-20 13:39   ????? ?????/????? ?????2/????????? ????????.txt
---------                     -------
       15                     4 files
Comment 4 Victor Forsyuk 2009-09-10 19:25:17 MSD
(В ответ на комментарий №3)
> Created an attachment (id=3867) [details]
> файл, созданный в венде
> 
> $ locale
> LANG=ru_RU.UTF-8

Ага. Как раз собирался к предыдущему ответу дописывать, что кодировка консоли у меня uk_UA.KOI8-U. Да, если выставить кодировку ru_RU.UTF-8, то c приложенным архивом воспроизводится.

Очевидно, при притирании natspec патча к unzip 6.0 я результат где-то недотестировал, поскольку на приложенном архиве в UTF-8 консоли регрессия по сравнению с 5.52-alt1 есть.

Постараюсь на выходных посмотреть что там.
Comment 5 AEN 2009-09-21 02:48:09 MSD
(В ответ на комментарий №4)
> 
> 
> Постараюсь на выходных посмотреть что там.

Виктор, не выяснили что там?
distro-blocker.
Comment 6 Victor Forsyuk 2009-09-21 16:19:18 MSD
(В ответ на комментарий №5)
> (В ответ на комментарий №4)
> > 
> > 
> > Постараюсь на выходных посмотреть что там.
> 
> Виктор, не выяснили что там?
> distro-blocker.

Увы, только сегодня выкроил время посидеть над исходниками. Два уикенда наматывал километры и отсыпался, а на работе было весьма жарко. Хорошая новость - проблема исправлена, сегодня исправление уйдет в Сизиф. :)
Comment 7 AEN 2009-09-23 15:19:41 MSD
Исправленро в  6.0-alt2
Comment 8 Andrey Cherepanov 2009-09-23 15:25:56 MSD
Подтверждено.
Comment 9 Michael Shigorin 2017-02-01 22:29:11 MSK
Наткнувшимся на то, что патч был убран при обновлении unzip и баг опять вылез: https://forum.altlinux.org/index.php?topic=37777.0

$ unzip --help|grep -i charset
  -O CHARSET  specify a character encoding for DOS, Windows and OS/2 archives
  -I CHARSET  specify a character encoding for UNIX and other archives

$ unzip -I utf8 anastasiya.zip

("i" большое, а не "L" малое)

Не переоткрываю только потому, что это уже другой unzip...