Compare commits

..

11 Commits

Author SHA1 Message Date
Party Wumpus 2ba9bce3de Make the updater work properly on SELinux (#518)
* Add DECKY_SELINUX env var

* if on selinux make binary executable with chcon

* No need to recursively change one file
2023-07-29 09:05:39 +01:00
Marco Rodolfi d4a76da78c [Need Testing] Actually fix sqlite 3 issues (#515)
* Properly fix sqlite issues

* Revert python downgrade

* Horrible hack to update SQLite to the latest version in the Ubuntu VMs

* Cleanup build script

* Fix yaml formatting

* Fix typos

* Use sudo for installing binary

* Fix library path

* Wrong naming

* Wrong name again

* Small stylisting fixes

* Missed a space
2023-07-27 18:47:46 +02:00
Beebles c7e4eb1b3f Add Custom TitleView (#512)
* feat(titleView): Add Custom TitleView support

* fix: wrap TitleView in Focusable

* fix: remove root div on TitleView
2023-07-27 14:58:21 +01:00
Marco Rodolfi 5460f95eac Latest builds of Python 3.10 already uses newer version of the SQLite library
According to the changelog, the latest version that uses > 3.37 is Python 3.10.9, so switch back to an older version of it until Ubuntu pick up more recent versions of SQLite
2023-07-27 09:50:22 +02:00
Marco Rodolfi 3ae4ceb431 Switch back to Python 3.10 in order to avoid library dependency hell 2023-07-27 09:38:32 +02:00
Marco Rodolfi 7a725935fc Slightly downgrade to 22.10 2023-07-27 09:33:14 +02:00
Marco Rodolfi 9437d7ed99 Bump it again to 23.04 2023-07-27 09:29:45 +02:00
Marco Rodolfi 34cf24f7c0 Update ubuntu image to fix sqlite missing function 2023-07-27 09:20:40 +02:00
Marco Rodolfi 5a9959f70f Properly fix sqlite issues (#514) 2023-07-26 14:54:21 -07:00
Party Wumpus 96069d3299 change issue dicord link to decky.xyz/discord 2023-07-26 14:10:28 +01:00
Party Wumpus b4c90683aa typo in bug report template 2023-07-26 14:09:05 +01:00
7 changed files with 35 additions and 11 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ body:
- label: I have searched existing issues
- label: This issue is not a duplicate of an existing one
- label: I have checked the [common issues section in the readme file](https://github.com/SteamDeckHomebrew/decky-loader#-common-issues)
- label: I have attached logs to this bug report (failure to include logs will mean your issue will not be responded too).
- label: I have attached logs to this bug report (failure to include logs will mean your issue may not be responded to).
- type: textarea
attributes:
+1 -1
View File
@@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Steam Deck Homebrew Discord Server
url: https://discord.gg/ZU74G2NJzk
url: https://decky.xyz/discord
about: Please ask and answer questions here.
+21 -4
View File
@@ -31,7 +31,7 @@ permissions:
jobs:
build:
name: Build PluginLoader
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Print input
@@ -51,7 +51,24 @@ jobs:
uses: actions/setup-python@v4
with:
python-version: "3.11.4"
- name: Upgrade SQLite 3 binary version to 3.42.0 🧑‍💻
run: >
cd /tmp &&
wget "https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz" &&
tar -xvzf sqlite-autoconf-3420000.tar.gz &&
cd /tmp/sqlite-autoconf-3420000 &&
./configure --prefix=/usr --disable-static CFLAGS="-g" CPPFLAGS="$CPPFLAGS -DSQLITE_ENABLE_COLUMN_METADATA=1 \
-DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_DBSTAT_VTAB=1 -DSQLITE_ENABLE_FTS3_TOKENIZER=1 \
-DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_STMTVTAB -DSQLITE_MAX_VARIABLE_NUMBER=250000 \
-DSQLITE_MAX_EXPR_DEPTH=10000 -DSQLITE_ENABLE_MATH_FUNCTIONS" &&
make &&
sudo make install &&
sudo cp /usr/lib/libsqlite3.so /usr/lib/x86_64-linux-gnu/ &&
sudo cp /usr/lib/libsqlite3.so.0 /usr/lib/x86_64-linux-gnu/ &&
sudo cp /usr/lib/libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/ &&
rm -r /tmp/sqlite-autoconf-3420000
- name: Install Python dependencies ⬇️
run: |
python -m pip install --upgrade pip
@@ -69,7 +86,7 @@ jobs:
run: pnpm run build
- name: Build Python Backend 🛠️
run: pyinstaller --noconfirm --onefile --name "PluginLoader" --add-data ./backend/static:/static --add-data ./backend/locales:/locales --add-data ./backend/legacy:/legacy --add-data ./plugin:/plugin ./backend/*.py
run: pyinstaller --noconfirm --onefile --name "PluginLoader" --add-data ./backend/static:/static --add-data ./backend/locales:/locales --add-data ./backend/legacy:/legacy --add-data ./plugin:/plugin --hidden-import=sqlite3 ./backend/*.py
- name: Upload package artifact ⬆️
if: ${{ !env.ACT }}
@@ -119,7 +136,7 @@ jobs:
run: pnpm run build
- name: Build Python Backend 🛠️
run: pyinstaller --noconfirm --onefile --name "PluginLoader" --add-data "./backend/static;/static" --add-data "./backend/locales;/locales" --add-data "./backend/legacy;/legacy" --add-data "./plugin;/plugin" ./backend/main.py
run: pyinstaller --noconfirm --onefile --name "PluginLoader" --add-data "./backend/static;/static" --add-data "./backend/locales;/locales" --add-data "./backend/legacy;/legacy" --add-data "./plugin;/plugin" --hidden-import=sqlite3 ./backend/main.py
- name: Upload package artifact ⬆️
uses: actions/upload-artifact@v3
+4 -1
View File
@@ -40,4 +40,7 @@ def get_keep_systemd_service() -> bool:
def get_log_level() -> int:
return {"CRITICAL": 50, "ERROR": 40, "WARNING": 30, "INFO": 20, "DEBUG": 10}[
os.getenv("LOG_LEVEL", "INFO")
]
]
def get_selinux() -> bool:
return os.getenv("DECKY_SELINUX", "0") == "1"
+4 -1
View File
@@ -6,7 +6,7 @@ from ensurepip import version
from json.decoder import JSONDecodeError
from logging import getLogger
from os import getcwd, path, remove
from localplatform import chmod, service_restart, ON_LINUX, get_keep_systemd_service
from localplatform import chmod, service_restart, ON_LINUX, get_keep_systemd_service, get_selinux
from aiohttp import ClientSession, web
@@ -208,6 +208,9 @@ class Updater:
remove(path.join(getcwd(), download_filename))
shutil.move(path.join(getcwd(), download_temp_filename), path.join(getcwd(), download_filename))
chmod(path.join(getcwd(), download_filename), 777, False)
if get_selinux():
from subprocess import call
call(["chcon", "-t", "bin_t", path.join(getcwd(), download_filename)])
logger.info("Updated loader installation.")
await tab.evaluate_js("window.DeckyUpdater.finish()", False, False)
+3 -3
View File
@@ -49,15 +49,15 @@ const TitleView: VFC = () => {
}
return (
<div className={staticClasses.Title} style={titleStyles}>
<Focusable className={staticClasses.Title} style={titleStyles}>
<DialogButton
style={{ height: '28px', width: '40px', minWidth: 0, padding: '10px 12px' }}
onClick={closeActivePlugin}
>
<FaArrowLeft style={{ marginTop: '-4px', display: 'block' }} />
</DialogButton>
<div style={{ flex: 0.9 }}>{activePlugin.name}</div>
</div>
{activePlugin?.titleView || <div style={{ flex: 0.9 }}>{activePlugin.name}</div>}
</Focusable>
);
};
+1
View File
@@ -5,6 +5,7 @@ export interface Plugin {
content?: JSX.Element;
onDismount?(): void;
alwaysRender?: boolean;
titleView?: JSX.Element;
}
export enum InstallType {