Fix runtime safety, Xorg mouse synchronization and fullscreen startup

This commit is contained in:
lucannez64 committed 2026-10-17 00:25:34 +02:00
1 parent 204dd6c5ad
commit 3db7115c93
33 files changed
+1200 -471

No files matched your search

+5 -2
View File
@@ -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'
+6 -4
View File
@@ -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
-1
View File
@@ -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
View File
@@ -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')