diff --git a/src/libexpr/attr-path.cc b/src/libexpr/attr-path.cc
index 3e60f295d..4fc8e2d92 100644
--- a/src/libexpr/attr-path.cc
+++ b/src/libexpr/attr-path.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "attr-path.hh"
 #include "eval-inline.hh"
 
diff --git a/src/libexpr/attr-path.hh b/src/libexpr/attr-path.hh
index eb00ffb93..203328151 100644
--- a/src/libexpr/attr-path.hh
+++ b/src/libexpr/attr-path.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/attr-set.cc b/src/libexpr/attr-set.cc
index 877116f1f..2adaa603c 100644
--- a/src/libexpr/attr-set.cc
+++ b/src/libexpr/attr-set.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "attr-set.hh"
 #include "eval-inline.hh"
 
diff --git a/src/libexpr/attr-set.hh b/src/libexpr/attr-set.hh
index 31215f880..14ab0366e 100644
--- a/src/libexpr/attr-set.hh
+++ b/src/libexpr/attr-set.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/eval-cache.cc b/src/libexpr/eval-cache.cc
index 90fbfa308..7cba4d5c9 100644
--- a/src/libexpr/eval-cache.cc
+++ b/src/libexpr/eval-cache.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "eval-cache.hh"
 #include "sqlite.hh"
 #include "eval.hh"
diff --git a/src/libexpr/eval-cache.hh b/src/libexpr/eval-cache.hh
index 2c57d5dde..a46cb686f 100644
--- a/src/libexpr/eval-cache.hh
+++ b/src/libexpr/eval-cache.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/eval-error.cc b/src/libexpr/eval-error.cc
index 9e7f50093..100137d84 100644
--- a/src/libexpr/eval-error.cc
+++ b/src/libexpr/eval-error.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "eval-error.hh"
 #include "eval.hh"
 #include "value.hh"
diff --git a/src/libexpr/eval-error.hh b/src/libexpr/eval-error.hh
index 19540d612..9ab5be3f3 100644
--- a/src/libexpr/eval-error.hh
+++ b/src/libexpr/eval-error.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/eval-inline.hh b/src/libexpr/eval-inline.hh
index 94d4c55ef..8cfc302e2 100644
--- a/src/libexpr/eval-inline.hh
+++ b/src/libexpr/eval-inline.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/eval-settings.cc b/src/libexpr/eval-settings.cc
index 0bdf1b9a5..867be0138 100644
--- a/src/libexpr/eval-settings.cc
+++ b/src/libexpr/eval-settings.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "file-system.hh"
 #include "globals.hh"
 #include "profiles.hh"
diff --git a/src/libexpr/eval-settings.hh b/src/libexpr/eval-settings.hh
index 4673c509b..739136fa0 100644
--- a/src/libexpr/eval-settings.hh
+++ b/src/libexpr/eval-settings.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 #include "config.hh"
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index d9bdb0d2c..8145d4ae4 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "eval.hh"
 #include "eval-settings.hh"
 #include "hash.hh"
