Skip to content

stremio-linux-shell: init at 1.0.0-beta.13#468728

Open
thunze wants to merge 1 commit intoNixOS:masterfrom
thunze:stremio-linux-shell
Open

stremio-linux-shell: init at 1.0.0-beta.13#468728
thunze wants to merge 1 commit intoNixOS:masterfrom
thunze:stremio-linux-shell

Conversation

@thunze
Copy link
Member

@thunze thunze commented Dec 7, 2025

This PR adds stremio-linux-shell, the new client for Stremio on Linux.

Given that qt5.qtwebengine will be dropped in the near future due to being vulnerable, I think now is a good time to drop the old stremio package that still depends on qt5.qtwebengine (I'll do that in a separate PR) and init stremio-linux-shell as a replacement (at least on Linux). Looking at upstream, it unfortunately doesn't look like there's a suitable replacement for darwin yet.

Historically, stremio-linux-shell has seen a few different rewrites, each using different underlying technologies, so at first we held off on packaging it in nixpkgs. However, since I originally opened this PR, main and the tagged releases have been pretty stable.

I based this derivation on @fxzzi's derivation for an earlier version of stremio-linux-shell.

Closes #437992, #489227


For reference, here's the part of the old PR description that used to track the different rewrites of stremio-linux-shell:

Old description

[!NOTE]

Please don't merge this yet. It seems like upstream hasn't yet decided which technologies they want to use for the Linux client. See below for an overview of the rewrites we've seen so far.

I'll keep this PR a draft until upstream stabilizes and until we've decided how and when to move forward with it. This PR should merely serve as a preliminary implementation for now.

We might also wanna consider updating stremio instead of adding a new package.

For context, please read: #437992

This PR adds stremio-linux-shell, the new client for Stremio on Linux.

It currently packages rewrite number 2 on the below list of rewrites that are out there, following tag v1.0.0-beta.13. I'll try to keep this list updated as upstream continues to work on the app.

  1. gtk4 + webkitgtk + libmpv
  2. winit + glutin with libmpv and CEF ← Currently packaged in this PR
  3. gtk4 + libadwaita + CEF + libmpv

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

@thunze thunze mentioned this pull request Dec 7, 2025
3 tasks
@thunze thunze force-pushed the stremio-linux-shell branch from 8a7be91 to 8ee52a8 Compare December 7, 2025 21:00
@fxzzi
Copy link
Contributor

fxzzi commented Dec 15, 2025

packaged the refactor/gtk4 branch here: https://gitlab.com/fazzi/nixohess/-/blob/main/parts/pkgs/packages/stremio-linux-shell-rewrite/package.nix

broken on wayland for me right now tho, entire CEF ui is upside down haha

@thunze
Copy link
Member Author

thunze commented Dec 16, 2025

packaged the refactor/gtk4 branch here: https://gitlab.com/fazzi/nixohess/-/blob/main/parts/pkgs/packages/stremio-linux-shell-rewrite/package.nix

Awesome, thanks! I'll probably update this PR once we have a tag or the branch gets merged into main.

labellson added a commit to labellson/dotfiles that referenced this pull request Dec 19, 2025
@SrTobi
Copy link
Contributor

SrTobi commented Dec 24, 2025

Thanks. I had to add libxkbcommon to --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL libxkbcommon ]} to make it work (otherwise I got a failure because a so could not be loaded)

@thunze thunze changed the title stremio-linux-shell: init at 1.0.0-beta.12 stremio-linux-shell: init at 1.0.0-beta.13 Jan 12, 2026
@thunze thunze force-pushed the stremio-linux-shell branch from 8ee52a8 to 332d9d7 Compare January 12, 2026 19:06
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. labels Jan 12, 2026
@MarkRijckenberg
Copy link

MarkRijckenberg commented Jan 14, 2026

I have tested the following version ([stremio-linux-shell: init at 1.0.0-beta.13]. However, launching this newer version of stremio still causes my PC to crash. I am then forced to reboot my PC to get back into NixOS unstable.

332d9d7

@thunze thunze force-pushed the stremio-linux-shell branch from 332d9d7 to a6be976 Compare January 14, 2026 19:04
@thunze
Copy link
Member Author

thunze commented Jan 14, 2026

Thanks. I had to add libxkbcommon to --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL libxkbcommon ]} to make it work (otherwise I got a failure because a so could not be loaded)

