Installers and file associations¶
5DO ships the portable six-bundle matrix as its primary release artifact. UX-16 adds unsigned installer/package scaffolding on top of those bundles. Signing and notarization are conditional: they run only when the required Windows certificate or Apple Developer ID/keychain profile is available.
| Platform | Artifact | Script | Status |
|---|---|---|---|
| Windows | 5do-<version>-win-x64-setup.exe, win-arm64 | packaging/windows/build-installer.ps1 | x64 built and install/launch/association-tested; arm64 built (unsigned) |
| Linux | 5do_<version>_amd64.deb, 5do-<version>-1.x86_64.rpm | packaging/linux/build-deb.sh, build-rpm.sh | Built and metadata/MIME-validated (unsigned) |
| macOS | 5do-<version>-osx-<arch>.dmg, .pkg | packaging/macos/build-macos-package.sh | Scaffolding; requires a macOS host to build |
The authoritative build instructions and script arguments are in packaging/README.md.
File associations¶
The installed desktop app accepts a positional disc path or --disc <path>, which is the same path the shell passes from a file association.
- Windows: Inno Setup registers
5DO.Discfor.iso,.cue,.chd, and.binand5DO.Playlistfor.m3u. The association is per-user when the installer is not elevated and machine-wide when it is. - Linux: the package installs
/usr/share/mime/packages/5do.xmlwith theapplication/x-3do-discMIME type for.iso,.cue,.chd, and.bin, plus the5do.desktopentry and5doSVG icon.postinstrefreshes the desktop and MIME databases. - macOS: the
.appdeclarescom.5do.disc-imageas an exported UTI plus aCFBundleDocumentTypesviewer entry. Finder opens the selected image with the app.
Signing and notarization¶
- Windows Authenticode: pass
-SignCommandtobuild-installer.ps1. The wrapper hands it to Inno Setup as the5doSignsign tool; the installer and uninstaller are signed. Without a certificate the installer is unsigned but fully functional. - macOS Developer ID: pass
--sign-identity(or setMACOS_SIGN_IDENTITY). The script signs5DO.appwith the hardened runtime and the JIT entitlements required by the framework-dependent .NET apphost. Pass--notary-profile(orMACOS_NOTARY_PROFILE) to submit and staple the DMG and PKG withnotarytool. - Linux: packages are unsigned; add a repository signing key at the distribution layer if needed.
No certificate, Apple account, or private key is committed to this repository.
Validation evidence (2026-11-10)¶
Windows x64, Inno Setup 6.7.1, unsigned 1.6.0 bundle:
- Built
5do-1.6.0-win-x64-setup.exefrom5do-1.6.0-win-x64.zip; SHA-256e3ecba618a10aacb16225108e6c88d66d6de4fde51d34686b2462f856b830e64. - Silent per-user install to a temporary directory succeeded; the installed
FiveDo.Cli.exe --versionreported5DO 1.6.0and the frontend--smoke-testwroteFRONTEND SMOKE OK 1.6.0(windowState=Normal). Both processes exited 0. HKCU\Software\Classes\.iso,.cue,.chd, and.binresolved to5DO.Disc;.m3uresolved to5DO.Playlist; the open command launched the installed frontend with"%1".- Silent uninstall exited 0 and removed the ProgIDs and default extension values.
- Built the arm64 installer from the published
win-arm64bundle (5do-1.6.0-win-arm64-setup.exe).
Linux x64 (WSL Ubuntu 22.04):
5do_1.6.0_amd64.debbuilt withdpkg-deb; control metadata reportsArchitecture: amd64,Depends: dotnet-runtime-10.0, and the expected/opt/5do,/usr/bin/5do, desktop, icon, and MIME paths.5do-1.6.0-1.x86_64.rpmbuilt withrpmbuild;rpm -qipreports the expected name/version/license andrpm -qlplists the same payload.desktop-file-validateexits 0, andupdate-mime-databaseproducesapplication/x-3do-discglobs for*.iso,*.cue, and*.chd.
macOS packaging is implemented but not executed in this environment; it requires hdiutil, pkgbuild, and optionally codesign, notarytool, and stapler from a macOS host.