mirror of
https://github.com/lucannez64/darling-lol.git
synced 2026-10-26 19:47:42 +00:00
Fix runtime safety, Xorg mouse synchronization and fullscreen startup
This commit is contained in:
1 parent
204dd6c5ad
commit
3db7115c93
33 files changed
+1200
-471
No files matched your search
+5
-2
@@ -12,9 +12,12 @@ python3 scripts/prepare.py
|
||||
# darling-lol perf: inject -O3 and -march=native even with empty build type,
|
||||
# so the base Darling runtime is not compiled at -O0. The empty build type
|
||||
# is required by objc4's debug-ness macro check.
|
||||
# -mtune=generic, not native: clang 23 tuning for AMD Zen (znver*) passes the thread-local
|
||||
# variable descriptor in the wrong register on Darwin targets, so every __thread access
|
||||
# returns NULL (launchd crashed in libkqueue's epoll_event_dump).
|
||||
cmake -S build/darling-src -B build/darling-src/build -G 'Unix Makefiles' \
|
||||
-DCMAKE_BUILD_TYPE= -DTARGET_i386=OFF -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_METAL=ON \
|
||||
-DCMAKE_C_FLAGS="-O3 -march=native -mtune=native -pipe" \
|
||||
-DCMAKE_CXX_FLAGS="-O3 -march=native -mtune=native -pipe"
|
||||
-DCMAKE_C_FLAGS="-O3 -march=native -mtune=generic -pipe" \
|
||||
-DCMAKE_CXX_FLAGS="-O3 -march=native -mtune=generic -pipe"
|
||||
cmake --build build/darling-src/build --parallel "${JOBS:-$(nproc)}"
|
||||
echo 'Build complete. Install the base runtime with: sudo cmake --install build/darling-src/build'
|
||||
@@ -5,6 +5,8 @@ repo=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
||||
cd "$repo"
|
||||
python3 scripts/configure.py
|
||||
if [ -d build/venv/bin ]; then PATH="$repo/build/venv/bin:$PATH"; export PATH; fi
|
||||
# A server killed by the base install leaves a stale .init.pid that makes darling shell fail.
|
||||
python3 build/runtime/tools/ensure-darling-runtime.py
|
||||
# Initialize the normal user-owned prefix before installing overrides.
|
||||
darling shell /usr/bin/true
|
||||
# The prefix has no /private/tmp of its own, so the guest falls through to the root-owned
|
||||
@@ -20,7 +22,7 @@ if [ -f build/runtime/tools/build-riot-libs-runtime.sh ]; then
|
||||
python3 build/runtime/tools/install-riot-libs-runtime.py
|
||||
fi
|
||||
python3 build/runtime/tools/install-darling-system-profiler.py
|
||||
# darling-lol: install GNOME application launcher and icon.
|
||||
if [ -f build/runtime/tools/riot-desktop-entry.py ]; then
|
||||
python3 build/runtime/tools/riot-desktop-entry.py || true
|
||||
fi
|
||||
# Every guest process loads these overlays; refuse a set the compiler broke (check-darwin-tlv-calls.py).
|
||||
find "$HOME/.darling/Users/$(id -un)/RuntimeLibraries" "$HOME/.darling/Users/$(id -un)/RuntimeFrameworks" \
|
||||
-type f ! -name '*.before-*' ! -name '*.rt-*' ! -name '*.llvm*' -size +4k -print0 |
|
||||
xargs -0 python3 build/runtime/tools/check-darwin-tlv-calls.py
|
||||
@@ -20,5 +20,4 @@ if [ ! -d "$prefix/Users/Shared/Riot Games/Riot Client.app/Contents/MacOS" ]; th
|
||||
echo "$prefix/Users/<guest user>/Library/Logs/Riot Games/Install League of Legends $region/Launcher" >&2
|
||||
exit 1
|
||||
fi
|
||||
python3 build/runtime/tools/riot-desktop-entry.py || true
|
||||
exec sh scripts/run.sh
|
||||
+5
-1
@@ -6,7 +6,7 @@ from common import ROOT
|
||||
subprocess.run([sys.executable,str(ROOT/'scripts/configure.py')],check=True)
|
||||
try:
|
||||
files=subprocess.check_output(['git','-C',str(ROOT),'ls-files','-z'],stderr=subprocess.DEVNULL).decode().split('\0')
|
||||
except Exception:
|
||||
except (OSError, subprocess.CalledProcessError):
|
||||
files=[str(p.relative_to(ROOT)) for p in ROOT.rglob('*') if p.is_file() and not any(part.startswith('.') or part in ['build','__pycache__'] for part in p.relative_to(ROOT).parts)]
|
||||
errors=[]
|
||||
secret_patterns=[r'gh[pousr]_[A-Za-z0-9]{30,}',r'AKIA[0-9A-Z]{16}',r'eyJ[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}',r'-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----']
|
||||
@@ -31,6 +31,10 @@ manifest=json.loads((ROOT/'upstream/manifest.json').read_text())
|
||||
for c in manifest['components']:
|
||||
if not re.fullmatch('[0-9a-f]{40}',c['revision']):errors.append(c['path']+': invalid pinned revision')
|
||||
if not (ROOT/c['patch']).is_file():errors.append(c['path']+': patch missing')
|
||||
else:
|
||||
parsed=subprocess.run(['git','apply','--numstat','-'],input=(ROOT/c['patch']).read_text(),
|
||||
text=True,capture_output=True)
|
||||
if parsed.returncode:errors.append(c['patch']+': '+parsed.stderr.strip())
|
||||
if errors:
|
||||
print('\n'.join(errors));raise SystemExit(1)
|
||||
print('PASS: tracked source audit, rendered Python/shell syntax and',len(manifest['components']),'pinned patch entries')
|
||||
Reference in new issue
Block a user