Don't ship filenames with colons in them

This commit is contained in:
Andrew Eikum 2021-03-25 13:14:33 -05:00 committed by Arkadiusz Hiler
parent 75d37ae901
commit 4008b7ddb8
2 changed files with 15 additions and 0 deletions

View File

@ -73,6 +73,14 @@ def setup_dll_symlinks(default_pfx_dir, dist_dir):
os.unlink(filename) os.unlink(filename)
make_relative_symlink(target, 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): def make_default_pfx(default_pfx_dir, dist_dir, runtime):
local_env = dict(os.environ) local_env = dict(os.environ)
@ -96,6 +104,7 @@ def make_default_pfx(default_pfx_dir, dist_dir, runtime):
env=local_env, check=True) env=local_env, check=True)
setup_dll_symlinks(default_pfx_dir, dist_dir) setup_dll_symlinks(default_pfx_dir, dist_dir)
fixup_drive_links(default_pfx_dir)
if __name__ == '__main__': if __name__ == '__main__':
import sys import sys

6
proton
View File

@ -634,6 +634,12 @@ class CompatData:
self.migrate_user_paths() 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 # collect configuration info
steamdir = os.environ["STEAM_COMPAT_CLIENT_INSTALL_PATH"] steamdir = os.environ["STEAM_COMPAT_CLIENT_INSTALL_PATH"]