schema: 1

bugzilla:
  product: Core
  component: "xul"

origin:
  name: llama.cpp
  description:  LLM inference in C/C++

  url: https://github.com/ggml-org/llama.cpp

  release: 74ade52741203e5c8f81eaf06a96cb1cfe15f2a3 (2026-06-16T18:24:28Z).
  revision: 74ade52741203e5c8f81eaf06a96cb1cfe15f2a3

  license: MIT

vendoring:
  url: https://github.com/ggml-org/llama.cpp
  source-hosting: github
  tracking: commit

  skip-vendoring-steps:
    - update-moz-build

  keep:
    - generate_sources_mozbuild.py
    - generate_sources_mozbuild.sh
    - cmakeparser.py
    - make_patch.py
    - sources.mozbuild
    - post_update.sh
    - requirements.txt
    - run_parser.py
    - moz-overrides.h

  exclude:
    - "**"
    - src/llama-quant.cpp

  include:
    - LICENSE
    - src/*.cpp
    - src/*.h
    - src/models/*.cpp
    - src/models/*.h
    - src/CMakeLists.txt
    - CMakeLists.txt
    - include/llama.h
    - ggml/src/*
    - ggml/src/*.cpp
    - ggml/src/*.h
    - ggml/src/ggml-cpu/*.cpp
    - ggml/src/ggml-cpu/*.c
    - ggml/src/ggml-cpu/*.h
    - ggml/src/ggml-cpu/amx/
    - ggml/src/ggml-cpu/arch/*.cpp
    - ggml/src/ggml-cpu/arch/*.h
    - ggml/src/ggml-cpu/arch/arm/
    - ggml/src/ggml-cpu/arch/x86/
    - ggml/src/ggml-cpu/CMakeLists.txt
    - ggml/src/cmake/*
    - ggml/cmake/*
    - ggml/CMakeLists.txt
    - ggml/include/ggml.h
    - ggml/include/ggml-alloc.h
    - ggml/include/ggml-backend.h
    - ggml/include/ggml-cpu.h
    - ggml/include/ggml-cpp.h
    - ggml/include/ggml-opt.h
    - ggml/include/gguf.h

  update-actions:
    - action: run-script
      script: '{yaml_dir}/generate_sources_mozbuild.sh'
      cwd: '{yaml_dir}'

  patches:
     - exceptions.patch # disable exception usage
     - fs.patch # disable std::fs usage we don't need and is too recent for linux
     - no-future.patch # same for future, switch to sequential
     - no-wstring.patch # same, charset conversion is too recent
     - get-terminate.patch # remove forbidden function usage, that we don't need
     - random_device.patch # use of std::random_device, also too recent on linux
     - detect-chat-template.patch # don't crash on exception caught for control flow
     - load-from-buffer-or-fd.patch # add an API to load a model from a buffer or a fd
     - static-ctors.patch # remove some static ctors
     - fix-RLIMIT_MEMLOCK-solaris.patch # fix the build on solaris
     - profiler-hooks.patch # add thread callbacks for Firefox Profiler integration
     - missing-includes.patch # missing include cerrno in gguf.cpp, include mutex in llama-model-loader.cpp
     - skip-metadata-dump.patch # skip dumping metadata strings that proved costly in profiling
