Repository navigation
BedrockOnLinux 2.2.7
Fixed
-
Installing Steam after BedrockOnLinux works again
(#265). On a
computer without Steam, the launcher created~/.steam/steamas an ordinary
folder, just to have somewhere to point Proton. Steam's installer needs that
exact path to be a link to its own data folder and cannot replace a folder,
so every Steam installed afterwards stopped at Couldn't set up Steam data -
please contact technical support, with nothing to say what was in the way.
Proton only reads the Steam client from that folder, so the launcher now
keeps its own in its data folder whenever no real Steam installation is
there, and removes the empty~/.steam/steaman earlier version left
behind. A folder with anything in it is never touched, and an installed
Steam is used exactly as before. -
The launcher opens again after its files were moved to another drive
(#255). Moving the
data folder in Settings takes the worlds, settings and sign-in along and
leaves the engine, caches and logs in the old folder. At the next start the
launcher took those leftovers for data from before its switch to the
standard XDG folders and set out to migrate them into the new location —
creating a lock file next to the chosen folder first. For a drive mounted
under/media/<user>/, that is a folder only the system can write to, so
every start ended in Could not migrate the legacy data safely … Permission
denied, with the AppImage and the .deb alike; elsewhere it only printed a
misleading warning about two data folders. A location chosen in Settings is
no longer treated as a migration target. -
PLAY works when the launcher was opened from the application menu on
Cinnamon (#261).
Started throughgtk-launch, as Cinnamon's menu does, the launcher's
console output goes to a pipe that nothing reads any more oncegtk-launch
has exited. Every log line is also written to that console, so the first
one after that failed with Broken pipe and stopped PLAY before it reached
the Microsoft sign-in. A console that has gone away is now let go of: its
output goes to/dev/null, the lines still appear in the launcher's
activity log, and the programs the launcher starts no longer inherit the
dead pipe either — writing to it would have killed them. Started from a
terminal, nothing changes. Diagnosed by
@DevTheFool. -
A system whose glibc is too old is told so, instead of being sent to
install WebKitGTK it already has
(#264). The
Minecraft downloader,xodus-cli, needs glibc 2.39 or newer, which Ubuntu
22.04 and the distributions built on it — Pop!_OS, Zorin OS 17, Linux Mint
21 — do not have. The launcher only checked whether the program started,
and reported every failure as a missing WebKitGTK: players installed
libwebkit2gtk-4.1-0, sat through an 80 MB download of the bundled copy,
and got the same message again. The loader's own words now decide: an old
glibc is named with the version needed and the version installed, the
bundled copy — built against the same glibc — is no longer downloaded for
nothing, and the Flatpak, which brings its own runtime, is pointed to. Any
other failure of the bundled copy now quotes what the loader said.
Diagnosed by @duzos. -
Repair no longer deletes your worlds
(#253).
Settings › Tools › Repair (reset Wine prefix) promised that worlds and
settings are kept, then deleted the whole Wine prefix — and Minecraft keeps
every world, pack, skin, screenshot and its own settings inside it, under
AppData/Roaming/Minecraft Bedrock. Players who repaired lost their worlds
with no warning. Repair now keeps that folder, and the Preview's, and resets
only what Wine rebuilds on the next launch. Everything that decides whether
a world survives is a rename done before anything is deleted: the old prefix
is set aside, Minecraft's folders move into the new one, and only then is
the rest removed — so closing the launcher in the middle of a repair costs
no world either, and if a folder cannot be moved, the repair stops with the
prefix exactly as it was. Checked end to end on a real prefix: repaired,
rebuilt by Wine around the kept folder, world intact. -
The Flatpak starts Minecraft on X11 sessions again, Steam Deck Game Mode
included (#259).
Before starting the game, the launcher asks the X server whether a real GPU
drives the display, and it asked through thexrandrprogram — which the
Flatpak's runtime does not include. Unable to ask, it refused PLAY with
Unsafe graphics session: the launcher could not verify any X11 hardware
provider on every X11 session: a healthy desktop (#245) as much as Game
Mode, where the allowance made for Gamescope was never reached because it
only applies once the providers have been counted. That is also why
launching withDESKTOP_SESSION=gamescopedid not help. The launcher now
asks the X server directly through its RandR library when the program is
missing — the same question, still without opening the GPU. Checked in the
Flatpak runtime on an X11 desktop: refused before, one provider found and
PLAY allowed after. -
NixOS: importing content no longer crashes the launcher
(#263). On GTK
desktops the file picker is GTK's own, and GTK aborts the whole program when
its file-chooser settings schema cannot be found — which, run from the
flake, it never could: Settings schema 'org.gtk.Settings.FileChooser' is
not installed. The flake's wrapper now adds GTK's schemas to
XDG_DATA_DIRS, as the workaround
@tuxmanxd found did by hand. -
A download blocked at the DNS level says so
(#252). When this
computer cannot look up the Microsoft server the game comes from —
assets1.xboxlive.com,assets2.xboxlive.com— the download used to end on
the downloader's raw error,ok: Custom { kind: Other, error: reqwest::Error { … ConnectError("dns error" … } }, with nothing to say that the sign-in
was fine and only that name failed. It now names the servers that could not
be looked up and why, and where to look: the connection itself, then
whatever filtersxboxlive.com— a DNS ad blocker such as Pi-hole, AdGuard
Home or NextDNS, a router's parental controls, or a VPN. Every mirror is
still tried first, since each one is a different name.
Packaging
- The Flatpak moves to the GNOME 51 runtime and gives up its access to the
Flatpak service. GNOME 49 is at the end of its life now that GNOME 51 is
out. The manifest granted--talk-name=org.freedesktop.Flatpak, on the
belief that pressure-vessel needs it to start the game's container
(#157). It does
not: inside Flatpak, pressure-vessel asks the
org.freedesktop.portal.Flatpakportal for a sub-sandbox, which every app
may do. That name was a way out of the sandbox that nothing used, and it is
gone;--allow=per-app-dev-shmtakes its place, so the container shares
/dev/shmwith the launcher, as it does in Heroic and Bottles. Checked in
the GNOME 51 build without the permission: the Steam Runtime container
starts through the portal, GDK-Proton runs a command in a fresh prefix,
Vulkan sees the NVIDIA GPU, andxodus-cliloads the runtime's WebKitGTK.
The bundled Python moves to 3.12.14 — the runtime's own is 3.14, which
PySide6 6.9 does not support — and its packages are now installed by pip
from the same pinned files, with cffi built from source. Thezstdmodule
is dropped, since the runtime shipszstdandunzstd, and the store
listing gets the current screenshot and declares keyboard, mouse and
controller support.
Build provenance
Application artifacts built from source, consuming this
fork's attested, pinned engine and OpenSSL-XCurl set.
Bill of materials (pinned + reproducible):
- Managed engine: wow64-archs-native18 (sha256 e0ead91c3003ff6d4e01995dc8590d21603251d2e71a51c594eab0c3271eabff)
- WineGDK source: 75637b674e1f191e65753663c4c0c32bea05ba6e (prefix sha256 5e790543d13a42b594df03dc9adfad16980cfd471ed8f1cfcbc55718e1791e25)
- vkd3d-proton: 3.0.1-nv-dgc (output-hashes sha256 09d22ca93ae4b0a2f99294a43cec6a89a2bd92b96dffb14f2fcc5cf66685b3df)
- OpenSSL-XCurl set: 504bb166e4e7
Verify any file with:
gh attestation verify <file> --repo Wyze3306/BedrockOnLinux
Full Changelog: v2.2.6...v2.2.7