From 4008b7ddb8aa9f7310548c0493fad30aef7516d5 Mon Sep 17 00:00:00 2001 From: Andrew Eikum Date: Thu, 25 Mar 2021 13:14:33 -0500 Subject: [PATCH] Don't ship filenames with colons in them --- default_pfx.py | 9 +++++++++ proton | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/default_pfx.py b/default_pfx.py index db413d41..8a721a22 100755 --- a/default_pfx.py +++ b/default_pfx.py @@ -73,6 +73,14 @@ def setup_dll_symlinks(default_pfx_dir, dist_dir): os.unlink(filename) make_relative_symlink(target, filename) +#steampipe can't handle filenames with colons, so we remove them here +#and restore them in the proton script +def fixup_drive_links(default_pfx_dir): + for walk_dir, dirs, files in os.walk(os.path.join(default_pfx_dir, "dosdevices")): + for dir_ in dirs: + if ":" in dir_: + os.remove(os.path.join(walk_dir, dir_)) + def make_default_pfx(default_pfx_dir, dist_dir, runtime): local_env = dict(os.environ) @@ -96,6 +104,7 @@ def make_default_pfx(default_pfx_dir, dist_dir, runtime): env=local_env, check=True) setup_dll_symlinks(default_pfx_dir, dist_dir) + fixup_drive_links(default_pfx_dir) if __name__ == '__main__': import sys diff --git a/proton b/proton index e3625b90..0d9cbe30 100755 --- a/proton +++ b/proton @@ -634,6 +634,12 @@ class CompatData: self.migrate_user_paths() + if not os.path.lexists(self.prefix_dir + "/dosdevices/c:"): + os.symlink("../drive_c", self.prefix_dir + "/dosdevices/c:") + + if not os.path.lexists(self.prefix_dir + "/dosdevices/z:"): + os.symlink("/", self.prefix_dir + "/dosdevices/z:") + # collect configuration info steamdir = os.environ["STEAM_COMPAT_CLIENT_INSTALL_PATH"]