scripts: Make git intercept global

The previous minimially invasive git intercept simply isn't enough. For example,
meson used in the igt-gpu-tools recipe hardcodes the path to git in the configure
step so at install time, changing PATH has no effect.

There are lots of interesting things we could do to try and avoid problems but
making the git intercept and dropping fakeroot privs for git global is probably
the least worst solution at this point. It will add slight overhead to git calls
but we don't make many so the overall impact is likely minimal.

(From OE-Core rev: af27c81eaf68ee681dcd9456a74cca6a9ab40bf6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2022-05-06 16:56:02 +01:00
parent 057bd9b772
commit 4d7383aefb

19
scripts/git Executable file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env python3
#
# Wrapper around 'git' that doesn't think we are root
import os
import shutil
import sys
os.environ['PSEUDO_UNLOAD'] = '1'
# calculate path to the real 'git'
path = os.environ['PATH']
path = path.replace(os.path.dirname(sys.argv[0]), '')
real_git = shutil.which('git', path=path)
if len(sys.argv) == 1:
os.execl(real_git, 'git')
os.execv(real_git, sys.argv)