Don't ship filenames with colons in them

CW-Bug-Id: #22054
This commit is contained in:
Andrew Eikum 2021-03-25 13:14:33 -05:00 committed by Arkadiusz Hiler
parent ccb1c5a413
commit 576a839c18
2 changed files with 15 additions and 0 deletions

View File

@ -109,6 +109,14 @@ def filter_registry(filename):
os.rename(filename + '.tmp', 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):
local_env = dict(os.environ)
@ -125,6 +133,7 @@ def make_default_pfx(default_pfx_dir, dist_dir):
env=local_env, check=True)
setup_dll_symlinks(default_pfx_dir, dist_dir)
fixup_drive_links(default_pfx_dir)
filter_registry(os.path.join(default_pfx_dir, 'user.reg'))
filter_registry(os.path.join(default_pfx_dir, 'system.reg'))

6
proton
View File

@ -783,6 +783,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"]