Short: Odyssey Web Browser, WebKit-based Author: F. Coeurjoly, J. Piszczek, K. Smiechowicz; 68k: TheMamboMan Uploader: jcred41 gmail com (TheMamboMan) Type: comm/www Version: 2.1 Requires: 68020+ with FPU, RTG, MUI, AmiSSL 5.27+, TCP/IP, 256MB+ RAM Architecture: m68k-amigaos Odyssey Web Browser (OWB) for classic AmigaOS 3.x ================================================= This is Odyssey Web Browser, the WebKit-based browser from MorphOS, AROS and AmigaOS 4, cross-compiled for classic 68k AmigaOS 3.x for the first time. It is based on WebKitGTK 2.24.4 (February 2019). It renders modern sites with real HTML5, CSS and JavaScript, and connects over HTTPS (TLS 1.3) through AmiSSL. EARLY TEST RELEASE ------------------ This is a first release to get it into people's hands. It works, but it is slow and needs a lot of memory. It is built without the full compiler optimisation (-O1), and the speed should improve in later releases. Timings in WinUAE (68020 + 68881 FPU, JIT): Window open after double-click about 9 seconds duckduckgo.com home page about 8 seconds DuckDuckGo search results about 70 seconds en.wikipedia.org article 20-45 seconds aminet.net about 7 seconds On real hardware, even a 68060, expect it to be much slower than this. Please report problems with a description of what you did, the site, and any Guru code. Include whether you use WinUAE or real hardware, your CPU and memory size, and your TCP/IP stack. Requirements ------------ - AmigaOS 3.x with a 68020 or better and an FPU (68881/68882, or the FPU built into the 68040/68060) - Lots of fast RAM: 256 MB or more. Tested with 384 MB. - MUI (tested with MUI 5) - AmiSSL 5.27 or newer, for https - A TCP/IP stack with bsdsocket.library - An RTG graphics card with Picasso96 or CyberGraphX. Running on AGA or ECS screens without RTG has not been tested. Tested only on AmiKit XE in WinUAE 5.3.1: 68020 + 68881 FPU with JIT, UAEgfx RTG, 384 MB. Not yet tested on real hardware, on 68030, 68040 or 68060 CPUs, without RTG, with Roadshow, or on a plain Workbench setup. Reports welcome. Installation ------------ 1. Unpack the archive anywhere, for example to Work:. 2. Double-click the OWB icon. The icon sets the stack to 64,000,000 bytes, which OWB needs. To start OWB from a Shell instead, set the stack first: stack 64000000 OWB Fonts are included in the Fonts drawer. No download is needed. What works ---------- - Pages with HTML5, CSS and JavaScript: DuckDuckGo, Wikipedia, Aminet and others - HTTPS through AmiSSL - Typing in forms, the caret, arrow keys and Backspace - Search suggestions - Tabs, back and forward, history and the URL completion list - Cookies and local storage, kept between sessions - Downloads (left-click a link to a file) - Clean exit with several tabs open Known issues ------------ - Slow. JavaScript-heavy pages can take a minute or more. - Right-clicking does not open a context menu. - file:/// URLs do not open local files. - Running out of memory can crash the whole system instead of showing an error. Keep plenty of free fast RAM. - Memory use creeps up slowly when reloading pages. - No video or audio playback in this build. - YouTube does not work: its pages stop loading partway (also from the search bar's YouTube option). Other search engines work. - The URL box may complete a typed address to one from your history. Press Del before Enter to remove the completion. Source code and building ------------------------ The source code for this port, with build instructions: https://github.com/themamboman/OdysseyWebBrowser-m68k The AmigaOS 3.x threading library it uses: https://github.com/themamboman/aos_multithreading_library Built with the AmigaPorts m68k-amigaos-gcc (GCC 16) and clib2. Making it run on 68k needed many fixes, mostly in the toolchain, the C library and the third-party libraries, not in OWB itself. A few examples: - NaN comparisons, log10, fmod, pow and other maths that clib2 got wrong - SQLite on AmigaDOS: seeking past the end of a file fails, unlike on Unix, which broke cookies and history - WebKit threads must be DOS processes, with their own bsdsocket and AmiSSL bases - JavaScriptCore assumed 4-byte alignment for pointers, but m68k GCC only aligns them to 2 bytes: a crash that only appeared when the code layout shifted Credits ------- - Odyssey Web Browser: Fabien Coeurjoly, Jacek Piszczek and Krzysztof Smiechowicz (deadwood), based on OWB from Sand-Labs/Pleyo - WebKit: Apple, the WebKitGTK team and contributors - Libraries: cairo, pixman, FreeType, fontconfig, HarfBuzz, ICU, libcurl, libxml2, libxslt, SQLite, libpng, libjpeg, zlib, bzip2, expat - AmiSSL: the AmiSSL team - Fonts: Liberation Sans and Mono 2.1.5 by Red Hat, under the SIL Open Font License 1.1 (see Fonts/LICENSE.txt) - clib2 and the m68k-amigaos GCC toolchain: their maintainers - 68k port: TheMamboMan, with help from Claude (Anthropic) License ------- Odyssey Web Browser: Copyright (C) 2014-2024 Krzysztof Smiechowicz Copyright (C) 2020 Jacek Piszczek Copyright (C) 2009-2014 Fabien Coeurjoly Copyright (C) 2009-2010 Pleyo. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The names of the authors may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY ITS AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITS AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. WebKit is licensed under the GNU LGPL 2.1 and BSD-style licenses. The complete source code for this build, including WebKit, is available at the GitHub address above. The bundled libraries keep their own licenses.