Arch Linux

Please read this before reporting a bug:

Do NOT report bugs when a package is just outdated, or it is in Unsupported. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!

FS#56428 - [unzip] add the -DUSE_ICONV_MAPPING flag

Attached to Project: Arch Linux
Opened by Hector Martin (marcan) - Friday, 24 November 2017, 08:40 GMT
Last edited by Doug Newgard (Scimmia) - Friday, 24 November 2017, 14:49 GMT
Task Type Feature Request
Category Packages: Extra
Status Assigned
Assigned To Lukas Fleischer (lfleischer)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 4
Private No



Please add the -DUSE_ICONV_MAPPING build flag. This flag enables the -I and -O options to convert non-UTF8 zip files to/from the native encoding. Without it, there's no way to extract e.g. zip files created on Windows machines with Japanese locale which are SJIS encoded (and typically do not have utf-8 extended filenames), as all the filenames end up irreparably mangled (not even convmv can fix them). Note that the flag uses libc's iconv, so it does not introduce a dependency on libiconv.

Additional info:
* package version(s): unzip-6.0-12

Steps to reproduce:

$ unzip -l 沙音ほむ
Archive: 沙音ほむ
Length Date Time Name
--------- ---------- ----- ----
0 2013-11-24 16:57 �����+��_1.0/
590216 2013-11-24 14:42 �����+��_1.0/�����+��.htsvoice
2742 2013-11-24 16:54 �����+��_1.0/���+���f�����p�K��.txt
--------- -------
592958 3 files

Results in completely corrupted filenames (they aren't even the original SJIS byte sequences and cannot be repaired).

With the above build option you can instead do:

$ ~/bin/unzip -l -O sjis 沙音ほむ
Archive: 沙音ほむ
Length Date Time Name
--------- ---------- ----- ----
0 11-24-2013 16:57 沙音ほむ_1.0/
590216 11-24-2013 14:42 沙音ほむ_1.0/沙音ほむ.htsvoice
2742 11-24-2013 16:54 沙音ほむ_1.0/音響モデル利用規約.txt
--------- -------
592958 3 files

This converts to the native UTF-8 encoding and extracts correctly.
This task depends upon