mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 05:00:09 +01:00
meson, install_megadrivers: Also remove stale symlinks
os.path.exists doesn't return True for stale symlinks, but they are in the way later, when a link/file with the same name is to be created. For instance it is conceivable that the pointed to file is replaced by a file with a new name, and then the symlink is dead. To handle this check specifically for all existing symlinks to be removed. (This bugged me for some time with a link libXvMCr600.so always being in the way of installing this file) v2: use only os.lexist and replace all instances of os.exist (Dylan Baker) v3: handle directory check correctly (Eric Engestrom) Fixes:f7f1b30f81("meson: extend install_megadrivers script to handle symmlinking") Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>(v2 minus dir check) Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Signed-off-by: Gert Wollny <gert.wollny@collabora.com> (cherry picked from commit7a46b2d641) Conflicts resolved by Dylan Conflicts: bin/install_megadrivers.py
This commit is contained in:
parent
3ca69de0c4
commit
3e0dbfde91
1 changed files with 4 additions and 2 deletions
|
|
@ -43,13 +43,15 @@ def main():
|
|||
master = os.path.join(to, os.path.basename(args.megadriver))
|
||||
|
||||
if not os.path.exists(to):
|
||||
if os.path.lexists(to):
|
||||
os.unlink(to)
|
||||
os.makedirs(to)
|
||||
shutil.copy(args.megadriver, master)
|
||||
|
||||
for each in args.drivers:
|
||||
driver = os.path.join(to, each)
|
||||
|
||||
if os.path.exists(driver):
|
||||
if os.path.lexists(driver):
|
||||
os.unlink(driver)
|
||||
print('installing {} to {}'.format(args.megadriver, driver))
|
||||
os.link(master, driver)
|
||||
|
|
@ -60,7 +62,7 @@ def main():
|
|||
|
||||
name, ext = os.path.splitext(each)
|
||||
while ext != '.so':
|
||||
if os.path.exists(name):
|
||||
if os.path.lexists(name):
|
||||
os.unlink(name)
|
||||
os.symlink(each, name)
|
||||
name, ext = os.path.splitext(name)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue