
Портативная утилита для извлечения ZIP-файлов с широкой поддержкой ОС, дешифрованием и исправлениями безопасности для обхода путей (path traversal) и уязвимостей символьных ссылок.
Это файл README для публичного выпуска от 22 мая 2004 года портативной программы извлечения zip-файлов UnZip из группы Info-ZIP (и связанных утилит).
unzip551.zip портативный UnZip, версия 5.51, исходный код unzip551.tar.Z то же, что выше, но в формате сжатого tar (compress) unzip551.tar.gz то же, что выше, но в формате gzip'd tar
ПРЕЖДЕ ЧЕМ СПРАШИВАТЬ: UnZip, его сопутствующая утилита Zip, а также связанные утилиты и вспомогательные файлы можно найти во многих местах; подробнее читайте файл "WHERE". Чтобы связаться с авторами с предложениями, отчётами об ошибках или исправлениями, продолжите чтение этого файла (README) и, если это часть дистрибутива исходного кода, файла "ZipPorts" в каталоге proginfo. Также в дистрибутивах исходного кода: прочитайте "BUGS" для списка известных ошибок, не-ошибок и возможных будущих ошибок; INSTALL для инструкций по сборке UnZip; и "Contents" для прокомментированного списка всех распространяемых файлов.
UnZip — это утилита для извлечения архивов, сжатых в формате .zip (также называемых "zip-файлами"). Хотя он высоко совместим как с утилитами PKWARE PKZIP и PKUNZIP для MS-DOS, так и с собственной программой Zip от Info-ZIP, нашими основными целями были портативность и функциональность, отличная от MS-DOS.
Эта версия UnZip портирована на огромное множество аппаратных платформ — от микрокомпьютеров до суперкомпьютеров — и операционных систем: Unix (множество разновидностей), VMS, OS/2 (включая версию DLL), Windows NT и Windows 95 (включая версию DLL), Windows CE (графическая версия), Windows 3.x (включая версию DLL), MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Macintosh (графическая версия), SMS/QDOS, MVS, VM/CMS, FlexOS, Tandem NSK, Human68k (большей частью), AOS/VS (частично) и TOPS-20 (частично). Функции UnZip, отсутствующие в PKUNZIP, включают исходный код; извлечение по умолчанию с сохранением структуры каталогов (с возможностью отключения этой функции, а не наоборот); системно-зависимые расширенные атрибуты файлов; и, конечно, возможность работы в большинстве ваших любимых операционных систем. К тому же это бесплатно. :-)
Для дистрибутивов исходного кода см. основной файл Contents для списка включённого, и прочитайте INSTALL для инструкций по компиляции (включая специфические для ОС замечания). Файлы Contents отдельных операционных систем (например, vms/Contents) могут содержать важную информацию по компиляции в дополнение к объяснению того, какие файлы для чего нужны, поэтому обязательно прочитайте их. Некоторые порты имеют собственные специальные файлы README, поэтому обязательно ищите и их.
См. unzip.1 или unzip.txt для использования (или соответствующие документы UnZipSFX, ZipInfo, fUnZip и ZipGrep). Для VMS: unzip_def.rnh или unzip_cli.help могут быть скомпилированы в unzip.hlp и установлены как обычный справочный раздел VMS; см. vms/descrip.mms.
Выпуск 5.51 с исправлениями добавляет порт командной строки для CE, предназначенный для пакетной обработки. С интеграцией этого порта порт pUnZip был пересмотрен и "оживлён". Наиболее важные изменения для широкой публики — это ряд исправлений ошибок, в основном связанных с вопросами безопасности:
Основное дополнение в выпуске 5.5 — поддержка нового алгоритма Deflate64(tm) от PKWARE, который впервые появился в PKZIP 4.0 (опубликован в ноябре 2000 года). Как обычно, также были интегрированы другие исправления ошибок и чистка кода:
Выпуск 5.42 с исправлениями устраняет больше ошибок и уточняет условия распространения:
Выпуск 5.41 с исправлениями добавляет ещё один новый порт и исправляет некоторые ошибки.
Выпуск 5.4 снова добавляет новые порты. Другие важные элементы — изменения формата листинга, новые дополнительные функции и несколько исправлений ошибок (особенно касающихся обработки временных меток...):
Выпуск 5.32 добавляет два новых порта и исправление по крайней мере одной относительно серьёзной ошибки:
Выпуск 5.31 включал только небольшие исправления ошибок и опечаток, за исключением некоторых незначительных улучшений производительности.
Выпуск 5.3 добавил ещё больше портов и возможностей кроссплатформенной переносимости:
Чего (всё ещё!) не добавлено: поддержка многотомных архивов (также известная как "разбивка на дискеты") и унифицированный и более мощный интерфейс DLL. Это два высших приоритета для выпусков 6.x. Работа над первым, почти наверняка, уже началась к тому моменту, как вы это читаете. На этот раз мы серьёзно! Ещё бы. :-)
Хотя DLL по-прежнему в основном представляют собой беспорядок, DLL для Windows (16- и 32-битные) теперь имеют некоторую документацию и небольшой пример приложения. Обратите внимание, что теперь они должны быть совместимы с C/C++, Visual BASIC и Delphi. Более странные языки (FoxBase и т.п.) вероятно, полностью исключены.
Наконец, обратите внимание, что поддержка unshrinking теперь отключена по умолчанию, хотя исходный код всё ещё доступен (как и в случае с unreducing). Это было сделано по юридическим причинам, а не по техническим, и нет, нам это нравится не больше, чем вам. :-( Подробнее см. в файле COPYING.
Веб-сайт Info-ZIP находится по адресу http://www.info-zip.org/pub/infozip/ и содержит самую актуальную информацию о предстоящих выпусках, ссылки на двоичные файлы и часто задаваемые вопросы. (См. http://www.info-zip.org/pub/infozip/FAQ.html для последнего.) Файлы также можно получить по адресу ftp://ftp.info-zip.org/pub/infozip/ . Спасибо LEO (Мюнхен, Германия) за хостинг нашего основного сайта.
Если у вас есть вопросы относительно распространения программного обеспечения Info-ZIP, будь то как есть, в качестве упаковки для коммерческого продукта или как неотъемлемой части коммерческого продукта, пожалуйста, прочитайте раздел Часто задаваемых вопросов (FAQ) прилагаемого файла COPYING.
Поскольку компиляторы C редки на некоторых платформах, а авторы имеют прямой доступ только к подмножеству поддерживаемых систем, другие могут пожелать предоставить готовые к запуску исполняемые файлы для новых систем. В целом с этим нет проблем; мы требуем только, чтобы такие дистрибутивы включали этот файл README, файл WHERE, файл COPYING (содержит информацию об авторских правах/распространении) и соответствующие файлы документации (unzip.txt и/или unzip.1 для UnZip и т.д.). Если локальная система предоставляет способ создания самораспаковывающихся архивов, в которых можно хранить вместе как исполняемые, так и текстовые файлы, это лучше всего (в частности, используйте UnZipSFX, если это вообще возможно, даже если он на несколько килобайт больше альтернатив); в противном случае мы предлагаем отдельный исполняемый файл UnZip и отдельный zip-файл, содержащий остальные текстовые и двоичные файлы. Если на целевой системе широко используется другой метод архивации (например, Zoo или LHa), он также может быть использован.
Все отчёты об ошибках и исправления (только контекстные diff'ы, пожалуйста!) следует отправлять на [email protected], который является адресом электронной почты авторов Info-ZIP. (Обратите внимание, что на некоторых редких системах часть Zip-Bugs должна быть написана заглавными буквами, как показано; на большинстве систем, однако, работает и строчное написание "zip-bugs".) НЕ ПРИСЫЛАЙТЕ НАМ БОЛЬШИЕ БИНАРНЫЕ ФАЙЛЫ — НИКОГДА. Если вам нужно отправить нам проблемный архив, который оказался большим (> 20 КБ), сначала свяжитесь с нами для получения инструкций.
"Глупые вопросы", на которые нет адекватного ответа в документации, также следует направлять на Zip-Bugs, а не в глобальный форум, такой как Usenet. (Однако, пожалуйста, убедитесь, что на ваш вопрос НЕТ ответа в документации — было приложено много усилий, чтобы сделать её ясной и полной.)
Предложения по новым функциям можно обсудить на [email protected], списке рассылки для бета-тестеров Info-ZIP и заинтересованных сторон; однако сначала нужно подписаться (см. ниже). Мы не обещаем действовать по всем предложениям или даже по всем исправлениям, но если это что-то явно полезное, отправка необходимых исправлений напрямую на Zip-Bugs (в соответствии с инструкциями в файле ZipPorts) скорее всего приведёт к более быстрому ответу, чем просьба сделать это за нас — у авторов всегда катастрофически не хватает времени. (Пожалуйста, НЕ отправляйте исправления или закодированные zip-файлы в список Info-ZIP. ПОЖАЛУЙСТА, прочитайте файл ZipPorts, прежде чем отправлять любое большое исправление. Этот момент трудно переоценить...)
Если вы рассматриваете возможность портирования, вам следует не только прочитать файл ZipPorts, но также связаться с Zip-Bugs ДО начала работы, поскольку код постоянно обновляется за кулисами. (Например, порты VxWorks, VMOS и Netware когда-то были заявлены как находящиеся в разработке, хотя мы пока не видели актуальных исправлений.) Мы организуем отправку вам последних исходных кодов. Альтернативой является возможность того, что ваша тяжёлая работа будет спрятана в подкаталог и в основном проигнорирована, или полностью проигнорирована, если кто-то другой уже сделал этот порт (и вы удивитесь, как часто это случалось).
Если вы хотите быть в курсе разработки нашего UnZip (и сопутствующей утилиты Zip), присоединиться к рядам бета-тестеров, добавить свои собственные мысли и вклады, или просто наблюдать, вы можете присоединиться к одному из наших списков рассылки. Есть список только для объявлений (Info-ZIP-announce) и общий список для обсуждения/тестирования (Info-ZIP). Вы должны быть подписчиком, чтобы публиковать сообщения, и вы можете подписаться через ссылки на нашей странице часто задаваемых вопросов:
http://www.info-zip.org/pub/infozip/FAQ.html#lists
(Обратите внимание, что на конец мая 2004 года списки недоступны в связи с переносом на новый сайт; мы надеемся восстановить их в ближайшее время. А пока...) Не стесняйтесь использовать нашу веб-страницу для отчётов об ошибках для сообщений об ошибках и вопросов, на которые нет ответа на странице FAQ выше:
http://www.info-zip.org/zip-bug.html
Также существует закрытый список рассылки для внутренних обсуждений нашей основной команды разработчиков. Этот список теперь держится в секрете, чтобы предотвратить его затопление спам-сообщениями.
-- Грег Рёлофс (иногда известный как Cave Newt), главный разработчик UnZip, вдохновение от Дэвида Киршбаума, который был автором этого текста.
-- Кристиан Шпилер (сокращённо: SPC), текущий координатор сопровождения UnZip, применил самые последние изменения.