1f8da027dd
By default, Windows doesn't allow to create soft links for user account and only administrator is allowed to do this. To fix this problem you have to raise your permissions or enable Developer Mode, which available since Windows 10. Additional explanation when build fails will allow developer to fix the problem on his computer faster. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1386 Signed-off-by: Mateusz Krawczuk <mat.krawczuk@gmail.com> Message-Id: <20230504211101.1386-1-mat.krawczuk@gmail.com> [thuth: Drop the hunk with the white space changes] Signed-off-by: Thomas Huth <thuth@redhat.com>
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
|
|
from pathlib import PurePath
|
|
import errno
|
|
import json
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
def destdir_join(d1: str, d2: str) -> str:
|
|
if not d1:
|
|
return d2
|
|
# c:\destdir + c:\prefix must produce c:\destdir\prefix
|
|
return str(PurePath(d1, *PurePath(d2).parts[1:]))
|
|
|
|
introspect = os.environ.get('MESONINTROSPECT')
|
|
out = subprocess.run([*introspect.split(' '), '--installed'],
|
|
stdout=subprocess.PIPE, check=True).stdout
|
|
for source, dest in json.loads(out).items():
|
|
bundle_dest = destdir_join('qemu-bundle', dest)
|
|
path = os.path.dirname(bundle_dest)
|
|
try:
|
|
os.makedirs(path, exist_ok=True)
|
|
except BaseException as e:
|
|
print(f'error making directory {path}', file=sys.stderr)
|
|
raise e
|
|
try:
|
|
os.symlink(source, bundle_dest)
|
|
except BaseException as e:
|
|
if not isinstance(e, OSError) or e.errno != errno.EEXIST:
|
|
if os.name == 'nt':
|
|
print('Please enable Developer Mode to support soft link '
|
|
'without Administrator permission')
|
|
print(f'error making symbolic link {dest}', file=sys.stderr)
|
|
raise e
|