diff --git a/src/libexpr/eval.hh b/src/libexpr/eval.hh
index ed51f8d1d..cb0c401d3 100644
--- a/src/libexpr/eval.hh
+++ b/src/libexpr/eval.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/fetchurl.nix b/src/libexpr/fetchurl.nix
index 50007c738..2dcf74717 100644
--- a/src/libexpr/fetchurl.nix
+++ b/src/libexpr/fetchurl.nix
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+#
+# SPDX-License-Identifier: LGPL-2.1-only
+
 {
   system ? "", # obsolete
   url,
diff --git a/src/libexpr/flake/call-flake.nix b/src/libexpr/flake/call-flake.nix
index 58b4a5542..615604754 100644
--- a/src/libexpr/flake/call-flake.nix
+++ b/src/libexpr/flake/call-flake.nix
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+#
+# SPDX-License-Identifier: LGPL-2.1-only
+
 lockFileStr: rootSrc: rootSubdir:
 
 let
diff --git a/src/libexpr/flake/config.cc b/src/libexpr/flake/config.cc
index adcf7fd10..95230986a 100644
--- a/src/libexpr/flake/config.cc
+++ b/src/libexpr/flake/config.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "flake.hh"
 #include "logging.hh"
 #include "users.hh"
diff --git a/src/libexpr/flake/flake.cc b/src/libexpr/flake/flake.cc
index ac50351ad..4c3ca1da9 100644
--- a/src/libexpr/flake/flake.cc
+++ b/src/libexpr/flake/flake.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "flake.hh"
 #include "eval.hh"
 #include "eval-settings.hh"
diff --git a/src/libexpr/flake/flake.hh b/src/libexpr/flake/flake.hh
index c1d1b71e5..97e7f7380 100644
--- a/src/libexpr/flake/flake.hh
+++ b/src/libexpr/flake/flake.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/flake/flakeref.cc b/src/libexpr/flake/flakeref.cc
index a95df04ba..fe3af422b 100644
--- a/src/libexpr/flake/flakeref.cc
+++ b/src/libexpr/flake/flakeref.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "flakeref.hh"
 #include "store-api.hh"
 #include "url.hh"
diff --git a/src/libexpr/flake/flakeref.hh b/src/libexpr/flake/flakeref.hh
index a7c9208c0..0c3133a5d 100644
--- a/src/libexpr/flake/flakeref.hh
+++ b/src/libexpr/flake/flakeref.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/flake/lockfile.cc b/src/libexpr/flake/lockfile.cc
index 12d304c18..aa610743f 100644
--- a/src/libexpr/flake/lockfile.cc
+++ b/src/libexpr/flake/lockfile.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "lockfile.hh"
 #include "store-api.hh"
 #include "url-parts.hh"
diff --git a/src/libexpr/flake/lockfile.hh b/src/libexpr/flake/lockfile.hh
index ba4c0c848..351790e14 100644
--- a/src/libexpr/flake/lockfile.hh
+++ b/src/libexpr/flake/lockfile.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/flake/meson.build b/src/libexpr/flake/meson.build
index cce1b0c75..520ce22e0 100644
--- a/src/libexpr/flake/meson.build
+++ b/src/libexpr/flake/meson.build
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+#
+# SPDX-License-Identifier: LGPL-2.1-only
+
 libexpr_generated_headers += custom_target(
   command : [ 'bash', '-c', 'echo \'R"__NIX_STR(\' | cat - @INPUT@ && echo \')__NIX_STR"\'' ],
   input : 'call-flake.nix',
diff --git a/src/libexpr/function-trace.cc b/src/libexpr/function-trace.cc
index c6057b384..a44c7e0bb 100644
--- a/src/libexpr/function-trace.cc
+++ b/src/libexpr/function-trace.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "function-trace.hh"
 #include "logging.hh"
 
diff --git a/src/libexpr/function-trace.hh b/src/libexpr/function-trace.hh
index 91439b0aa..348ef74f1 100644
--- a/src/libexpr/function-trace.hh
+++ b/src/libexpr/function-trace.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/gc-small-vector.hh b/src/libexpr/gc-small-vector.hh
index c4bd1db26..cc777a9b2 100644
--- a/src/libexpr/gc-small-vector.hh
+++ b/src/libexpr/gc-small-vector.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/get-drvs.cc b/src/libexpr/get-drvs.cc
index b199cd09e..4d6da65d9 100644
--- a/src/libexpr/get-drvs.cc
+++ b/src/libexpr/get-drvs.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "get-drvs.hh"
 #include "eval-inline.hh"
 #include "derivations.hh"
diff --git a/src/libexpr/get-drvs.hh b/src/libexpr/get-drvs.hh
index d620eca63..edc234e32 100644
--- a/src/libexpr/get-drvs.hh
+++ b/src/libexpr/get-drvs.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/imported-drv-to-derivation.nix b/src/libexpr/imported-drv-to-derivation.nix
index 50864563e..3a7b1ff4d 100644
--- a/src/libexpr/imported-drv-to-derivation.nix
+++ b/src/libexpr/imported-drv-to-derivation.nix
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+#
+# SPDX-License-Identifier: LGPL-2.1-only
+
 attrs@{
   drvPath,
   outputs,
diff --git a/src/libexpr/json-to-value.cc b/src/libexpr/json-to-value.cc
index 2d12c47c5..354bccb02 100644
--- a/src/libexpr/json-to-value.cc
+++ b/src/libexpr/json-to-value.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "json-to-value.hh"
 #include "value.hh"
 #include "eval.hh"
diff --git a/src/libexpr/json-to-value.hh b/src/libexpr/json-to-value.hh
index 3c8fa5cc0..5ff36317e 100644
--- a/src/libexpr/json-to-value.hh
+++ b/src/libexpr/json-to-value.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/meson.build b/src/libexpr/meson.build
index 39493dadc..1a5512928 100644
--- a/src/libexpr/meson.build
+++ b/src/libexpr/meson.build
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+#
+# SPDX-License-Identifier: LGPL-2.1-only
+
 libexpr_generated_headers = [
   gen_header.process('primops/derivation.nix', preserve_path_from : meson.current_source_dir()),
 ]
diff --git a/src/libexpr/nixexpr.cc b/src/libexpr/nixexpr.cc
index 08d4b279b..86bf87840 100644
--- a/src/libexpr/nixexpr.cc
+++ b/src/libexpr/nixexpr.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "nixexpr.hh"
 #include "derivations.hh"
 #include "eval.hh"
diff --git a/src/libexpr/nixexpr.hh b/src/libexpr/nixexpr.hh
index 25ba94595..ced3ae60e 100644
--- a/src/libexpr/nixexpr.hh
+++ b/src/libexpr/nixexpr.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/parser/change_head.hh b/src/libexpr/parser/change_head.hh
index aab315553..83565f966 100644
--- a/src/libexpr/parser/change_head.hh
+++ b/src/libexpr/parser/change_head.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/parser/grammar.hh b/src/libexpr/parser/grammar.hh
index 82df63bc5..6cd593318 100644
--- a/src/libexpr/parser/grammar.hh
+++ b/src/libexpr/parser/grammar.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/parser/parser.cc b/src/libexpr/parser/parser.cc
index e60cf967f..885eef6b6 100644
--- a/src/libexpr/parser/parser.cc
+++ b/src/libexpr/parser/parser.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "attr-set.hh"
 #include "error.hh"
 #include "eval-settings.hh"
diff --git a/src/libexpr/parser/state.hh b/src/libexpr/parser/state.hh
index 29889152e..a4928a1df 100644
--- a/src/libexpr/parser/state.hh
+++ b/src/libexpr/parser/state.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/paths.cc b/src/libexpr/paths.cc
index b6a696f47..210343bed 100644
--- a/src/libexpr/paths.cc
+++ b/src/libexpr/paths.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "eval.hh"
 
 namespace nix {
diff --git a/src/libexpr/pos-idx.hh b/src/libexpr/pos-idx.hh
index 406fc1b36..deb979c68 100644
--- a/src/libexpr/pos-idx.hh
+++ b/src/libexpr/pos-idx.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/pos-table.hh b/src/libexpr/pos-table.hh
index 704f24696..d52aa8a86 100644
--- a/src/libexpr/pos-table.hh
+++ b/src/libexpr/pos-table.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 72ae1aeb9..41bee75ea 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "archive.hh"
 #include "derivations.hh"
 #include "downstream-placeholder.hh"
diff --git a/src/libexpr/primops.hh b/src/libexpr/primops.hh
index 9f76975db..a4bf5054a 100644
--- a/src/libexpr/primops.hh
+++ b/src/libexpr/primops.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/primops/context.cc b/src/libexpr/primops/context.cc
index 36692aafb..27b5dd589 100644
--- a/src/libexpr/primops/context.cc
+++ b/src/libexpr/primops/context.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "primops.hh"
 #include "eval-inline.hh"
 #include "derivations.hh"
diff --git a/src/libexpr/primops/derivation.nix b/src/libexpr/primops/derivation.nix
index 674408c6d..dbd13827d 100644
--- a/src/libexpr/primops/derivation.nix
+++ b/src/libexpr/primops/derivation.nix
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+#
+# SPDX-License-Identifier: LGPL-2.1-only
+
 /*
   This is the implementation of the ‘derivation’ builtin function.
   It's actually a wrapper around the ‘derivationStrict’ primop.
diff --git a/src/libexpr/primops/fetchClosure.cc b/src/libexpr/primops/fetchClosure.cc
index a736957eb..6058c2656 100644
--- a/src/libexpr/primops/fetchClosure.cc
+++ b/src/libexpr/primops/fetchClosure.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "primops.hh"
 #include "store-api.hh"
 #include "make-content-addressed.hh"
diff --git a/src/libexpr/primops/fetchMercurial.cc b/src/libexpr/primops/fetchMercurial.cc
index 261722d1b..702882ae8 100644
--- a/src/libexpr/primops/fetchMercurial.cc
+++ b/src/libexpr/primops/fetchMercurial.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "primops.hh"
 #include "eval-inline.hh"
 #include "eval-settings.hh"
diff --git a/src/libexpr/primops/fetchTree.cc b/src/libexpr/primops/fetchTree.cc
index 2e58be45d..1ca54c701 100644
--- a/src/libexpr/primops/fetchTree.cc
+++ b/src/libexpr/primops/fetchTree.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "primops.hh"
 #include "eval-inline.hh"
 #include "eval-settings.hh"
diff --git a/src/libexpr/primops/fromTOML.cc b/src/libexpr/primops/fromTOML.cc
index c51683df7..7cb2f4444 100644
--- a/src/libexpr/primops/fromTOML.cc
+++ b/src/libexpr/primops/fromTOML.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "primops.hh"
 #include "eval-inline.hh"
 
diff --git a/src/libexpr/print-ambiguous.cc b/src/libexpr/print-ambiguous.cc
index bcf86b5c6..68c6e783e 100644
--- a/src/libexpr/print-ambiguous.cc
+++ b/src/libexpr/print-ambiguous.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "print-ambiguous.hh"
 #include "attr-set.hh"
 #include "logging.hh"
diff --git a/src/libexpr/print-ambiguous.hh b/src/libexpr/print-ambiguous.hh
index b615d1e5a..bde6cbf62 100644
--- a/src/libexpr/print-ambiguous.hh
+++ b/src/libexpr/print-ambiguous.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/print-options.hh b/src/libexpr/print-options.hh
index 080ba26b8..5a3c18771 100644
--- a/src/libexpr/print-options.hh
+++ b/src/libexpr/print-options.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 /**
  * @file
diff --git a/src/libexpr/print.cc b/src/libexpr/print.cc
index 87db004b2..fc53a7823 100644
--- a/src/libexpr/print.cc
+++ b/src/libexpr/print.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include <limits>
 #include <span>
 #include <unordered_set>
diff --git a/src/libexpr/print.hh b/src/libexpr/print.hh
index 3deaa33d4..3a8e1b713 100644
--- a/src/libexpr/print.hh
+++ b/src/libexpr/print.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 /**
  * @file
diff --git a/src/libexpr/repl-exit-status.hh b/src/libexpr/repl-exit-status.hh
index f150b9597..bffe3f77c 100644
--- a/src/libexpr/repl-exit-status.hh
+++ b/src/libexpr/repl-exit-status.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/search-path.cc b/src/libexpr/search-path.cc
index a25767496..ba782f98a 100644
--- a/src/libexpr/search-path.cc
+++ b/src/libexpr/search-path.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "search-path.hh"
 
 namespace nix {
diff --git a/src/libexpr/search-path.hh b/src/libexpr/search-path.hh
index ce78135b5..bbae35b92 100644
--- a/src/libexpr/search-path.hh
+++ b/src/libexpr/search-path.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/symbol-table.hh b/src/libexpr/symbol-table.hh
index 967a186dd..ff1131fc3 100644
--- a/src/libexpr/symbol-table.hh
+++ b/src/libexpr/symbol-table.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/value-to-json.cc b/src/libexpr/value-to-json.cc
index 5743d9057..ffcec665d 100644
--- a/src/libexpr/value-to-json.cc
+++ b/src/libexpr/value-to-json.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "value-to-json.hh"
 #include "eval-inline.hh"
 #include "signals.hh"
diff --git a/src/libexpr/value-to-json.hh b/src/libexpr/value-to-json.hh
index 47ac90313..52a013633 100644
--- a/src/libexpr/value-to-json.hh
+++ b/src/libexpr/value-to-json.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/value-to-xml.cc b/src/libexpr/value-to-xml.cc
index d77fdf96e..965126dc8 100644
--- a/src/libexpr/value-to-xml.cc
+++ b/src/libexpr/value-to-xml.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "value-to-xml.hh"
 #include "xml-writer.hh"
 #include "signals.hh"
diff --git a/src/libexpr/value-to-xml.hh b/src/libexpr/value-to-xml.hh
index 6d702c0f2..d26a3c426 100644
--- a/src/libexpr/value-to-xml.hh
+++ b/src/libexpr/value-to-xml.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/value.hh b/src/libexpr/value.hh
index dcef82e40..08b65d0a8 100644
--- a/src/libexpr/value.hh
+++ b/src/libexpr/value.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file
 
diff --git a/src/libexpr/value/context.cc b/src/libexpr/value/context.cc
index 22361d8fa..f05bc6cd3 100644
--- a/src/libexpr/value/context.cc
+++ b/src/libexpr/value/context.cc
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #include "value/context.hh"
 
 #include <optional>
diff --git a/src/libexpr/value/context.hh b/src/libexpr/value/context.hh
index 7f23cd3a4..f5e5a03ac 100644
--- a/src/libexpr/value/context.hh
+++ b/src/libexpr/value/context.hh
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2024 Nix and Lix Authors
+//
+// SPDX-License-Identifier: LGPL-2.1-only
+
 #pragma once
 ///@file