#11772·ladybird

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

  1. Have a Nix system
  2. 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