I can't reproduce this locally, unfortunately, but I've now patched the paths to libxkbcommon.so.0 and libxkbcommon-x11.so.0 in e7fb8c7. Could you check if that works, too?

I have tested the following version ([stremio-linux-shell: init at 1.0.0-beta.13]. However, launching this newer version of stremio still causes my PC to crash. I am then forced to reboot my PC to get back into NixOS unstable.

I tried to fix the libxkbcommon error you were seeing (see above), but I'm afraid I'm going to need a bit more information to investigate the "crash/hang" you're reporting. What makes you think it's related to the packaging of stremio, specifically?

@MarkRijckenberg
Copy link

@thunze I only encounter a complete system hang/unrecoverable crash when launching stremio. I don't encounter crashes or instability with any other package I use in NixOS unstable. The stremio crash only occurs between 33% and 50% of the launches, not all the time.

Here is my system info:


 OS -> NixOS
├ -> yarara 26.05 (Yarara)
├ -> Linux 6.18.0-cachyos
├󰏖 -> 2750 (nix-system), 360 (nix-user), 11 (flatpak-system), 10 (flatpak-user)
└ -> bash 5.3.3

 DE/WM -> Muffin (X11)
├󰧨 -> lightdm 1.32.0 (X11)
├󰉼 -> New-Minty (Mint-Y)
├󰀻 -> Numix-Circle-Light [GTK2/3/4]
├ -> .gnome-terminal

󰌢 PC -> MS-7E12 (1.0)
├󰻠 -> AMD Ryzen 7 7800X3D | 50.8°C
├󰍛 -> NVIDIA GeForce RTX 4070 | 
├ -> 703.59 GiB / 914.41 GiB (77%) - ext4
├ -> 851.09 GiB / 931.01 GiB (91%) - fuseblk
├󰑭 -> 3.33 GiB / 62.47 GiB (5%)
├󰓡 -> Disabled
├󰅐 -> 29 seconds
└󰍹 -> 2560x1440 @ 1.5x in 27", 144 Hz [External]

 SOUND -> Blackwire C5220 headset (remote control and 3.5mm audio adapter) Dig)

  Desktop: Cinnamon v: 6.6.4 Distro: NixOS 26.05 (Yarara)
  Device-1: NVIDIA AD104 [GeForce RTX 4070] driver: nvidia v: 590.48.01
  Device-1: Realtek RTL8125 2.5GbE driver: r8169
  Device-2: MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter
  Display: x11 server: X.org v: 1.21.1.20 driver: X: loaded: modesetting
  Host: ulysses-desktop Kernel: 6.18.0-cachyos arch: x86_64 bits: 64
Info:
  Info: Tools: api: vulkaninfo gpu: amdgpu_top,nvidia-smi x11: xprop,xrandr
  Info: 8-core AMD Ryzen 7 7800X3D [MT MCP] speed (MHz): avg: 4785
  Type: Desktop Mobo: Micro-Star model: MAG X670E TOMAHAWK WIFI (MS-7E12)

nix (Determinate Nix 3.15.1) 2.33.0

And here is the output of RUST_BACKTRACE=full stremio when I get lucky and my PC does not crash:

⋉ RUST_BACKTRACE=full stremio
2026-01-14T19:22:15.251076Z  INFO xkbcommon_dl: Failed loading `libxkbcommon-x11.so.0`. Error: CantOpen(DlOpen { desc: "libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory" })    
2026-01-14T19:22:15.251118Z  INFO xkbcommon_dl: Failed loading `libxkbcommon-x11.so`. Error: CantOpen(DlOpen { desc: "libxkbcommon-x11.so: cannot open shared object file: No such file or directory" })    

