Build-information generation fails when building from a source archive
Author: schembriaidenCreated Sep 13, 2026Updated Sep 13, 2026
Summary
Building Ladybird from a GitHub source archive on NixOS fails because the source directory has no .git metadata.
This appears to be a regression from 9873644704b2b2061aeabeb761557e11407cb35b
Git is installed in the build environment. The failure occurs while generating BuildInformation.stamp:
fatal: not a git repository (or any of the parent directories): .git
File "/build/source/Meta/Generators/generate-build-information.py", line 149, in write_depfile
tracked_files = subprocess.check_output(["git", "-C", str(source), "ls-files", "-z"]).split(b"\0")
subprocess.CalledProcessError: Command '['git', '-C', '/build/source', 'ls-files', '-z']' returned non-zero exit status 128.
git_revision() already handles missing Git metadata, but the newly added write_depfile() does not.
With this patch file it works normally:
Source archives have no Git index to enumerate. Write an empty depfile in
that case; CMake still tracks the generator and build configuration itself.
Keep Git dependency tracking unchanged for checkouts, including worktrees.
--- a/Meta/Generators/generate-build-information.py
+++ b/Meta/Generators/generate-build-information.py
@@ -146,6 +146,10 @@
def write_depfile(source, output, target):
+ if not (source / ".git").exists():
+ output.write_text(f"{escape_depfile_path(target)}:\n")
+ return
+
tracked_files = subprocess.check_output(["git", "-C", str(source), "ls-files", "-z"]).split(b"\0")
dependencies = (
Operating system
Linux
Steps to reproduce
- Have a Nix system
- Try to build this PR
Expected behavior
Builds normally
Actual behavior
Errors because .git file is not found
URL for a reduced test case
N/A
HTML/SVG/etc. source for a reduced test case
N/A
Log output and (if possible) backtrace
[107/2956] Generating ../../Services/WasmCompiler/WasmCompilerServerEndpoint.h
[108/2956] Generating UIProcessClientEndpoint.h
[109/2956] Generating UIProcessServerEndpoint.h
[110/2956] Generating ../../Services/Compositor/CompositorControlServerEndpoint.h
[111/2956] Generating ../../Services/Compositor/CompositorFontServerEndpoint.h
[112/2956] Generating ../../Services/Compositor/CompositorControlClientEndpoint.h
[113/2956] Generating ../../Services/Compositor/CompositorFontClientEndpoint.h
[114/2956] Generating ../../Services/Compositor/CompositorWebContentClientEndpoint.h
[115/2956] Generating ../../Services/WebContent/WebContentClientEndpoint.h
[116/2956] Generating ../../Services/Compositor/CompositorWebContentServerEndpoint.h
[117/2956] Generating ../../Services/WebContent/WebContentServerEndpoint.h
[118/2956] Generating ../../Services/WebDriver/WebDriverBrowserServerEndpoint.h
[119/2956] Generating ../../Services/WebDriver/WebDriverBrowserClientEndpoint.h
[120/2956] Generating ../../Services/WebContent/WebUIClientEndpoint.h
[121/2956] Generating ../../Services/WebContent/WebUIServerEndpoint.h
[122/2956] Building CXX object Libraries/LibCrypto/CMakeFiles/LibCrypto.dir/PK/MLDSA.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[123/2956] Building CXX object Libraries/LibCrypto/CMakeFiles/LibCrypto.dir/PK/MLKEM.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[124/2956] Generating WebGLCommandReplayer.h, WebGLCommandReplayer.cpp
[125/2956] Generating BuildInformation.stamp
FAILED: [code=1] Libraries/LibWebView/BuildInformation.stamp Libraries/LibWebView/BuildInformation.h /build/source/build/Libraries/LibWebView/BuildInformation.stamp /build/source/build/Libraries/LibWebView/BuildInformation.h
cd /build/source/build/Libraries/LibWebView && /nix/store/b5bpi6zfajzzrwwpgba2q6li3nnya4bs-python3-3.14.7/bin/python3.14 /build/source/Meta/Generators/generate-build-information.py /build/source /build/source/build /build/source/build/Libraries/LibWebView/BuildInformation.h "GNU 15.3.0" --depfile /build/source/build/Libraries/LibWebView/BuildInformation.d --stamp /build/source/build/Libraries/LibWebView/BuildInformation.stamp && /nix/store/908kvhj55s5z7laavf4pddxrxl62rrgl-cmake-4.3.4/bin/cmake -E touch /build/source/build/Libraries/LibWebView/BuildInformation.stamp && /nix/store/908kvhj55s5z7laavf4pddxrxl62rrgl-cmake-4.3.4/bin/cmake -E cmake_transform_depfile Ninja gccdepfile /build/source /build/source/Libraries/LibWebView /build/source/build /build/source/build/Libraries/LibWebView /build/source/build/Libraries/LibWebView/BuildInformation.d /build/source/build/CMakeFiles/d/4f89284f1d92d2b8b762bf0c3d4705f38261af931d0da333258b4d768c94803a.d
fatal: not a git repository (or any of the parent directories): .git
Traceback (most recent call last):
File "/build/source/Meta/Generators/generate-build-information.py", line 185, in <module>
main()
~~~~^^
File "/build/source/Meta/Generators/generate-build-information.py", line 181, in main
write_depfile(source, args.depfile, args.stamp)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/build/source/Meta/Generators/generate-build-information.py", line 149, in write_depfile
tracked_files = subprocess.check_output(["git", "-C", str(source), "ls-files", "-z"]).split(b"\0")
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/b5bpi6zfajzzrwwpgba2q6li3nnya4bs-python3-3.14.7/lib/python3.14/subprocess.py", line 473, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**kwargs).stdout
^^^^^^^^^
File "/nix/store/b5bpi6zfajzzrwwpgba2q6li3nnya4bs-python3-3.14.7/lib/python3.14/subprocess.py", line 578, in run
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', '-C', '/build/source', 'ls-files', '-z']' returned non-zero exit status 128.
[126/2956] Generating WebContentViewLinuxVertShader.h
[127/2956] Building CXX object Libraries/LibCrypto/CMakeFiles/LibCrypto.dir/PK/EC.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[128/2956] Generating LibWeb bindings
[129/2956] Building CXX object Libraries/LibJS/CMakeFiles/generate_interpreter_layout.dir/Interpreter/GenerateLayout.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[130/2956] Building CXX object Libraries/LibWakeLock/CMakeFiles/LibWakeLock.dir/DisplaySleepInhibitorNoOp.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[131/2956] Building CXX object Libraries/LibMain/CMakeFiles/LibMain.dir/Main.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[132/2956] Building CXX object Libraries/LibSandbox/CMakeFiles/LibSandbox.dir/Sandbox.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[133/2956] Building CXX object Libraries/LibCrypto/CMakeFiles/LibCrypto.dir/PK/RSA.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[134/2956] Building CXX object Libraries/LibSandbox/CMakeFiles/LibSandbox.dir/Seccomp.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[135/2956] Building CXX object Libraries/LibXML/CMakeFiles/LibXML.dir/Parser/Parser.cpp.o
warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
[136/2956] Building Rust crate libtextcodec_rust
ninja: build stopped: subcommand failed.
error: Cannot build '/nix/store/gfmv9p45m6z164n3wnnlm2kd5wi6lra4-ladybird-0-unstable-2026-09-13.drv'.
Reason: builder failed with exit code 1.
Output paths:
/nix/store/ckdqdz2m0gr05p727dnh6ra55h6r5hsy-ladybird-0-unstable-2026-09-13
Last 25 log lines:
> ^^^^^^^^^
> File "/nix/store/b5bpi6zfajzzrwwpgba2q6li3nnya4bs-python3-3.14.7/lib/python3.14/subprocess.py", line 578, in run
> raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
> subprocess.CalledProcessError: Command '['git', '-C', '/build/source', 'ls-files', '-z']' returned non-zero exit status 128.
> [126/2956] Generating WebContentViewLinuxVertShader.h
> [127/2956] Building CXX object Libraries/LibCrypto/CMakeFiles/LibCrypto.dir/PK/EC.cpp.o
> warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
> [128/2956] Generating LibWeb bindings
> [129/2956] Building CXX object Libraries/LibJS/CMakeFiles/generate_interpreter_layout.dir/Interpreter/GenerateLayout.cpp.o
> warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
> [130/2956] Building CXX object Libraries/LibWakeLock/CMakeFiles/LibWakeLock.dir/DisplaySleepInhibitorNoOp.cpp.o
> warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
> [131/2956] Building CXX object Libraries/LibMain/CMakeFiles/LibMain.dir/Main.cpp.o
> warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
> [132/2956] Building CXX object Libraries/LibSandbox/CMakeFiles/LibSandbox.dir/Sandbox.cpp.o
> warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
> [133/2956] Building CXX object Libraries/LibCrypto/CMakeFiles/LibCrypto.dir/PK/RSA.cpp.o
> warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
> [134/2956] Building CXX object Libraries/LibSandbox/CMakeFiles/LibSandbox.dir/Seccomp.cpp.o
> warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
> [135/2956] Building CXX object Libraries/LibXML/CMakeFiles/LibXML.dir/Parser/Parser.cpp.o
> warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set
> [136/2956] Building Rust crate libtextcodec_rust
> ninja: build stopped: subcommand failed.
For full logs, run:
nix log /nix/store/gfmv9p45m6z164n3wnnlm2kd5wi6lra4-ladybird-0-unstable-2026-09-13.drv
nixpkgs ladybird--0-unstable-2026-06-05-->-0-unstable-2026-09-11 1m0s
❯
Screenshots or screen recordings
No response
Build flags or config settings
No response
Source: LadybirdBrowser/ladybird