SteamOs Devkit Client on MacOS (Apple Silicon)
Steps to reproduce
- Download Git Repo
- Follow instructions for linux (Use python 3.10 - 3.11)
- opt. Install rsync if not already (via brew)
- start ./devkit-gui.py
- try to register SteamDeck
Environment
- Python 3.11.10
- Using pyimgui 2.0.0
- Using imgui 1.82
- Using SDL2 2.30.10
Expected result
- The registration completes
Actual result
The registration fails as the client tries to mixup the windows permissions first
Blank:
Traceback (most recent call last):
File "/Users/X/steamos-devkit/client/devkit_client/gui2/gui2.py", line 962, in draw
self._result = self.task_future.result()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.11/3.11.10/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.11/3.11.10/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/opt/homebrew/Cellar/python@3.11/3.11.10/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/X/steamos-devkit/client/devkit_client/gui2/gui2.py", line 177, in _register
return devkit_client.register(RegisterArgs(devkit))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/X/testos/steamos-devkit/client/devkit_client/_init_.py", line 960, in register
key, _, _ = ensure_devkit_key()
^^^^^^^^^^^^^^^^^^^
File "/Users/X/steamos-devkit/client/devkit_client/_init_.py", line 594, in ensure_devkit_key
_fix_key_permissions(key_path, pubkey_path)
File "/Users/X/steamos-devkit/client/devkit_client/_init_.py", line 552, in _fix_key_permissions
cp = subprocess.run(
^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.11/3.11.10/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py", line 548, in run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.11/3.11.10/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py", line 1026, in _init_
self._execute_child(args, executable, preexec_fn, close_fds,
File "/opt/homebrew/Cellar/python@3.11/3.11.10/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py", line 1955, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'icacls.exe'
Steps to overcome the issue
Not relying on
if platform.system() == 'Linux':
to use command line tools in
_fix_key_permissions
where elsewhere the checks rely on "Windows"
The client works like charms afterwards