thread 'main' (3876) panicked at /build/stremio-linux-shell-1.0.0-beta.13-vendor/xkbcommon-dl-0.4.2/src/x11.rs:59:28:
Library libxkbcommon-x11.so could not be loaded.
stack backtrace:
   0:     0x55929d51179c - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h97fb6610f56dfc08
   1:     0x55929d54f99f - core::fmt::write::h9136135b32f30016
   2:     0x55929d52ad6d - std::io::Write::write_fmt::h88f642fc161ea70b
   3:     0x55929d50f493 - std::sys::backtrace::BacktraceLock::print::hdc1d1cbac2d2f5bf
   4:     0x55929d52677c - std::panicking::default_hook::{{closure}}::h324e042fbf76f6d6
   5:     0x55929d52665c - std::panicking::default_hook::h5897f072e00526e4
   6:     0x55929d5269e1 - std::panicking::panic_with_hook::hf5deea2fc5d79056
   7:     0x55929d51012a - std::panicking::panic_handler::{{closure}}::h3678cfe4e749a213
   8:     0x55929d50f5a9 - std::sys::backtrace::__rust_end_short_backtrace::hf98377857d9e9cf7
   9:     0x55929d52263d - __rustc[bd3b3f48d2381c32]::rust_begin_unwind
  10:     0x55929cf49770 - core::panicking::panic_fmt::hf6e3d461535f5ca9
  11:     0x55929cf48fbb - core::option::expect_failed::hda83b9e0707f03cf
  12:     0x55929d4ee1b5 - xkbcommon_dl::x11::xkbcommon_x11_handle::h1000dd73e4484912
  13:     0x55929d3c201e - std::sync::poison::once::Once::call_once_force::{{closure}}::hd84e4eaeace29c31
  14:     0x55929cf47b57 - std::sys::sync::once::futex::Once::call::h9be16745670eaae0
  15:     0x55929cf3ed7a - std::sync::once_lock::OnceLock<T>::initialize::he92268a76b112d1e
  16:     0x55929d3e00b6 - winit::platform_impl::linux::common::xkb::Context::from_x11_xkb::h52cb990152527ad3
  17:     0x55929d046f81 - winit::platform_impl::linux::x11::EventLoop<T>::new::h40ee62f5103bd1a3
  18:     0x55929cfef7ee - stremio_linux_shell::main::h083c688c6507456d
  19:     0x55929d07dfb6 - std::sys::backtrace::__rust_begin_short_backtrace::he9fba5b30dd33739
  20:     0x55929d07d75c - std::rt::lang_start::{{closure}}::hb7bb3586e361d47c
  21:     0x55929d523b35 - std::rt::lang_start_internal::h1536f6da427acac8
  22:     0x55929d002cdd - main
  23:     0x7f7af082a4c5 - __libc_start_call_main
  24:     0x7f7af082a578 - __libc_start_main_alias_1
  25:     0x55929cf498b5 - _start
  26:                0x0 - <unknown>

@thunze thunze force-pushed the stremio-linux-shell branch from a6be976 to e7fb8c7 Compare January 14, 2026 19:35
@thunze
Copy link
Member Author

thunze commented Jan 14, 2026

⋉ RUST_BACKTRACE=full stremio
2026-01-14T19:22:15.251076Z  INFO xkbcommon_dl: Failed loading `libxkbcommon-x11.so.0`. Error: CantOpen(DlOpen { desc: "libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory" })    
2026-01-14T19:22:15.251118Z  INFO xkbcommon_dl: Failed loading `libxkbcommon-x11.so`. Error: CantOpen(DlOpen { desc: "libxkbcommon-x11.so: cannot open shared object file: No such file or directory" })

Does this still happen with e7fb8c7 or the change described in #468728 (comment)?

@MarkRijckenberg
Copy link

MarkRijckenberg commented Jan 14, 2026

@thunze
e7fb8c7
is an improvement.
Stremio started up correctly. Now I have another issue in this version of stremio that did not exist in the nixpkgs version ( https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/st/stremio/package.nix ) (before the switch to cef-binary ). I cannot log into Facebook via Stremio. I click on "continue with facebook" and then it keeps displaying "authenticating". Here is the new log output:


⋉ RUST_BACKTRACE=full stremio
2026-01-14T19:46:16.546929Z  INFO winit::platform_impl::linux::x11::window: Guessed window scale factor: 2
(node:22242) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:22242) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
(node:22242) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
(node:22242) [DEP0176] DeprecationWarning: fs.X_OK is deprecated, use fs.constants.X_OK instead
(node:22242) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
Failed to convert IpcEvent to IpcMessageRequest: Unknown method
(node:22242) [DEP0044] DeprecationWarning: The `util.isArray` API is deprecated. Please use `Array.isArray()` instead.
Error: stream ended
    at Socket.onFinished (/nix/store/4hm2gpaq5m36a7wbdg418j7qh3r14wa8-stremio-linux-shell-1.0.0-beta.13/bin/server.js:81013:145)
    at AsyncResource.runInAsyncScope (node:async_hooks:214:14)
    at Socket.<anonymous> (node:internal/streams/end-of-stream:61:21)
    at Socket.<anonymous> (node:internal/util:585:20)
    at Socket.onfinish (node:internal/streams/end-of-stream:125:16)
    at Socket.emit (node:events:508:28)
    at Socket.emit (node:domain:489:12)
    at finish (node:internal/streams/writable:953:10)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
