Skip to content

BedrockOnLinux 2.2.7

Choose a tag to compare

@github-actions github-actions released this 17 Sep 15:26
· 2 commits to f6a76188ea8df3c369fd335386cbc7faa71fa334 since this release

Fixed

  • Installing Steam after BedrockOnLinux works again
    (#265). On a
    computer without Steam, the launcher created ~/.steam/steam as 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/steam an 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 through gtk-launch, as Cinnamon's menu does, the launcher's
    console output goes to a pipe that nothing reads any more once gtk-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 the xrandr program — 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 with DESKTOP_SESSION=gamescope did 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 filters xboxlive.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.Flatpak portal 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-shm takes its place, so the container shares
    /dev/shm with 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, and xodus-cli loads 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. The zstd module
    is dropped, since the runtime ships zstd and unzstd, 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