Repository navigation
Releases: hardcopi/AmiStudio-Releases
Release list
AmiStudio Host 0.1.9
Google sign-in inside AmiSurf (with AmiDrive 0.1.2)
- AmiDrive 0.1.2 signs in to Google through AmiSurf with this Host: the Google page opens in AmiSurf on the Amiga, so you no longer need the PC's browser. (Hosts up to 0.1.8 still open the PC's browser.)
- Before the sign-in starts, the Host checks with Google that the sign-in can work. If Google refuses it, you get Google's reason straight away instead of a browser on an error page.
- Linux still needs FUSE 3 (the fuse3 package, fusermount3) on the Host PC for Google Drive.
AmiSurf 0.87 browser engine
- The bundled engine is now AmiSurf 0.87's: the list for AmiSurf 0.87's bookmarks bar and Bookmarks menu, bookmark folders, and no stray error page when a preconnected page socket goes idle.
Changes
0.1.9 (2026-10-19) - Google sign-in in AmiSurf, sign-in check, AmiSurf 0.87 engine
- Bundled browser engine: AmiSurf 0.87's asb-chromed (hardcopi/amistudio-browser 6493b84, was 0.85 e762b82), with
the Host's 7 engine patches rebased (conflicts only in asbc.h's message enum and host.c's client-connect line, both
sides kept). New in the engine: ASBC_BMARKS (45) - the bookmark list (url<TAB>title<TAB>folderlines) after the
client'sbookmarkscommand and whenever it changes, for AmiSurf 0.87's bookmarks bar and Bookmarks menu; an
optional 4th folder column in bookmarks.tsv (Folder field on the internal Bookmarks page; older engines keep it);
the internal pages server closes idle (preconnected) sockets without replying (a 403 on one was shown as the next
page). Chromium unchanged (ungoogled-chromium 155.0.8059.79-1). tools/fetch-engine.sh, engine-patches/, docs. - amidrive AUTH_START 2: the sign-in URL for the Host's own browser engine, so AmiDrive can open it in AmiSurf on the
Amiga (the engine runs on this PC, so Google's redirect to 127.0.0.1:53682 reaches rclone). Without a browser engine
method 2 is still URL-only (the URL works in any browser on this PC); Hosts up to 0.1.8 treat 2 as 0.
amistudio-hostd amidrive signin --amisurf. - AUTH 0 gains a trailing flags byte (1 = this Host has a browser engine, 2 = the desktop browser of a method-0
sign-in could not open); clients that ignore it are unaffected. Sessions joining a sign-in with AUTH_START 1/2 get
the URL (also for a running desktop sign-in), never AUTH 1. Refusal texts shortened to ~140 bytes; the AUTH 2/3
text always equals the RESULT message. - Sign-in check: before rclone starts the Host asks Google whether it accepts the AmiStudio OAuth client with
rclone's redirect. Google refusing it (the shipped 0.1.8 client answers "Error 400: redirect_uri_mismatch") now
ends the sign-in at once with that reason instead of a browser on Google's error page.amidrive_auth_check no
turns it off. The request carries the public client ID only. - Tests: the check against a local HTTPS stand-in for Google (refusal, pass, off), AUTH_START 2 with and without a
browser engine, flags byte, joiners (URL vs step), refusal length = RESULT text, cancel, no secret in argv or logs.
The rclone binary (engine/rclone/rclone, 1.75.2, MIT) and the Chromium binaries (ungoogled-chromium 155.0.8059.79-1) are unmodified upstream; licences are in LICENSES/.
This runs on the PC, not on the Amiga: unpack it and see README-HOST.md inside.
SHA-256 sums are in SHA256SUMS.
AmiStudio Host 0.1.10
Fixes the crash at Google sign-in on Fedora 44 / Nobara
- With Host 0.1.9, clicking "Sign in..." in AmiDrive made the AmiStudio Host crash ("Service Crash: amistudio-hostd") on Fedora 44 and Nobara, and on other distributions with a newer system library (glibc) than the Host was built with. Host 0.1.10 fixes this: it now looks up internet addresses through your system's own tools instead of loading system libraries into itself.
- The check with Google before a sign-in now gives up after 8 seconds if Google doesn't answer, and the sign-in goes on (before, a dead network could hold it up for about 45 seconds).
- Nothing else changes: same AmiSurf 0.87 engine, AmiDiscord app mode and Google Drive with rclone 1.75.2 (Linux needs fuse3). AmiDrive 0.1.2 still signs in through AmiSurf with this Host. No AmiDrive or launcher update is needed.
Changes
0.1.10 (2026-10-19) - fix: the Host crashed at "Sign in..." on Fedora 44 / Nobara
- Crash fix (Rich, Nobara, AmiDrive 0.1.2 "Sign in..." -> "Service Crash: amistudio-hostd"): the static release
binary resolved accounts.google.com for the 0.1.9 sign-in check with glibc's getaddrinfo, which in a static
program dlopen()s the system's NSS modules (Fedora: hosts: files myhostname resolve [!UNAVAIL=return] dns).
libnss_myhostname.so.2 pulled in Fedora 44's own libc.so.6 (newer glibc than the Host was linked with), which died
with SIGFPE (divide by zero) in __libc_early_init and took the whole Host down, for every sign-in method (0, 1, 2).
Host 0.1.8 never looked up a name itself (rclone and Chromium resolve their own), so it was not affected.
Now names are looked up by the system'sgetent ahostsin a child process (the system's NSS with the system's
libc), numeric addresses with inet_pton, localhost directly (src/plat_posix.c plat_resolve; client/ashc.c inside
the Host uses the same). The static build wraps glibc's NSS calls (getaddrinfo, gethostbyname*, getnameinfo,
getservby*, getpw*, getgr*; also the ones OpenSSL references) to src/nss_off.c with -Wl,--wrap, so no NSS code is
linked at all. No getent on a system: names cannot be resolved (logged as "cannot connect"), the Host stays up. - The sign-in check now gives up after 8 s (connect and read) instead of 15 + 30 s, then the sign-in goes on.
- Tests: the static binary (and the tarball's) contains no NSS symbols or NSS loader strings; under bwrap with an
nsswitch.conf whose test NSS module crashes when loaded into amistudio-hostd (and resolves the check's host name
in getent), AUTH_START 2 reaches the fake Google by name and the Host stays up (test build and static binary);
sign-in check answers: chunked 400 refusal, odd bytes, empty, endless redirects, no answer (8 s) - no crash, only a
real "Error 4xx: code" page refuses. Also checked by hand: the shipped 0.1.9 vs this build in a Fedora 44 container
rootfs (its own nsswitch.conf and glibc): 0.1.9 exits with SIGFPE on AUTH_START 0/1/2, this build answers; and
under -fsanitize=address,undefined (no reports).
The rclone binary (engine/rclone/rclone, 1.75.2, MIT) and the Chromium binaries (ungoogled-chromium 155.0.8059.79-1) are unmodified upstream; licences are in LICENSES/.
This runs on the PC, not on the Amiga: unpack it and see README-HOST.md inside.
SHA-256 sums are in SHA256SUMS.
AmiDrive 0.1.3
AmiDrive 0.1.3 (beta), 19.10.2026. Needs AmiStudio 0.1.9+ and AmiStudio Host 0.1.8+.
- Open drawer now works with Directory Opus Magellan (AmiKit). 0.1.2 only asked Workbench 3.5+
(OpenWorkbenchObject), which DOpus does not answer, so on AmiKit you only got a requester with the path.
AmiDrive now tries in turn:- Directory Opus first when it runs (DOPUS.n ARexx port: "dopus front", then "lister new fromicon ")
- Workbench 3.5+ (OpenWorkbenchObject)
- the WORKBENCH ARexx port (Workbench 3.5+, Scalos with its Workbench 3.9 plugin)
- C:WBRun or C:Open
- To check it on AmiKit, look in AmiDrive.log (in the AmiDrive drawer) for a line like
OPEN ARexx DOPUS.1 lister new fromicon AmiKit:AmiStudio/Google Drive: ok, lister
followed by "OPEN opened through Directory Opus (DOPUS.1)". - If nothing opens a window, the requester lists each way tried and why it did not work.
- Gives the Google Drive drawer its icon when it is missing: a copy of the Host's Google Drive.info beside the
drawer (never inside Google Drive itself), before the window opens. - AmiDrive.log notes the Kickstart and workbench.library versions and each step of Open drawer.
Install with the AmiStudio launcher, or unpack the .lha anywhere and open the drawer.
SHA-256 sums are in SHA256SUMS.
AmiStudio 0.1.9
Google Drive (new, with AmiDrive)
- Sign in once with your own Google account, in the browser on the Host PC (AmiDrive starts the sign-in; the AmiStudio Host opens your PC's browser).
- Your Drive is then mounted as the drawer AmiStudio/Google Drive whenever AmiStudio or AmiDrive starts.
- It is unmounted when AmiStudio quits, after the waiting uploads have gone. If a file on Drive is still open, AmiStudio names it and offers Retry or Quit anyway.
- Don't delete or copy the AmiStudio drawer while Google Drive is mounted: quit AmiStudio first.
- A copied AmiStudio drawer needs a new Google sign-in.
- Files you delete on Google Drive go to the Google Drive trash, not straight away.
- Linux needs FUSE 3 (the fuse3 package, fusermount3) on the Host PC.
- AmiStudio 0.1.9 and AmiStudio Host 0.1.8 go together for this; update both.
Changes
0.1.9 (19.10.2026)
- Google Drive (with AmiDrive and AmiStudio Host 0.1.8 or newer): when
AmiStudio starts it asks the Host to mount your Google Drive as the
drawer AmiStudio/Google Drive (only once you have signed in with
AmiDrive). When AmiStudio quits Google Drive is always unmounted after
the waiting uploads: by the Host as it stops (STOPHOST on), or, with
STOPHOST off, AmiStudio asks the Host to unmount it and the Host keeps
running. A file still open or uploads that cannot go: AmiStudio names
them and offers Retry or Quit anyway (the Host then unmounts as soon as
the files are closed; leftover uploads go at the next mount). - AmiStudio never deletes, moves, copies or looks inside "Google Drive" or
"Google Drive.info" in its drawers (updates, backups, roll backs). - Installing or updating the Host first unmounts Google Drive; if a file on
it is still open AmiStudio says which and changes nothing. - AmiKit: Host/run-host.sh passes your real desktop settings to the Host
for the Google sign-in (so it opens your PC's browser), sets the mount
point to AmiStudio/Google Drive, adds your own Host settings from
Host/data/host-local.conf, and counts a busy Host (Host/data/hostd/busy)
as activity for --idle. - Don't delete or copy the AmiStudio drawer while Google Drive is mounted:
quit AmiStudio first. A copied drawer asks for a new Google sign-in.
Install with the AmiStudio launcher, or unpack the .lha anywhere and open the drawer.
SHA-256 sums are in SHA256SUMS.
AmiStudio 0.1.10
AmiStudio Host check and update offer (new)
- Apps can now say which AmiStudio Host they need. AmiDrive needs Host 0.1.8 for Google Drive.
- When you install, update or start such an app and your Host is older, AmiStudio offers "Update the AmiStudio Host now". It downloads the new Host and then restarts the running one: Google Drive is unmounted first, and if a file on it is still open AmiStudio says which and changes nothing.
- If another app (such as AmiSurf) still uses the old Host, the new Host takes over as soon as that app quits. The Host row says "restarts when the apps using it are closed".
- This also works when the running Host came with AmiSurf's AmiKit edition: AmiStudio installs its own Host next to it and runs that instead.
- Check for updates now checks the AmiStudio Host too and offers its update (or a restart, if a newer Host is installed but an older one still runs).
- The Host row says "Host 0.1.7: too old for Google Drive, update" when the running Host has no Google Drive yet.
- A Host older than 0.1.6 can't be asked to stop: quit it (or restart AmiKit) once, then the new Host starts.
Changes
0.1.10 (19.10.2026)
- Apps can say which AmiStudio Host they need (AmiDrive: Host 0.1.8, for
Google Drive). When you install, update or start such an app and the
Host in AmiStudio/Host, or the Host that is running, is older, AmiStudio
offers "Update the AmiStudio Host now": it downloads the new Host, then
restarts the running one (Google Drive is unmounted first; if another
app still uses the old Host, it is swapped as soon as that app quits).
A Host that came with AmiSurf's AmiKit edition counts too: AmiStudio's
own Host is installed next to it and runs instead. - Check for updates also checks the AmiStudio Host and offers its update
(or a restart, when a newer Host is installed but an older one runs). - The Host row says "Host 0.1.7: too old for Google Drive, update" when
the running Host has no Google Drive service (Project > AmiStudio
Host... updates it). - Project > AmiStudio Host... restarts the Host after an update instead
of leaving the old one running until the next start.
Install with the AmiStudio launcher, or unpack the .lha anywhere and open the drawer.
SHA-256 sums are in SHA256SUMS.
AmiStudio Host 0.1.8
Google Drive (new, with AmiDrive)
- Sign in once with your own Google account, in the browser on the Host PC (AmiDrive starts the sign-in; the AmiStudio Host opens your PC's browser).
- Your Drive is then mounted as the drawer AmiStudio/Google Drive whenever AmiStudio or AmiDrive starts.
- It is unmounted when AmiStudio quits, after the waiting uploads have gone. If a file on Drive is still open, AmiStudio names it and offers Retry or Quit anyway.
- Don't delete or copy the AmiStudio drawer while Google Drive is mounted: quit AmiStudio first.
- A copied AmiStudio drawer needs a new Google sign-in.
- Files you delete on Google Drive go to the Google Drive trash, not straight away.
- Linux needs FUSE 3 (the fuse3 package, fusermount3) on the Host PC.
- AmiStudio 0.1.9 and AmiStudio Host 0.1.8 go together for this; update both.
Changes
0.1.8 (2026-10-19) - Google Drive (amidrive)
- New built-in service
amidrivev1 (src/svc_amidrive.c; docs/PROTOCOL.md "amidrive v1", docs/SERVICES.md
"Google Drive"): mounts Google Drive with the bundled rclone 1.75.2 through FUSE atamidrive_mountpoint(the
launcher:<AmiStudio drawer>/Google Drive), for AmiDrive and the launcher. Sign-in in the PC's desktop browser
(rclone authorize drivewith the real desktop environment), status/flush/unmount through rclone's rc, open-file
refusal with a path list, pending uploads kept in{state}/amidrive/cache/,Drive.mountmarker
(tab-separated, path last), drawer icon parked/placed,--drive-use-trashalways on, non-empty mount point
refused, copied/moved drawer detected (drawer.path; a copy's cache is set aside),invalid_grant-> sign-in
expired, leftover rclone/stale mount cleared at start, rclone crash -> lazy unmount + one retry, one
mount/unmount/flush/sign-out at a time (others get busy),amidrive.lockso two Hosts never share one Drive.
Lifecycle (Rich, 19.10.2026): mounted only when AmiStudio/AmiDrive start (CONNECT flag 1), flushed and unmounted
when the Host stops;amidrive_keeps_host(default no). - CLI:
amistudio-hostd amidrive status|signin|connect|flush|unmount [--force|--later]|signout, also in ash-cli. - Services may have
busy()(keeps the Host up without a client; CONFDIR/busy for the launcher's watcher) and
init()hooks; all services now stop in parallel on shutdown. - host-defaults.conf next to the binary (read before host.conf): the release tarball's AmiStudio OAuth client. The
client secret is filled in from AMIDRIVE_CLIENT_SECRET by dist/mktarball.sh only (empty if unset). - http.c: http_req (any method, headers, body) for the token revoke and the account lookup.
- config:
#inside "double quotes" is no longer a comment; quoted values are unquoted. - Release tarball: engine/rclone/rclone, LICENSES/rclone-COPYING.txt + RCLONE-VERSION.txt (tools/fetch-rclone.sh,
sha256-pinned), services/amidrive/Google Drive.info (from the AmiDrive release), host-defaults.conf (0600).
The Host is GPL v3 (LICENSES/GPL-3.0.txt; mktarball.sh no longer says "licence not chosen"). - Docs: INSTALL.md (fuse3, desktop-browser sign-in, files), PROTOCOL.md, SERVICES.md.
- Tests: test/amidrive_tests.py (80 checks with an rclone alias remote of a local folder: space in the path, kill
and restart, pending uploads, open files, non-empty mount point, copied/moved drawer, stop-on-quit, keeps_host,
sign-in URL/cancel without the secret on argv or in logs, expired token, self-contained scan).
Also in 0.1.8 (docs and tests since 0.1.7):
- Documented the self-contained install the AmiStudio launcher (0.1.8+) uses on AmiKit: everything under its
AmiStudio/Host drawer via --confdir, data_dir/--data-dir, ASB_DOWNLOADS, HOME, XDG_* and TMPDIR (docs/INSTALL.md
"Self-contained install"; run-host.sh header). The standalone Linux install (~/.config, ~/.local/share, systemd
user unit) is unchanged; its Files table now also lists what Chromium, fontconfig, PulseAudio and NSS keep. - Test: app_tests selfcontained_tests (both bundled services with everything under one folder: profiles, Host id,
downloads and Chromium's HOME/TMPDIR files inside it, nothing Chromium-like new in the real ~ or /tmp). - Tests no longer leave PulseAudio daemons behind (one per throw-away HOME used to stay running after every
ASH_TEST_BROWSER=1 run): test/pulse_guard.py passes the user's own PULSE_SERVER/PULSE_COOKIE to the test engines
(as the launcher's run-host.sh does), turns libpulse autospawn off, and at the end (and at exit) stops any
pulseaudio whose HOME is under that run's test folder, nothing else. New checks: no daemon started under the test
HOME, none left behind. The self-contained test counts the user's own daemon updating ~/.config/pulse as allowed.
The rclone binary (engine/rclone/rclone, 1.75.2, MIT) is unmodified upstream; licences are in LICENSES/.
This runs on the PC, not on the Amiga: unpack it and see README-HOST.md inside.
SHA-256 sums are in SHA256SUMS.
AmiSurf 0.87
AmiSurf 0.87 (beta)
Two archives:
- AmiSurf-0.87.lha: the Amiga browser. It uses an AmiStudio Host on your PC.
- AmiSurf-0.87-AmiKit.lha (AmiKit edition): the same, plus the official AmiStudio Host 0.1.7 (amistudio-hostd, unchanged) with AmiSurf 0.87's own engine (asb-chromed) and one portable Chromium in AmiSurf/Host. The Host 0.1.7 engine is 0.85's and has no bookmarks list, so this edition carries the 0.87 engine. No Widevine is included; Host/get-widevine.sh fetches it if you want it.
0.87
- Fixed the Guru 8000 0004 right after Settings... from the menu button (MUI 5, reported on AmiKit). AmiSurf ran on the small default stack Workbench gives a program whose icon has no stack size, and the 256 KB stack it asks for was never set up. AmiSurf now always switches to its own 256 KB stack at start, from Workbench or the Shell, in all three programs. The log notes stack use at menus, windows and quit.
- Menu button (MUI 5): the chosen item runs after MUI has fully closed the popup.
- New: a Firefox-style bookmarks bar under the address bar. One button per bookmark, one per folder (a popup with its bookmarks), and a » button for what does not fit. Click opens a bookmark; Shift-click or the middle mouse button opens it in a new tab. Turn it on or off with Amiga B, View > Bookmarks bar or the menu button; the choice is kept in AmiSurf/Data/AmiSurf.prefs (BOOKMARKSBAR=ON/OFF).
- New: menu button > Bookmarks: Bookmark this page, Show/Hide bookmarks bar, Manage bookmarks and your bookmarks, with folders as submenus.
- Bookmark folders: Manage bookmarks > Edit has a Folder field. The bookmarks file keeps its format.
- The bookmarks bar and list need the 0.87 engine. With an older Host engine (e.g. a standalone AmiStudio Host 0.1.7) AmiSurf works as before and the bar shows a Bookmarks button and a note. The AmiKit edition has the 0.87 engine.
- AmiKit edition, upgrading from 0.86: unpack over the old drawer. The old Host/amistudio-host/ folder (~700 MB) is no longer used and can be deleted once no Host from it runs. Everything still stays in Host/data; downloads go to your real ~/Downloads.
Full list: AmiSurf/CHANGES in the archive.
Install with the AmiStudio launcher, or unpack the .lha anywhere and open the drawer.
SHA-256 sums are in SHA256SUMS.
Install with the AmiStudio launcher, or unpack the .lha anywhere and open the drawer.
SHA-256 sums are in SHA256SUMS.
AmiSurf 0.86
AmiSurf 0.86 (beta)
Two archives:
- AmiSurf-0.86.lha: the Amiga browser. It uses an AmiStudio Host on your PC.
- AmiSurf-0.86-AmiKit.lha (AmiKit edition): the same, plus the official AmiStudio Host 0.1.7 release, unchanged (its engine has the 0.85 download and new-tab fixes), with one portable Chromium in AmiSurf/Host. No Widevine is included; Host/get-widevine.sh fetches it if you want it.
0.86
- Everything stays in the drawer (AmiStudio suite rule). AmiSurf no longer writes ENV: or ENVARC:. Settings and the window box live in AmiSurf/Data/. The AmiStudio identity (ClientId, HostToken, Host) comes from the AmiStudio launcher's Prefs/ when the launcher installed AmiSurf, otherwise from AmiSurf/Data/.
- Upgrading: the first start moves AmiSurf's own old ENVARC:/ENV: files (prefs, window) into the drawer and deletes them. The shared ENVARC:AmiStudio/ClientId, HostToken and Host are copied, so you stay paired, and left in place for the AmiStudio launcher 0.1.8 to move. ENV:MUI files MUI writes on quit are removed again.
- Settings "Use" now changes only the running AmiSurf.
- AmiKit edition: the Host, its engine and Chromium keep everything under AmiSurf/Host/data (settings, tokens, browser profile, HOME, XDG folders, temp files; a short /tmp link is used for deep drawers). Downloads still go to your real ~/Downloads. move-to-host.sh --to /Host copies your browser data to the AmiStudio launcher's Host.
Full list: AmiSurf/CHANGES in the archive.
Install with the AmiStudio launcher, or unpack the .lha anywhere and open the drawer.
SHA-256 sums are in SHA256SUMS.
AmiDrive 0.1.2
AmiDrive 0.1.2 (beta), 19.10.2026. Needs AmiStudio 0.1.9+ and AmiStudio Host 0.1.8+.
- Sign in on the Amiga, in AmiSurf: Google's sign-in page opens in a new AmiSurf tab (AmiSurf's ARexx port, or
AmiDrive starts AmiSurf), then "Sign in in AmiSurf and come back when Google says Success".
IMPORTANT: AmiSurf sign-in needs an AmiStudio Host with AmiSurf sign-in support (not yet released) and the
redirect fix in the AmiStudio Google OAuth client. Older Hosts (0.1.8) fall back to the PC's browser, and AmiDrive
says so. - Warns when AmiSurf is set to another AmiStudio Host than AmiDrive's (the sign-in page only loads through the
Host on the same PC). - Without AmiSurf: "Use the PC's browser" or "Show the address" (copy it).
- Sign-in failures show the Host's text unchanged (for example Google's "Error 400: redirect_uri_mismatch").
- New tooltypes: SIGNIN=PC (always the PC's browser), BROWSER= (the AmiSurf program).
Install with the AmiStudio launcher, or unpack the .lha anywhere and open the drawer.
SHA-256 sums are in SHA256SUMS.
AmiDrive 0.1.1
0.1.1 (19.10.2026) - beta, needs AmiStudio Host 0.1.8 and AmiStudio 0.1.9
- Says exactly why there is no Host, in the State line, the message line and the Host row: connection refused
(no Host running), no answer (timeout), unreachable, unknown address, no TCP/IP, token rejected (pair again),
busy, and "AmiStudio Host too old" with the running Host's version (asked from its hostinfo service) when the
Host has no Google Drive service (before 0.1.8). A one-time requester explains the update. 0.1.0 showed
"No AmiStudio Host" for all of these. - Starts the AmiStudio Host itself on AmiKit when nothing answers on this PC, like AmiSurf and AmiStudio do:
C:host-run sh ".../AmiStudio/Host/run-host.sh" --port 9220 --idle 30 (only the Host AmiStudio installed;
run-host.sh never starts a second one). AUTOHOST=NO turns this off. - When the suite's Host file (AmiStudio/Prefs/Host, a Host found on the LAN) refuses, also tries 127.0.0.1,
as AmiStudio's own search does.
Install with the AmiStudio launcher, or unpack the .lha anywhere and open the drawer.
SHA-256 sums are in SHA256SUMS.