And you need AmiSSL installed and (this is important) added to your user-startup:
assign OpenSSL: AmiSSL:
This is for making OpenSSL use AmiSSL's certificates. Otherwise, you can use --no-check-certificates, which we all missed in the 15-year-old port.
Changelog:
2025-06-09 [v0.1]
+ Notes
- Port based on wget 1.25.0.
- Compiled using clib4 version 1.6.
+ Fixed
- Resolved linker errors caused by assertions in fnmatch.c, uchar.h and wget.h
- Fixed uchar.h errors in btoc32.c with size_t and mbstate_t.
- Fixed console blocking and Ctrl+C unresponsiveness caused by termios and ioctl calls.
Plz check this out, and wrote about bugs you find, there are chance they can be fixed.
Edited by kas1e on 2025/6/9 19:06:36 Edited by kas1e on 2025/6/9 20:25:46 Edited by kas1e on 2025/6/9 20:26:47
@K-L Thanks, but really most of the hard work was done by Andrea on clib4. I tried first to build it for newlib—damn, it was a nightmare because of the mess and lots of differences of all kinds: includes, code, whatever else. With clib4, it was more or less easy, except for one bug I fought with for a day and a half, but then it worked in the end. Not sure how well all the options will work, but at least pure downloads from HTTP work, HTTPS with --no-check-certificate works too, and with AmiSSL certificates on top works as well.
@Maijestro wget is a very well-known and widely used tool, dating back to the early days of Unix. It was probably the fastest, simplest, and most flexible way to download data from the internet. It started out many years ago as a basic tool, but over time evolved to support a wide range of features. Anyone who wants to download a file from a direct link typically uses wget, curl, or similar tools. Nowadays, wget can even download entire websites and perform many other advanced tasks. So, it's just an external binary that you use when needed.
As for Odyssey, as samo mentioned, it doesn’t use wget for downloads. All downloads are handled internally via curl-based code — no external binaries are involved.
@ktadd
Quote:
Will this potentially cause problems for other programs that still use OpenSSL?
I’m not sure if any other programs rely on an OpenSSL: assign ? As far as I know, that’s something specific to clib4. Andrea is planning to release a full OpenSSL package (similar to how AmiSSL is provided), so users can have both installed in parallel, each with its own location. In any case, AmiSSL is essentially a heavy modified version of OpenSSL (if i not mistaken), and they share the same certificate, etc.
When we worked on the web with Windows we always used tools like HTTrack to make local backups of entire websites... a tool like wget would be perfect to base a GUI program like this on
I’m not sure if any other programs rely on an OpenSSL: assign ? As far as I know, that’s something specific to clib4. Andrea is planning to release a full OpenSSL package (similar to how AmiSSL is provided), so users can have both installed in parallel, each with its own location. In any case, AmiSSL is essentially a heavy modified version of OpenSSL (if i not mistaken), and they share the same certificate, etc.
I really don't understand this - developers should not need to use OpenSSL directly and should be using AmiSSL instead. It has been an official component of OS4 since day one. Any application that uses AmiSSL gets automatic OpenSSL upgrades without needing to be rebuilt.
AmiSSL is not a heavily modified version of OpenSSL. It "is" OpenSSL optimised for AmigaOS and essentially AmigaOS native, completely independent from any C runtime. It is also fully multi-threaded, amongst other things, allowing multiple processes to share and use the code concurrently, which cannot be said of a vanilla OpenSSL.
@Futaura The reason is that I was under the impression that AmiSSL is behind official OpenSSL updates and only catches up after some time. With OpenSSL, I can simply compile the new version once it's out and be done with it. With AmiSSL, I'm forced to wait for changes to be incorporated into AmiSSL. But looking at your changelog, it seems you're pretty in sync in recent years.
So, maybe you're right : openssl changes don't happen that quickly, and wget doesn't necessarily need OpenSSL bug fixes immediately. So, switching to AmiSSL might be the right way to go.
P.S. Another reason for vanilla OpenSSL route was that I don't need to modify the code at all : it compiles as is. With AmiSSL, I had to make some modifications, though I'm not sure what kind at the moment as never do it, but probably not just simple include changes , but had to open amissl.library, replace some functions on Amissl's interface ones, etc ?
Usually, AmiSSL is updated and released the same day OpenSSL is updated, particularly for patch updates. Complications sometimes come with more major updates, but usually it only takes me a few days to sort out. AmiSSL has been regularly updated since v4 was released some years ago now.
You don't get all the PowerPC and AltiVec optimised code with a standard OpenSSL build, but as I say, AmiSSL is as optimised as possible for AmigaOS.
For something simple like wget, you can probably even rely on using only the supplied autoinit code. You just need to ensure you pass the native socket to SSL_set_fd() and not the clib socket wrapper.
The main thing missing from AmiSSL is the stdio functions that take a FILE * argument, simply because a shared library cannot know what clib an application used, but that isn't a big problem as not many things need those functions and you can usually use the BIO functions instead anyway.