AminetAminet
Search:
85707 packages online
• About
• Recent
• Browse
• Search
• Upload
• Setup
• Services

comm/tcp/curl-8.23.0.lha

Mirror:Random
Showing: generic icon
No screenshot available
Short:curl 8.23.0 + libcurl, HTTPS via AmiSSL
Author:Daniel Stenberg et al. (curl), Matthias Muench (Port)
Uploader:curl amigaworld de (Matthias Muench)
Type:comm/tcp
Version:8.23.0
Architecture:m68k-amigaos >= 3.0.0
Date:2026-10-17
Requires:bsdsocket.library v4 TCP/IP stack, AmiSSL 5.27+ (68020+ builds)
Replaces:comm/tcp/curl-8.23.0.lha
Distribution:Aminet
Download:comm/tcp/curl-8.23.0.lha - View contents
Readme:comm/tcp/curl-8.23.0.readme
Downloads:238

curl 8.23.0 for AmigaOS 3
=========================

curl transfers data with URLs: HTTP(S), FTP(S), and many more protocols,
from the Shell or from scripts. This is curl 8.23.0 (released 14.10.2026)
with its static library libcurl, built with GCC 13.4 for five CPU levels.

  * HTTPS and the other TLS protocols through AmiSSL 5 (68020 and up),
    certificates checked against AmiSSL:Certs
  * no FPU needed in any build
  * works with a 4 KB Shell stack (curl sets up 64 KB itself)
  * AmigaDOS paths everywhere: volumes, assigns, "/" for the parent
    directory, file:///RAM:file URLs
  * Ctrl-C stops a running transfer
  * fast: 10.6 MB/s over HTTP on a Vampire V4SA (wire speed of its
    100 MBit port), HTTPS prefers ChaCha20, about twice as fast as AES
    on a 680x0
  * no ixemul, no usergroup.library

Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs
ipns mqtt mqtts pop3 pop3s rtsp smtp smtps telnet tftp ws wss
(the 68000 build has no TLS, so none of the "s" variants).


Installation
------------

Copy the curl for your CPU to C:

  CPU                              copy
  68000 / 68010                    C/curl.000   (no TLS)
  68020                            C/curl.020
  68030                            C/curl.030
  68040 / 68LC040                  C/curl.040
  68060 / 68LC060                  C/curl.060
  68080 (Vampire)                  C/curl.060   (curl.040 works as well)

for example

  Copy curl/C/curl.060 C:curl

The 68020-68060 builds need AmiSSL 5.27 or newer (amisslmaster.library
v5). With an older AmiSSL 5 they stop at startup with a message from
AmiSSL.

Memory: a running curl needs about 1 MB without TLS. With TLS it needs
about 1.3 MB if AmiSSL is already in memory and up to 4.6 MB if curl has
to load it. A machine with 4 MB of Fast RAM is not enough for HTTPS.


Usage notes
-----------

  curl https://aminet.net/
  curl -O https://example.com/file.lha
  curl -L -o RAM:page.html https://example.com/
  curl --output-dir Work:Download -O https://example.com/file.lha

  * Character set: curl does not convert anything. What you type is sent
    as Latin-1 (-d, -H, -u, -F, file names); umlauts in URLs become %FC
    etc. UTF-8 pages show up garbled in the Shell window.
  * Progress meter: it is 79 characters wide. In a narrower Shell window
    every update goes to a new line - use a wider window, -# or -s.
  * Requesters: a missing volume (-o NOVOL:x) or a full disk opens the
    usual system requester; in a script curl waits until it is answered.
  * Environment: http_proxy, HOME, CURL_HOME, CURL_CA_BUNDLE etc. are
    read from ENV: (SetEnv). .curlrc is looked for in $HOME/$CURL_HOME.
  * File names from -O and -J (URL, Content-Disposition) are cut after
    the last "/", "\" or ":", so a server cannot write to S:, LIBS: or
    another volume.
  * No IPv6, no HTTP/2, no --compressed (no zlib), no IDN.