Error: stream ended
    at Socket.onFinished (/nix/store/4hm2gpaq5m36a7wbdg418j7qh3r14wa8-stremio-linux-shell-1.0.0-beta.13/bin/server.js:81013:145)
    at AsyncResource.runInAsyncScope (node:async_hooks:214:14)
    at Socket.<anonymous> (node:internal/streams/end-of-stream:61:21)
    at Socket.<anonymous> (node:internal/util:585:20)
    at Socket.onfinish (node:internal/streams/end-of-stream:125:16)
    at Socket.emit (node:events:508:28)
    at Socket.emit (node:domain:489:12)
    at finish (node:internal/streams/writable:953:10)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
[22240:22294:0114/204619.045260:ERROR:google_apis/gcm/engine/registration_request.cc:291] Registration response error message: DEPRECATED_ENDPOINT
[22240:22294:0114/204645.535479:ERROR:google_apis/gcm/engine/registration_request.cc:291] Registration response error message: QUOTA_EXCEEDED
Warning: Couldn't get proc vkCmdBeginDebugUtilsLabelEXT
    at LoadInstanceProcs (../../third_party/dawn/src/dawn/native/vulkan/VulkanFunctions.cpp:142)

[23076:23076:0114/204916.890407:ERROR:services/on_device_model/ml/gpu_blocklist.cc:120] Unable to get gpu adapter
[22240:22289:0114/204916.890494:ERROR:services/on_device_model/public/cpp/service_client.cc:36] Unexpected on_device_model service disconnect: The device's GPU is not supported.

@MarkRijckenberg
Copy link

Well, I spoke of success too soon. I successfully launched stremio twice. Third time my PC crashed again. So still unresolved, unfortunately.....

@SrTobi
Copy link
Contributor

SrTobi commented Jan 15, 2026

I can't reproduce this locally, unfortunately, but I've now patched the paths to libxkbcommon.so.0 and libxkbcommon-x11.so.0 in e7fb8c7. Could you check if that works, too?

Checked with the new version, and seems to work 👍

@SrTobi
Copy link
Contributor

SrTobi commented Jan 15, 2026

This is the output without the libxkbcommon changes, btw:

2026-01-15T16:23:09.925860Z  WARN winit::platform_impl::linux::x11::xdisplay: error setting XSETTINGS; Xft options won't reload automatically
2026-01-15T16:23:09.926587Z  INFO xkbcommon_dl: Failed loading `libxkbcommon-x11.so.0`. Error: CantOpen(DlOpen { desc: "libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory" })    
2026-01-15T16:23:09.926626Z  INFO xkbcommon_dl: Failed loading `libxkbcommon-x11.so`. Error: CantOpen(DlOpen { desc: "libxkbcommon-x11.so: cannot open shared object file: No such file or directory" })    

thread 'main' (120406) panicked at /build/stremio-linux-shell-1.0.0-beta.13-vendor/xkbcommon-dl-0.4.2/src/x11.rs:59:28:
Library libxkbcommon-x11.so could not be loaded.
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

