Add decky-loader and nodejs#2802
Conversation
We need Node on the host to build decky-loader's frontend. This package supports building for target anyways though! Signed-off-by: Gianni Spadoni <me@gio.blue>
Needed for decky-loader.
Our Python3 build was stripped down, we can relax that a bit now
Target build size didn't go up in my testing.
Notably, the below line has been removed from post_makeinstall_target
`python_compile ${PKG_INSTALL_PATH_LIB}`
With the new configure options, this was breaking the install and
causing a FS codec error, need to look into this
Signed-off-by: Gianni Spadoni <me@gio.blue>
Adds decky-loader as a package. Stores plugins in "/storage/.config/decky-loader/plugins" Requires: nodejs:host (for frontend building) and Python3 (for the backend) Signed-off-by: Gianni Spadoni <me@gio.blue>
fd923ae to
c9f39da
Compare
|
Shouldn't this be a dependency of the Steam package? |
Compiles decky-loader when using the Steam package
|
Yes, added that now - not sure if it even got built on the pr-approval workflow because nothing depended on it, my bad |
|
Checked, is decky should appear in steam? |
|
Should show up in the quick access menu, can you check if |
|
I had a line in /usr/bin/decky-backend.sh that created that file automatically but it's gone now - it must've been lost during a rebase If Decky works for you after creating it, I can commit a fix and we can just skip the test builds (alternatively we can just add |
|
Ok, but now in decky general tab there is: "an error occured while rendering this content." and buttons: restart decky, steam or disable decky |
|
Decky needs to be updated from v3.2.3 -> v3.2.4 to handle the new Steam UI changes Worth mentioning that plugins would still work even if the plugin manager UI (from the quick access menu) isn't |
|
If this is a problem in the future and Steam UI changes break the Decky UI often before Rocknix stable releases then we can look into having Decky update itself on device (which should be pretty easy, as it's running with nodejs + python3) |
Fixes Steam UI issues Signed-off-by: Gianni Spadoni <me@gio.blue>
|
yes, update would be fine |
|
@gio3k please consider shipping our release builds (which i see you are adding arm64 support to) with our updater instead of packaging your own builds unless they can be automatically or quickly updated to match our releases, decky needs fast updates to keep up with steam and unless you can clearly disclaim that your builds are unofficial and unsupported we do not want the extra support burden of being put in third party distro packages with their own update schedules. |
|
also dont make your steam package depend on it, decky should be opt-in |
| PKG_VERSION="v22.22.3" | ||
| PKG_LICENSE="MIT" | ||
| PKG_SITE="https://github.com/nodejs/node" | ||
| PKG_URL="${PKG_SITE}/archive/refs/tags/${PKG_VERSION}.tar.gz" |
| # strip | ||
| chmod u+w ${INSTALL}/usr/lib/libpython*.so.* | ||
| debug_strip ${INSTALL}/usr | ||
| } No newline at end of file |
There was a problem hiding this comment.
Can you explain the changes to this package please as you have made a number of changes.
There was a problem hiding this comment.
The post_makeinstall_target step is the same, just with python_compile ${PKG_INSTALL_PATH_LIB} replaced with a delete pycaches step
I'm not sure why but the python_compile step was causing Python on the target to crash instantly with a FS codec error (when the host has these build support changes)
The PKG_CONFIGURE_OPTS_HOST is mostly the same, just adding back pyc-build and other stuff for building packages (host side)
I'm not sure why the configuration for the host side was so stripped down, I understand why the target would be though
| mkdir -p ${INSTALL}/usr/bin/ | ||
| cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin/ | ||
|
|
||
| chmod +x ${INSTALL}/usr/bin/* |
There was a problem hiding this comment.
not necessary if you have already made executable in your commit
|
@AAGaming00 Yeah I'd definitely rather use the official builds if we can get that ARM64 PR merged, I'll put this commit into draft for now If it doesn't get merged I can rework this package to clone the Decky repo on-device, wouldn't be too different to how we're doing it here anyways, we aren't using PyInstaller / poetry
Makes sense, the reason I'd like to have Decky preinstalled is because the ARM64 version of Steam is sorta broken when it comes to Proton, maybe you have some thoughts on this If you install Steam on Rocknix, it opens into a normal Steam Deck like experience at first The problem is that if you try to launch a game at this point, you're not using Proton 11 (arm64) which is the best experience in 95% of cases, you'll be using Proton completely through FEX (it doesn't sound like a huge difference but it is on these chips) The second problem is that if you change the compatibility tool manually to Proton 11 arm64, games just won't boot at all - you have to manually search and install Proton 11 arm64 and Steam Linux Runtime 4 arm64 This makes the Steam flow (if you want a good experience):
I wrote a small tool to fix this UX up - I'd like it to be install steam -> play games Screencast_20260528_170934.mp4I guess I could rewrite this tool to just run directly in Steam's devtools? Some of it could run through the devtools console directly (apart from the UI ofc), but maybe you have some recommendations for how I could approach this? |
|
@gio3k Maybe add installation of the latest Decky to the Steam installation script, and provide a separate Decky uninstall script for cases where Decky breaks after a Steam UI update. |
Adds the decky-loader and nodejs packages
Node is being used to build the frontend for decky-loader, so it's only used as a host package currently
It can be built for the target though
note: As this is mostly host side changes, I'm not sure if there are libs in my toolchain left from previous attempts... please build this first before merge!!
AI Usage
While ROCKNIX doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it
helps set the right context for reviewers.
Did you use AI tools to help write this code? NO