For programmers
---------------

Libs/libcurl.a.<cpu> are static libraries built with clib2; your program
has to use clib2 as well (-mcrt=clib2), libnix does not work. Headers are
in Include/, the AmiSSL link libraries (one build for all TLS CPUs) in
Libs/.

  m68k-amigaos-gcc -m68020 -msoft-float -mcrt=clib2 -Icurl/Include \
      -o prog prog.c curl/Libs/libcurl.a.020 \
      -Lcurl/Libs -lamisslstubs -lamisslauto -lnet -lm \
      -Wl,--allow-multiple-definition

  * the 68000 build needs no -lamisslstubs/-lamisslauto
  * 68030/040/060: compile with the CPU flag, link with -m68020 (only the
    libm020 multilib is FPU-free)
  * call curl_global_init() once at program start (not thread-safe)
  * use the headers of the AmiSSL 5.27 SDK

Docs/README.txt (German) has all details of the port and the build.


Port changes
------------

curl already supports AmigaOS (bsdsocket.library, AmiSSL backend). Eight
small patches (Build/port/patches) fix what testing found on AmigaOS 3:

  * -O/-J: names like "RAM:x" or "S:x" from the server were absolute
  * cookie jar, HSTS and alt-svc files were never written (AmigaDOS
    Rename() does not replace an existing file)
  * Ctrl-C was ignored during transfers
  * --output-dir RAM: failed, "dir/" wrote to the wrong directory
  * file:///RAM:file asked for a volume named "/RAM"
  * -z <file> sent the year 2106 (clib2 time_t is unsigned)
  * downloads bypass clib2's fwrite(), which handled every byte on its
    own and halved the download speed
  * with AmiSSL, ChaCha20-Poly1305 is offered first (TLS 1.3 and 1.2);
    AES stays available, your own --ciphers/--tls13-ciphers win

Build fixes: realpath() is disabled (clib2 wrote its result to address 0
when called with a NULL buffer, which froze the machine on --cacert);
the AmiSSL autoinit is built with -fno-inline (it passed a broken tag
list, every TLS build crashed); clib2's stdarg.h uses the GCC builtins
(va_start was broken with GCC 13). Build/ has the scripts, the patches
and the container files for the toolchain.


Speed
-----

Vampire V4 Standalone (68080, Roadshow 1.15, 100 MBit), curl.060:

  HTTP, 10 MB to NIL:           10.6 MB/s
  HTTP, 10 MB to RAM:           8.6 MB/s
  HTTPS aminet.net              814 KB/s
  HTTPS Cloudflare              646 KB/s
  HTTPS GitHub                  551 KB/s

HTTPS speed depends on the CPU only (AmiSSL does the crypto). Servers
that insist on their own cipher order still use AES (about 370 KB/s
here). A TLS handshake takes about 0.5 s on the 68080.


Tested
------

  * AmigaOS 3.2 in Amiberry with AmiSSL 5.27: 68000 build on a 68000
    (A500 Kickstart, ECS), 68020/030/040 builds on matching CPUs; a test
    suite with 70 tests per build: AmigaDOS paths and volumes, character
    set (raw bytes checked at the server), date and time zone, console,
    Shell quoting, return codes, Ctrl-C, memory leaks, parallel
    instances, network errors and time-outs, proxy from ENV:,
    dict/gopher/FTP, TLS 1.2/1.3. All passed (Docs/AMIGATEST.txt).
  * Vampire V4 Standalone (68080, AmigaOS 3.2.3, Roadshow 1.15, AmiSSL
    5.27): basic network/TLS test with all builds, full suite with the
    68060 build. All passed.
  * no memory lost after 20 HTTP, 10 HTTPS calls and after Ctrl-C

Not yet tested on a real 68000-68060, with other TCP/IP stacks than
Roadshow (AmiTCP, Miami, Genesis), or on Kickstart 3.0/3.1.
Reports welcome.


History
-------

8.23.0 (15.10.2026)  first release


License
-------

curl: curl license (MIT style), see COPYING, (c) Daniel Stenberg and
contributors. The TLS builds contain the AmiSSL link stubs, Apache
License 2.0, see LICENSE.AmiSSL. Amiga patches and build files (c) 2026
Matthias Muench, under the curl license.


Contents of comm/tcp/curl-8.23.0.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[Amiga]                 418121  782300  53.4% -lh5- 227c Oct 16 17:50 curl/C/curl.000
[Amiga]                 447616  833236  53.7% -lh5- 63b8 Oct 16 17:50 curl/C/curl.020
[Amiga]                 447616  833236  53.7% -lh5- 63b8 Oct 16 17:50 curl/C/curl.030
[Amiga]                 446848  832360  53.7% -lh5- 50f1 Oct 16 17:50 curl/C/curl.040
[Amiga]                 444293  829628  53.6% -lh5- 713e Oct 16 17:50 curl/C/curl.060
[Amiga]                    664    1088  61.0% -lh5- 1c7d Oct 15 21:00 curl/COPYING
[Amiga]                   3368    6968  48.3% -lh5- d697 Oct 16 19:40 curl/curl.readme
[Amiga]                  38386  136671  28.1% -lh5- feb8 Oct 15 08:49 curl/Include/curl/curl.h
[Amiga]                   1346    3052  44.1% -lh5- 570b Oct 15 08:49 curl/Include/curl/curlver.h
[Amiga]                   1536    4000  38.4% -lh5- 343b Oct 15 08:49 curl/Include/curl/easy.h
[Amiga]                   1140    2922  39.0% -lh5- f6ed Oct 15 08:49 curl/Include/curl/header.h
[Amiga]                    997    3078  32.4% -lh5- 3206 Oct 15 08:49 curl/Include/curl/mprintf.h
[Amiga]                   6228   21210  29.4% -lh5- 2266 Oct 15 08:49 curl/Include/curl/multi.h
[Amiga]                   1031    2402  42.9% -lh5- f1bb Oct 15 08:49 curl/Include/curl/options.h
[Amiga]                    588    1362  43.2% -lh5- 53af Oct 15 08:49 curl/Include/curl/stdcheaders.h
[Amiga]                   2486   14943  16.6% -lh5- 3713 Oct 15 08:49 curl/Include/curl/system.h
[Amiga]                   7720   58092  13.3% -lh5- d6a9 Oct 15 08:49 curl/Include/curl/typecheck-gcc.h
[Amiga]                   2047    5870  34.9% -lh5- 8f21 Oct 15 08:49 curl/Include/curl/urlapi.h
[Amiga]                   1190    3197  37.2% -lh5- 0a46 Oct 15 08:49 curl/Include/curl/websockets.h
[Amiga]                    876    1648  53.2% -lh5- c182 Oct 15 21:00 curl/Libs/libamisslauto.a
[Amiga]                 120214 1276024   9.4% -lh5- d9da Oct 15 21:00 curl/Libs/libamisslstubs.a
[Amiga]                 348121  713820  48.8% -lh5- 6ef1 Oct 16 17:50 curl/Libs/libcurl.a.000
[Amiga]                 383502  784576  48.9% -lh5- 09a9 Oct 16 17:50 curl/Libs/libcurl.a.020
[Amiga]                 383502  784576  48.9% -lh5- 09a9 Oct 16 17:50 curl/Libs/libcurl.a.030
[Amiga]                 382989  783812  48.9% -lh5- 2203 Oct 16 17:50 curl/Libs/libcurl.a.040
[Amiga]                 381306  782376  48.7% -lh5- 0232 Oct 16 17:50 curl/Libs/libcurl.a.060
[Amiga]                   3582   10174  35.2% -lh5- 9ea6 Oct 15 21:00 curl/LICENSE.AmiSSL
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        27 files 4277313 9512621  45.0%            Oct 17 00:53
Page generated in 0.03 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>