(maybe it's a X vs Wayland problem? I am using X)

@LordGrimmauld
Copy link
Contributor

I am currently planning to drop qt5 webengine in #480196. I didn't see there was a PR for the new linux client open already. Feel free to request my review once upstream decides which technologies to use and i can review the nix aspects of the PR. I don't feel confident testing stremio itself, but if a review here is what it takes to move forward with the qt5 webengine removal, so be it.

@thunze
Copy link
Member Author

thunze commented Feb 11, 2026

Feel free to request my review once upstream decides which technologies to use and i can review the nix aspects of the PR.

Thanks, will do! Upstream hasn't really changed much since I opened the PR (at least on main), so I think we should be fine moving forward with this PR. I'll probably do another rebase on master today, update the description, give the binary another whirl, then we should be good to go!

@thunze thunze force-pushed the stremio-linux-shell branch from e7fb8c7 to 9c59c5f Compare February 11, 2026 10:41
@thunze thunze force-pushed the stremio-linux-shell branch 2 times, most recently from 8bdfe15 to 7b39701 Compare February 11, 2026 12:58
@thunze thunze force-pushed the stremio-linux-shell branch from 7b39701 to f06f7b6 Compare February 11, 2026 13:12
@thunze thunze marked this pull request as ready for review February 11, 2026 13:13
@thunze thunze mentioned this pull request Feb 11, 2026
13 tasks
@thunze

This comment was marked as outdated.

@thunze thunze requested a review from LordGrimmauld February 11, 2026 13:42
@thunze thunze force-pushed the stremio-linux-shell branch 3 times, most recently from c5b6403 to 3994a25 Compare February 20, 2026 20:19
@thunze thunze added the backport release-25.11 Backport PR automatically label Feb 20, 2026
@thunze thunze force-pushed the stremio-linux-shell branch from 3994a25 to 8a0debe Compare February 20, 2026 20:29
@thunze thunze requested a review from LordGrimmauld February 20, 2026 20:35
@MarkRijckenberg
Copy link

MarkRijckenberg commented Feb 20, 2026

I have tested the following version ([stremio-linux-shell: init at 1.0.0-beta.13]. However, just like my previous experience on January 14 (see my comment above) launching this newer version of stremio still causes my PC to crash. I am then forced to reboot my PC to get back into NixOS unstable. I am referring to 8a0debe

And here is the output of RUST_BACKTRACE=full stremio when I get lucky and my PC does not crash:

⋉ RUST_BACKTRACE=full stremio 2026-02-20T20:51:45.294891Z INFO winit::platform_impl::linux::x11::window: Guessed window scale factor: 2 (node:348623) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buf. (Use node --trace-deprecation ...to show where the warning was created) (node:348623) [DEP0169] DeprecationWarning:url.parse()behavior is not standardized and prone to errors that have security implications.. (node:348623) [DEP0060] DeprecationWarning: Theutil._extendAPI is deprecated. Please use Object.assign() instead. (node:348623) [DEP0176] DeprecationWarning: fs.X_OK is deprecated, use fs.constants.X_OK instead (node:348623) [DEP0040] DeprecationWarning: Thepunycode module is deprecated. Please use a userland alternative instead. Failed to convert IpcEvent to IpcMessageRequest: Unknown method [348621:348676:0220/215150.160745:ERROR:google_apis/gcm/engine/mcs_client.cc:700] Error code: 401 Error message: Authentication Failed: t [348621:348676:0220/215150.160758:ERROR:google_apis/gcm/engine/mcs_client.cc:702] Failed to log in to GCM, resetting connection. [348621:348676:0220/215150.551767:ERROR:google_apis/gcm/engine/registration_request.cc:292] Registration response error message: DEPRECATEDT

@thunze
Copy link
Member Author

thunze commented Feb 20, 2026

I have tested the following version ([stremio-linux-shell: init at 1.0.0-beta.13]. However, just like my previous experience on January 14 (see my comment above) launching this newer version of stremio still causes my PC to crash. I am then forced to reboot my PC to get back into NixOS unstable. I am referring to 8a0debe

And here is the output of RUST_BACKTRACE=full stremio when I get lucky and my PC does not crash:

Sorry, I'm unable to reproduce this and there's nothing in the provided logs that indicates a packaging issue that could cause the problem you're experiencing. (In fact, I've seen all of these log lines on my end as well.)

If this is a system-level crash, please provide kernel logs (journalctl -b -1) and steps to reliably reproduce it. A minimal reproducible example (e.g., a minimal NixOS config that reproduces the issue) would be ideal.

Without a reproducible case or crash logs, I'm afraid there isn’t anything actionable here.

@vejeta
Copy link

vejeta commented Feb 20, 2026

I packaged this for Debian, and I had to introduce several patches, I don't know exactly what is the cause in your case, but might be one of the patches that I had to make can give you a clue: https://salsa.debian.org/mendezr/stremio-gtk/-/tree/master/debian/patches?ref_type=heads

@fxzzi
Copy link
Contributor

fxzzi commented Feb 21, 2026

wow that's a lot of patches, surely at least some of those should be upstream?

@vejeta
Copy link

vejeta commented Feb 21, 2026

wow that's a lot of patches, surely at least some of those should be upstream?

Good point. I shall go over them and see if the more critical gets accepted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

8.has: package (new) This PR adds a new package 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. backport release-25.11 Backport PR automatically

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build failure: stremio

7 participants