# WARNING: this metadata is currently incomplete, do not rely on it yet.

Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/

# Note that we're explicitly listing the individual files at the root of the
# repository rather than just having `Files: *`. This is explicitly done to
# help downstream forks of the Rust compiler: this way, the files they add
# won't be automatically marked as authored by the Rust project.
Files: compiler/*
       library/*
       tests/*
       src/*
       .github/*
       Cargo.lock
       Cargo.toml
       CODE_OF_CONDUCT.md
       config.example.toml
       configure
       CONTRIBUTING.md
       COPYRIGHT
       INSTALL.md
       LICENSE-APACHE
       LICENSE-MIT
       README.md
       RELEASES.md
       rustfmt.toml
       rust-bors.toml
       triagebot.toml
       x
       x.ps1
       x.py
       .editorconfig
       .git-blame-ignore-revs
       .gitattributes
       .gitignore
       .gitmodules
       .mailmap
Copyright: The Rust Project Developers (see https://thanks.rust-lang.org)
License: MIT or Apache-2.0

Files: compiler/rustc_llvm/llvm-wrapper/SymbolWrapper.cpp
Copyright: 2003-2019 University of Illinois at Urbana-Champaign.
           The Rust Project Developers (see https://thanks.rust-lang.org)
License: Apache-2.0 WITH LLVM-exception AND (Apache-2.0 OR MIT)

Files: library/core/src/unicode/unicode_data.rs
Copyright: 1991-2022 Unicode, Inc. All rights reserved.
License: Unicode-DFS-2016

Files: library/std/src/sync/mpmc/*
Copyright: 2019 The Crossbeam Project Developers
           The Rust Project Developers (see https://thanks.rust-lang.org)
License: MIT OR Apache-2.0

Files: library/std/src/sys/sync/mutex/fuchsia.rs
Copyright: 2016 The Fuchsia Authors
           The Rust Project Developers (see https://thanks.rust-lang.org)
License: BSD-2-Clause AND (MIT OR Apache-2.0)

Files: src/test/rustdoc/auxiliary/enum-primitive.rs
Copyright: 2015 Anders Kaseorg <andersk@mit.edu>
License: MIT

Files: src/librustdoc/html/static/fonts/FiraSans*
Copyright: 2014, Mozilla Foundation
           2014, Telefonica S.A.
License: OFL-1.1

Files: src/librustdoc/html/static/fonts/NanumBarun*
Copyright: 2010 NAVER Corporation
License: OFL-1.1

Files: src/librustdoc/html/static/fonts/SourceCodePro*
       src/librustdoc/html/static/fonts/SourceSerif4*
Copyright: 2010, 2012, 2014-2023, Adobe Systems Incorporated
License: OFL-1.1

Files: src/librustdoc/html/static/css/normalize.css
Copyright: Nicolas Gallagher and Jonathan Neal
License: MIT

Files: src/librustdoc/html/static/css/rustdoc.css
Copyright: 2016 Ike Ku, Jessica Stokes and Leon Guan
           The Rust Project Developers (see https://thanks.rust-lang.org)
License: MIT OR Apache-2.0

Files: src/doc/rustc-dev-guide/mermaid.min.js
Copyright: 2014-2021 Knut Sveidqvist
License: MIT

Files: library/backtrace/*
Copyright: 2014 Alex Crichton
           The Rust Project Developers (see https://thanks.rust-lang.org)
License: MIT OR Apache-2.0

Files: src/doc/embedded-book/*
Copyright: Rust on Embedded Devices Working Group
           The Rust Project Developers (see https://thanks.rust-lang.org)
License: MIT OR Apache-2.0 OR CC-BY-SA-4.0

Files: src/doc/rust-by-example/*
Copyright: 2014 Jorge Aparicio
           The Rust Project Developers (see https://thanks.rust-lang.org)
License: MIT OR Apache-2.0

# Reuse cannot process the LLVM source tree, and so the copyrights for the LLVM
# submodule are written out here manually. The collect-licence-metadata tool
# has a specific exception coded within it to ignore ./src/llvm-project so
# any time LLVM is updated, please revisit this section. The copyrights are
# taken from the relevant LLVM sub-folders: llvm, lld, lldb, compiler-rt and libunwind.
#
# The git hash for the CREDITS.TXT file is taken from the current git submodule
# commit for ./src/llvm-project.
#
# The copyright years were compiled by looking at all the relevant
# ./src/llvm-project/*/LICENSE.txt files

Files: src/llvm-project/*
Copyright: 2003-2019 by the contributors listed in [CREDITS.TXT](https://github.com/rust-lang/llvm-project/blob/7738295178045041669876bf32b0543ec8319a5c/llvm/CREDITS.TXT)
           2010 Apple Inc
           2003-2019 University of Illinois at Urbana-Champaign.
License: NCSA AND Apache-2.0 WITH LLVM-exception
