|

curl von Daniel Stenberg ist das Werkzeug schlechthin, wenn Daten über eine URL kommen oder gehen sollen – und jetzt gibt es den aktuellen Stand auch für den klassischen Amiga. Der Port bringt curl 8.23.0 vom 14. Oktober 2026 samt der Bibliothek libcurl nativ auf AmigaOS 3.x. curl beherrscht HTTP und HTTPS, FTP und FTPS, IMAP, POP3 und SMTP jeweils auch verschlüsselt, Gopher, Dict, TFTP, MQTT, Telnet und WebSockets. Die Verschlüsselung übernimmt AmiSSL 5: TLS 1.2 und 1.3, und die Zertifikate der Gegenstelle werden wie gewohnt gegen AmiSSL:Certs geprüft. Gelinkt ist gegen clib2 – eine ixemul.library oder usergroup.library wird nicht benötigt, und auch der Standard-Stack der Shell von 4 KB reicht, weil sich curl selbst 64 KB einrichtet.
Beiliegen fünf Fassungen, alle ohne FPU-Befehle: curl.000 läuft auf jedem Amiga, allerdings ohne Verschlüsselung, curl.020, curl.030, curl.040 und curl.060 sind für den jeweiligen Prozessor übersetzt und bringen HTTPS über AmiSSL 5.27 mit. Für den 68080 der Vampire passt curl.060, curl.040 läuft dort ebenso. Die passende Datei kommt einfach als C:curl ins System. Etwas Speicher braucht es: ohne Verschlüsselung rund 1 MB, mit HTTPS zwischen 1,3 und 4,6 MB, je nachdem, ob AmiSSL schon geladen ist – ein Amiga mit 4 MB Fast-RAM reicht für HTTPS nicht.

Auf dem Amiga verhält sich curl wie ein Amiga-Programm: AmigaDOS-Pfade mit Laufwerken und Assigns funktionieren überall, ob bei -o, --output-dir, beim Cookie-Speicher oder bei file:///RAM:datei, und „/“ meint wie gewohnt das übergeordnete Verzeichnis. Dateinamen, die ein Server vorgibt, schneidet curl hinter dem letzten Doppelpunkt ab – so kann kein Download nach S: oder LIBS: schreiben. Text geht so hinaus, wie er in der Shell steht, also im Zeichensatz ISO-8859-1, Umlaute in URLs werden zu %FC und Co. Ctrl-C bricht einen laufenden Transfer ab, Proxy und .curlrc kommen über SetEnv aus ENV:. Die Fortschrittsanzeige ist 79 Zeichen breit und braucht deshalb ein entsprechend breites Shell-Fenster.
curl kennt AmigaOS eigentlich schon – trotzdem fand sich beim Testen einiges: Alle verschlüsselnden Fassungen stürzten anfangs schon beim Start ab, weil der GCC die Initialisierung von AmiSSL kaputt optimierte; alle mit GCC 13 übersetzten brachen jeden Transfer stumm ab, weil va_start in clib2 mit GCC 13 nicht funktioniert; und --cacert legte das ganze System lahm, weil clib2 einen Pfad an Adresse 0 schrieb. Dazu kommen sechs kleine Korrekturen am Quelltext: Dateinamen mit Laufwerk, der Cookie-Speicher (AmigaDOS überschreibt beim Umbenennen nicht), Ctrl-C, --output-dir, file:// und -z, das als Datum das Jahr 2106 verschickte. Gefunden hat das alles eine eigene Testsuite mit rund 70 Tests je Fassung, von Pfaden und Zeichensätzen, die am Server Byte für Byte geprüft werden, über Zeitzone, Ctrl-C und Speicherlecks bis zu Netzfehlern und parallelen Downloads.
Getestet wurde unter Emulation (Amiberry mit AmigaOS 3.2, vom echten 68000 mit A500-Kickstart bis zum 68040) und auf echter Hardware mit einer Vampire V4 Standalone unter Roadshow – ohne einen einzigen Fehler und ohne Speicherverlust. Für Programmierer liegen libcurl je Prozessor als statische Bibliothek, die Header und die AmiSSL-Linkbibliotheken bei. Download im Aminet unter comm/tcp/curl-8.23.0 .
|