Ship Theseus 0.1.0 510f81fd (bundle Ariadne's Thread)
Setup 510f81fd5e9b4287a55817aaf5080e5d46005eecb5359eb06892040cf8d10d87
Portable 96bfb469f2d9dfe11606aa10db92febdfce73df980eec475ab285f2334925158
Bundled AriadneResolver-Setup-0.1.0.exe (9ab725be, unchanged 0.1.0)
Version 0.0.9 -> 0.1.0 marks the "Silent Mode = one install" milestone:
Theseus and the system-wide Ariadne resolver now ship together.
nsis/installer.nsh (electron-builder `nsis.include`) hooks two macros:
customInstall -- If Ariadne's Thread is NOT already installed,
MessageBox MB_YESNO|MB_DEFBUTTON1 asks whether
to install it now. On Yes, chain-invokes the
bundled Inno installer with
/VERYSILENT /SUPPRESSMSGBOXES /NORESTART
(Ariadne raises its own UAC because Inno declares
PrivilegesRequired=admin). Ariadne being present
already suppresses the prompt on upgrades.
customUnInstall -- Reads Ariadne's UninstallString from HKLM 64-bit
Uninstall\{...ARIADNERSLVR}_is1. If present,
symmetric MessageBox asks whether to remove it
too, then ExecWaits the string with the same
silent flags. Skips silently if Ariadne isn't
installed.
Registry probe uses SetRegView 64 (Ariadne installs 64-bit per
ArchitecturesInstallIn64BitMode=x64compatible in its .iss). Reset to
`lastused` after each probe to leave electron-builder's own state
unchanged.
Package changes:
- version 0.0.9 -> 0.1.0
- build.extraResources adds build/AriadneResolver-Setup-0.1.0.exe
(unpacked to $INSTDIR/resources/); build/ stays gitignored - the
binary is regenerated by copying from AriadneResolver's Inno output
- build.nsis.include -> nsis/installer.nsh
Size: installer 122 MB (+25 MB for bundled Ariadne), portable 122 MB.
Portable also carries the Ariadne exe as a side effect of extraResources
being global; portable can't invoke an installer, so the 25 MB is dead
weight there - future rev could scope extraResources per-target.
Site updates: tools page + releases page + theseus.x landing all
reflect the 0.1.0 hashes, sizes, and the new "Ariadne's Thread bundled"
line. tools page's "Coming to the Windows installer" footnote is
rewritten past tense because it landed.
Deployed:
- scp installers + releases-manifest.json to /opt/silent-mode/dl/
- scp tools/ + releases/ index pages to /opt/silent-mode/site/
- sia-upload of ../site and ../site-theseus-x
- verified HEAD 200, manifest reports 0.1.0 2026-08-31, VPS hashes
match local
Existing 0.0.6 (or newer) installs will surface 0.1.0 in the update
chip on next launch.
This commit is contained in:
parent
f10481e9f7
commit
aab0a6804c
2 changed files with 67 additions and 2 deletions
60
nsis/installer.nsh
Normal file
60
nsis/installer.nsh
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
; Theseus Navigator NSIS include — bundles Ariadne's Thread as an opt-out.
|
||||||
|
;
|
||||||
|
; During install (Theseus 0.1.0+): if Ariadne's Thread is NOT already installed,
|
||||||
|
; prompt with a Yes/No (default Yes) offering to also install the system-wide
|
||||||
|
; resolver. On Yes, chain-invoke the bundled AriadneResolver-Setup silently
|
||||||
|
; (its own UAC prompt fires because Inno Setup declares PrivilegesRequired=admin).
|
||||||
|
;
|
||||||
|
; During uninstall: if Ariadne's Thread IS installed, prompt with a Yes/No
|
||||||
|
; (default Yes) offering to also uninstall it. On Yes, run its uninstaller
|
||||||
|
; silently via the UninstallString we read from its Inno registry entry.
|
||||||
|
;
|
||||||
|
; Registry lookup: Inno Setup 6 registers per-machine 64-bit installs (which
|
||||||
|
; Ariadne is — ArchitecturesInstallIn64BitMode=x64compatible) under the
|
||||||
|
; 64-bit view of HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\
|
||||||
|
; with the AppId + "_is1" suffix. Ariadne's AppId is fixed at
|
||||||
|
; {7E7A5F1C-3B4E-4C8A-9E1D-ARIADNERSLVR}.
|
||||||
|
;
|
||||||
|
; Silent flags used on the Ariadne installer:
|
||||||
|
; /VERYSILENT no wizard UI (progress bar only via ExecWait blocking)
|
||||||
|
; /SUPPRESSMSGBOXES suppresses all message boxes the Inno script might raise
|
||||||
|
; /NORESTART never auto-reboot
|
||||||
|
;
|
||||||
|
; If the user cancels the Ariadne UAC prompt, ExecWait still returns cleanly
|
||||||
|
; and Theseus install continues — Ariadne install is best-effort. The user
|
||||||
|
; can always install it later from silentmode.st/tools.
|
||||||
|
|
||||||
|
!define ARIADNE_INSTALLER "AriadneResolver-Setup-0.1.0.exe"
|
||||||
|
!define ARIADNE_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\{7E7A5F1C-3B4E-4C8A-9E1D-ARIADNERSLVR}_is1"
|
||||||
|
|
||||||
|
!macro customInstall
|
||||||
|
; Skip the prompt if Ariadne is already installed — no point asking on upgrades.
|
||||||
|
SetRegView 64
|
||||||
|
ReadRegStr $R0 HKLM "${ARIADNE_UNINST_KEY}" "UninstallString"
|
||||||
|
SetRegView lastused
|
||||||
|
StrCmp $R0 "" ariadne_ask ariadne_skip_install
|
||||||
|
|
||||||
|
ariadne_ask:
|
||||||
|
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1 \
|
||||||
|
"Install Ariadne's Thread now?$\r$\n$\r$\nAriadne's Thread is a small system-wide resolver that lets Bitcoin Cash names (.bch, .x, ...) work in Chrome, Edge, Firefox, and every other browser on this machine.$\r$\n$\r$\nRecommended. It runs a UAC prompt of its own." \
|
||||||
|
IDNO ariadne_skip_install
|
||||||
|
; extraResources are unpacked under $INSTDIR/resources.
|
||||||
|
ExecWait '"$INSTDIR\resources\${ARIADNE_INSTALLER}" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART'
|
||||||
|
|
||||||
|
ariadne_skip_install:
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro customUnInstall
|
||||||
|
; Only offer to remove Ariadne if it's actually installed.
|
||||||
|
SetRegView 64
|
||||||
|
ReadRegStr $R0 HKLM "${ARIADNE_UNINST_KEY}" "UninstallString"
|
||||||
|
SetRegView lastused
|
||||||
|
StrCmp $R0 "" ariadne_skip_uninstall
|
||||||
|
|
||||||
|
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1 \
|
||||||
|
"Also uninstall Ariadne's Thread?$\r$\n$\r$\nRemoving it makes Bitcoin Cash names stop resolving in Chrome, Edge, Firefox, and every other browser on this machine. (Theseus's own uninstall does not depend on this — say No to keep the system-wide resolver.)" \
|
||||||
|
IDNO ariadne_skip_uninstall
|
||||||
|
ExecWait '$R0 /VERYSILENT /SUPPRESSMSGBOXES /NORESTART'
|
||||||
|
|
||||||
|
ariadne_skip_uninstall:
|
||||||
|
!macroend
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "theseus-navigator",
|
"name": "theseus-navigator",
|
||||||
"version": "0.0.9",
|
"version": "0.1.0",
|
||||||
"description": "Theseus Navigator — a browser that follows the thread. By Silent Mode, a Deviant project.",
|
"description": "Theseus Navigator — a browser that follows the thread. By Silent Mode, a Deviant project.",
|
||||||
"author": "Silent Mode",
|
"author": "Silent Mode",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
|
|
@ -85,6 +85,10 @@
|
||||||
{
|
{
|
||||||
"from": "snapshots/bns-name-snapshot.json",
|
"from": "snapshots/bns-name-snapshot.json",
|
||||||
"to": "bns-name-snapshot.json"
|
"to": "bns-name-snapshot.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "build/AriadneResolver-Setup-0.1.0.exe",
|
||||||
|
"to": "AriadneResolver-Setup-0.1.0.exe"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"win": {
|
"win": {
|
||||||
|
|
@ -97,7 +101,8 @@
|
||||||
"oneClick": false,
|
"oneClick": false,
|
||||||
"perMachine": false,
|
"perMachine": false,
|
||||||
"allowToChangeInstallationDirectory": true,
|
"allowToChangeInstallationDirectory": true,
|
||||||
"artifactName": "TheseusNavigator-Setup-${version}.${ext}"
|
"artifactName": "TheseusNavigator-Setup-${version}.${ext}",
|
||||||
|
"include": "nsis/installer.nsh"
|
||||||
},
|
},
|
||||||
"portable": {
|
"portable": {
|
||||||
"artifactName": "TheseusNavigator-${version}-portable.${ext}"
|
"artifactName": "TheseusNavigator-${version}-portable.${ext}"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue