|

UnZip von Info-ZIP ist seit Jahrzehnten das Werkzeug für ZIP-Archive und auch auf dem Amiga ein alter Bekannter – für den klassischen Amiga stand im Aminet allerdings zuletzt die Fassung 5.52, die 6er-Reihe gab es dort bislang nur für MorphOS. Nun liegt UnZip 6.0 für AmigaOS m68k vor, und zwar im gepflegten Stand: Upstream ist seit 2009 nicht weitergekommen, die Korrekturen der folgenden Jahre sammelt Debian. Der Port enthält dessen komplettes Patchset 6.0-31 – 34 Patches mit allen veröffentlichten Sicherheitskorrekturen von 2014 bis 2022 und den drei Speicherfehlern, die in diesem Jahr gefunden wurden. Das Paket bringt vier Programme mit: UnZip selbst samt ZipInfo-Modus, FUnZip für einzelne Einträge aus der Standardeingabe, den SFX-Rumpf UnZipSFX und MakeSFX zum Bau selbstentpackender Archive. Beiliegen je eine Fassung für den 68000 und den 68020, beide gegen libnix gelinkt – eine ixemul.library wird nicht benötigt.
Info-ZIPs eigener Amiga-Zweig kannte nur Aztec C und SAS/C, die es beide längst nicht mehr gibt. Der Port ergänzt einen GCC-Zweig, ohne die Amiga-Eigenheiten aufzugeben: Datumsstempel setzt er über die dos.library, und zwar auch auf Schubladen – erst wenn alles entpackt ist, damit sie nicht gleich wieder überschrieben werden. Die Schutzbits folgen den Attributen im Archiv, mit -N landen Kommentare aus dem Archiv als Filenote an der Datei, und -D bzw. -DD lassen die Datumsstempel der Schubladen oder aller Dateien unangetastet. Damit moderne Archive mit UTC-Zeitstempeln die richtige Uhrzeit bekommen, sollte die Variable TZ gesetzt sein – ohne sie warnt UnZip und nimmt die Archivzeit als Ortszeit.

Entscheidend ist, was der Port liest. Aktuelle Packer schreiben ZIP64-Einträge selbst in kleine Archive, und ein älteres UnZip lehnt solche Dateien mit „need PK compat. v4.5“ komplett ab – dieser Port kennt sie, dazu alle Kompressionsverfahren bis Deflate64, mit bzip2 gepackte Einträge über eine eingebaute libbz2 und die klassische ZipCrypto-Verschlüsselung. UTF-8-Dateinamen aus Windows, macOS oder aktuellem zip werden in den Amiga-Zeichensatz umgerechnet: Weil AmigaOS mit Latin-1 arbeitet, kommen Umlaute unverändert an, und was Latin-1 nicht kennt – etwa das Euro-Zeichen –, schreibt UnZip als #Uxxxx mit dem Unicode-Wert, statt es zu verstümmeln. Selbstentpackende Archive entstehen mit MakeSFX: Einfaches Aneinanderhängen wie unter Unix scheitert an LoadSeg(), deshalb wandert das Archiv in einen HUNK_DEBUG-Block.
Drei Grenzen hat der Port: Dateien über 2 GB kann ein AmigaOS-3.x-Dateisystem ohnehin nicht speichern. Mit bzip2 gepackte Einträge entpackt UnZip zwar, braucht dafür aber zusätzlich rund 1,2 MB Speicher am Stück; ist so viel nicht frei, überspringt es den Eintrag mit einer Meldung und macht mit dem nächsten weiter. Und selbstentpackende Archive können gar kein bzip2 – wer eines mit MakeSFX baut, packt das ZIP am besten mit dem üblichen Deflate. Ansonsten ist UnZip mit rund 214 KB genügsam, ein Amiga mit 2 MB reicht bequem. Download im Aminet unter util/arc/UnZip-6.0 .
|