diff --git a/manifest.ts b/manifest.ts index 3c3eaeb..3143f03 100644 --- a/manifest.ts +++ b/manifest.ts @@ -87,12 +87,17 @@ export const manifest: PluginManifest = { osDependencies: [ { binary: 'wine', - reason: 'Runs the game. Minesweeper X is a 32-bit Windows executable, so this host also needs i386 multiarch (`dpkg --add-architecture i386`) and the 32-bit wine package — a 64-bit-only wine cannot load it.', - // `apt: 'wine'` alone, deliberately. The 32-bit half is `wine32:i386`, and a package name may not - // carry an architecture suffix or a second package — nor should it, since `dpkg --add-architecture - // i386` has to happen first and no package name can express that. The `reason` above carries the - // whole command, which is what the owner is shown when this is missing. - packages: { apt: 'wine', dnf: 'wine', pacman: 'wine', brew: 'wine-stable' }, + reason: + 'Runs the game. Minesweeper X is a 32-bit Windows executable, so this needs the 32-bit wine package and the i386 architecture enabled on the host — a 64-bit-only wine cannot load it.', + // `multiarch: 'i386'` is what makes the apt entry below installable at all. Minesweeper X is an + // i386 PE, so it needs `wine32:i386` — and that package does not exist on a 64-bit host until dpkg + // has been told the architecture does. The platform runs `dpkg --add-architecture i386` and + // `apt-get update` first; it is system-wide and permanent, and the owner sees it before consenting. + // + // Without it `wine` alone lands 64-bit-only, the install reports success, and the game dies with + // `Bad EXE format` several steps away from anything that mentions architectures. + multiarch: 'i386', + packages: { apt: ['wine', 'wine32:i386'], dnf: 'wine', pacman: 'wine', brew: 'wine-stable' }, scope: 'owner', }, {