[exim-cvs] SPDX: license tags (mostly by guesswork)

Startseite
Nachricht löschen
Nachricht beantworten
Autor: Exim Git Commits Mailing List
Datum:  
To: exim-cvs
Betreff: [exim-cvs] SPDX: license tags (mostly by guesswork)
Gitweb: https://git.exim.org/exim.git/commitdiff/a85c067ba6c6940512cf57ec213277a370d87e70
Commit:     a85c067ba6c6940512cf57ec213277a370d87e70
Parent:     02a33248dc5981a63931530a57c76ff27464bde5
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Sun Nov 27 14:38:37 2022 +0000
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Sun Nov 27 14:38:37 2022 +0000


    SPDX: license tags (mostly by guesswork)
---
 src/exim_monitor/em_StripChart.c            | 1 +
 src/exim_monitor/em_TextPop.c               | 1 +
 src/exim_monitor/em_globals.c               | 1 +
 src/exim_monitor/em_hdr.h                   | 1 +
 src/exim_monitor/em_init.c                  | 1 +
 src/exim_monitor/em_log.c                   | 1 +
 src/exim_monitor/em_main.c                  | 1 +
 src/exim_monitor/em_menu.c                  | 1 +
 src/exim_monitor/em_queue.c                 | 1 +
 src/exim_monitor/em_strip.c                 | 1 +
 src/exim_monitor/em_text.c                  | 1 +
 src/exim_monitor/em_version.c               | 1 +
 src/exim_monitor/em_xs.c                    | 1 +
 src/scripts/Configure-config.h              | 1 +
 src/scripts/Configure-os.c                  | 1 +
 src/scripts/Configure-os.h                  | 1 +
 src/src/acl.c                               | 1 +
 src/src/arc.c                               | 1 +
 src/src/auths/auth-spa.c                    | 1 +
 src/src/auths/auth-spa.h                    | 1 +
 src/src/auths/call_pam.c                    | 1 +
 src/src/auths/call_pwcheck.c                | 1 +
 src/src/auths/call_radius.c                 | 1 +
 src/src/auths/check_serv_cond.c             | 1 +
 src/src/auths/cram_md5.c                    | 1 +
 src/src/auths/cram_md5.h                    | 1 +
 src/src/auths/cyrus_sasl.c                  | 1 +
 src/src/auths/cyrus_sasl.h                  | 1 +
 src/src/auths/dovecot.c                     | 1 +
 src/src/auths/dovecot.h                     | 1 +
 src/src/auths/external.c                    | 1 +
 src/src/auths/external.h                    | 1 +
 src/src/auths/get_data.c                    | 1 +
 src/src/auths/get_no64_data.c               | 1 +
 src/src/auths/gsasl_exim.c                  | 1 +
 src/src/auths/gsasl_exim.h                  | 1 +
 src/src/auths/heimdal_gssapi.c              | 1 +
 src/src/auths/heimdal_gssapi.h              | 1 +
 src/src/auths/plaintext.c                   | 1 +
 src/src/auths/plaintext.h                   | 1 +
 src/src/auths/pwcheck.c                     | 1 +
 src/src/auths/pwcheck.h                     | 1 +
 src/src/auths/spa.c                         | 1 +
 src/src/auths/spa.h                         | 1 +
 src/src/auths/tls.c                         | 1 +
 src/src/auths/tls.h                         | 1 +
 src/src/auths/xtextdecode.c                 | 1 +
 src/src/auths/xtextencode.c                 | 1 +
 src/src/base64.c                            | 1 +
 src/src/blob.h                              | 1 +
 src/src/bmi_spam.c                          | 1 +
 src/src/bmi_spam.h                          | 1 +
 src/src/buildconfig.c                       | 1 +
 src/src/child.c                             | 1 +
 src/src/crypt16.c                           | 1 +
 src/src/daemon.c                            | 1 +
 src/src/dane.c                              | 1 +
 src/src/dbfn.c                              | 1 +
 src/src/dbfunctions.h                       | 1 +
 src/src/dcc.c                               | 1 +
 src/src/debug.c                             | 1 +
 src/src/deliver.c                           | 1 +
 src/src/directory.c                         | 1 +
 src/src/dkim.c                              | 1 +
 src/src/dkim.h                              | 1 +
 src/src/dkim_transport.c                    | 1 +
 src/src/dmarc.c                             | 1 +
 src/src/dmarc.h                             | 1 +
 src/src/dns.c                               | 1 +
 src/src/dnsbl.c                             | 1 +
 src/src/drtables.c                          | 1 +
 src/src/dummies.c                           | 1 +
 src/src/enq.c                               | 1 +
 src/src/environment.c                       | 1 +
 src/src/exim.c                              | 1 +
 src/src/exim.h                              | 1 +
 src/src/exim_dbmbuild.c                     | 1 +
 src/src/exim_dbutil.c                       | 1 +
 src/src/exim_lock.c                         | 1 +
 src/src/expand.c                            | 1 +
 src/src/filter.c                            | 1 +
 src/src/filtertest.c                        | 1 +
 src/src/functions.h                         | 1 +
 src/src/globals.c                           | 1 +
 src/src/globals.h                           | 1 +
 src/src/hash.c                              | 1 +
 src/src/hash.h                              | 1 +
 src/src/header.c                            | 1 +
 src/src/hintsdb.h                           | 1 +
 src/src/hintsdb_structs.h                   | 1 +
 src/src/host.c                              | 1 +
 src/src/host_address.c                      | 1 +
 src/src/imap_utf7.c                         | 1 +
 src/src/ip.c                                | 1 +
 src/src/local_scan.c                        | 1 +
 src/src/local_scan.h                        | 1 +
 src/src/log.c                               | 1 +
 src/src/lookupapi.h                         | 1 +
 src/src/lookups/cdb.c                       | 1 +
 src/src/lookups/dbmdb.c                     | 1 +
 src/src/lookups/dnsdb.c                     | 1 +
 src/src/lookups/dsearch.c                   | 1 +
 src/src/lookups/ibase.c                     | 1 +
 src/src/lookups/json.c                      | 1 +
 src/src/lookups/ldap.c                      | 1 +
 src/src/lookups/ldap.h                      | 1 +
 src/src/lookups/lf_check_file.c             | 1 +
 src/src/lookups/lf_functions.h              | 1 +
 src/src/lookups/lf_quote.c                  | 1 +
 src/src/lookups/lf_sqlperform.c             | 1 +
 src/src/lookups/lmdb.c                      | 1 +
 src/src/lookups/lsearch.c                   | 1 +
 src/src/lookups/mysql.c                     | 1 +
 src/src/lookups/nis.c                       | 1 +
 src/src/lookups/nisplus.c                   | 1 +
 src/src/lookups/oracle.c                    | 1 +
 src/src/lookups/passwd.c                    | 1 +
 src/src/lookups/pgsql.c                     | 1 +
 src/src/lookups/readsock.c                  | 1 +
 src/src/lookups/redis.c                     | 1 +
 src/src/lookups/spf.c                       | 1 +
 src/src/lookups/sqlite.c                    | 1 +
 src/src/lookups/testdb.c                    | 1 +
 src/src/lookups/whoson.c                    | 1 +
 src/src/lss.c                               | 1 +
 src/src/macro_predef.c                      | 1 +
 src/src/macro_predef.h                      | 1 +
 src/src/macros.h                            | 1 +
 src/src/malware.c                           | 1 +
 src/src/match.c                             | 1 +
 src/src/md5.c                               | 1 +
 src/src/mime.c                              | 1 +
 src/src/mime.h                              | 1 +
 src/src/moan.c                              | 1 +
 src/src/mytypes.h                           | 1 +
 src/src/os.c                                | 1 +
 src/src/osfunctions.h                       | 1 +
 src/src/parse.c                             | 1 +
 src/src/pdkim/crypt_ver.h                   | 1 +
 src/src/pdkim/pdkim.c                       | 1 +
 src/src/pdkim/pdkim.h                       | 1 +
 src/src/pdkim/pdkim_hash.h                  | 1 +
 src/src/pdkim/signing.c                     | 1 +
 src/src/pdkim/signing.h                     | 1 +
 src/src/perl.c                              | 1 +
 src/src/priv.c                              | 3 +++
 src/src/queue.c                             | 1 +
 src/src/rda.c                               | 1 +
 src/src/readconf.c                          | 1 +
 src/src/receive.c                           | 1 +
 src/src/regex.c                             | 1 +
 src/src/regex_cache.c                       | 1 +
 src/src/retry.c                             | 1 +
 src/src/rewrite.c                           | 1 +
 src/src/rfc2047.c                           | 1 +
 src/src/route.c                             | 1 +
 src/src/routers/accept.c                    | 1 +
 src/src/routers/accept.h                    | 1 +
 src/src/routers/dnslookup.c                 | 1 +
 src/src/routers/dnslookup.h                 | 1 +
 src/src/routers/ipliteral.c                 | 1 +
 src/src/routers/ipliteral.h                 | 1 +
 src/src/routers/iplookup.c                  | 1 +
 src/src/routers/iplookup.h                  | 1 +
 src/src/routers/manualroute.c               | 1 +
 src/src/routers/manualroute.h               | 1 +
 src/src/routers/queryprogram.c              | 1 +
 src/src/routers/queryprogram.h              | 1 +
 src/src/routers/redirect.c                  | 1 +
 src/src/routers/redirect.h                  | 1 +
 src/src/routers/rf_change_domain.c          | 1 +
 src/src/routers/rf_expand_data.c            | 1 +
 src/src/routers/rf_functions.h              | 1 +
 src/src/routers/rf_get_errors_address.c     | 1 +
 src/src/routers/rf_get_munge_headers.c      | 1 +
 src/src/routers/rf_get_transport.c          | 1 +
 src/src/routers/rf_get_ugid.c               | 1 +
 src/src/routers/rf_lookup_hostlist.c        | 1 +
 src/src/routers/rf_queue_add.c              | 1 +
 src/src/routers/rf_self_action.c            | 1 +
 src/src/routers/rf_set_ugid.c               | 1 +
 src/src/search.c                            | 1 +
 src/src/setenv.c                            | 1 +
 src/src/sha_ver.h                           | 1 +
 src/src/sieve.c                             | 1 +
 src/src/smtp_in.c                           | 1 +
 src/src/smtp_out.c                          | 1 +
 src/src/spam.c                              | 1 +
 src/src/spam.h                              | 1 +
 src/src/spf.c                               | 1 +
 src/src/spf.h                               | 1 +
 src/src/spool_in.c                          | 1 +
 src/src/spool_mbox.c                        | 1 +
 src/src/spool_out.c                         | 1 +
 src/src/std-crypto.c                        | 2 ++
 src/src/store.c                             | 1 +
 src/src/store.h                             | 1 +
 src/src/string.c                            | 1 +
 src/src/structs.h                           | 1 +
 src/src/tls-cipher-stdname.c                | 1 +
 src/src/tls-gnu.c                           | 1 +
 src/src/tls-openssl.c                       | 1 +
 src/src/tls.c                               | 1 +
 src/src/tlscert-gnu.c                       | 1 +
 src/src/tlscert-openssl.c                   | 1 +
 src/src/tod.c                               | 1 +
 src/src/transport.c                         | 1 +
 src/src/transports/appendfile.c             | 1 +
 src/src/transports/appendfile.h             | 1 +
 src/src/transports/autoreply.c              | 1 +
 src/src/transports/autoreply.h              | 1 +
 src/src/transports/lmtp.c                   | 1 +
 src/src/transports/lmtp.h                   | 1 +
 src/src/transports/pipe.c                   | 1 +
 src/src/transports/pipe.h                   | 1 +
 src/src/transports/queuefile.c              | 1 +
 src/src/transports/queuefile.h              | 1 +
 src/src/transports/smtp.c                   | 1 +
 src/src/transports/smtp.h                   | 1 +
 src/src/transports/smtp_socks.c             | 1 +
 src/src/transports/tf_maildir.c             | 1 +
 src/src/transports/tf_maildir.h             | 1 +
 src/src/tree.c                              | 1 +
 src/src/utf8.c                              | 1 +
 src/src/verify.c                            | 1 +
 src/src/version.c                           | 1 +
 src/util/chunking_fixqueue_finalnewlines.pl | 1 +
 src/util/cramtest.pl                        | 1 +
 src/util/gen_pkcs3.c                        | 1 +
 src/util/logargs.sh                         | 1 +
 src/util/mkcdb.pl                           | 1 +
 src/util/ocsp_fetch.pl                      | 2 ++
 src/util/proxy_protocol_client.pl           | 1 +
 src/util/ratelimit.pl                       | 1 +
 src/util/renew-opendmarc-tlds.sh            | 1 +
 src/util/unknownuser.sh                     | 1 +
 236 files changed, 240 insertions(+)


diff --git a/src/exim_monitor/em_StripChart.c b/src/exim_monitor/em_StripChart.c
index 3b94c2231..3eb98e4fb 100644
--- a/src/exim_monitor/em_StripChart.c
+++ b/src/exim_monitor/em_StripChart.c
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
/***********************************************************
Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
diff --git a/src/exim_monitor/em_TextPop.c b/src/exim_monitor/em_TextPop.c
index ff5d1a8f7..0e87cb580 100644
--- a/src/exim_monitor/em_TextPop.c
+++ b/src/exim_monitor/em_TextPop.c
@@ -2,6 +2,7 @@
Copyright (c) The Exim Maintainers 2022
Copyright 1989 by the Massachusetts Institute of Technology,
Cambridge, Massachusetts.
+SPDX-License-Identifier: GPL-2.0-only

                         All Rights Reserved


diff --git a/src/exim_monitor/em_globals.c b/src/exim_monitor/em_globals.c
index 3d452c6ec..2943065b4 100644
--- a/src/exim_monitor/em_globals.c
+++ b/src/exim_monitor/em_globals.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "em_hdr.h"
diff --git a/src/exim_monitor/em_hdr.h b/src/exim_monitor/em_hdr.h
index ab37806b7..76970c997 100644
--- a/src/exim_monitor/em_hdr.h
+++ b/src/exim_monitor/em_hdr.h
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* This is the general header file for all the modules that comprise
diff --git a/src/exim_monitor/em_init.c b/src/exim_monitor/em_init.c
index e0bc3b066..e1f53fbba 100644
--- a/src/exim_monitor/em_init.c
+++ b/src/exim_monitor/em_init.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* Copyright (c) The Exim Maintainers 2020 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This module contains code to initialize things from the
environment and the arguments. */
diff --git a/src/exim_monitor/em_log.c b/src/exim_monitor/em_log.c
index 8d85c13f1..d625056c5 100644
--- a/src/exim_monitor/em_log.c
+++ b/src/exim_monitor/em_log.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainters 2021 - 2022 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This module contains code for scanning the main log,
extracting information from it, and displaying a "tail". */
diff --git a/src/exim_monitor/em_main.c b/src/exim_monitor/em_main.c
index 86caf71eb..919cde632 100644
--- a/src/exim_monitor/em_main.c
+++ b/src/exim_monitor/em_main.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "em_hdr.h"
diff --git a/src/exim_monitor/em_menu.c b/src/exim_monitor/em_menu.c
index 881f3748c..afcd31540 100644
--- a/src/exim_monitor/em_menu.c
+++ b/src/exim_monitor/em_menu.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "em_hdr.h"
diff --git a/src/exim_monitor/em_queue.c b/src/exim_monitor/em_queue.c
index 9badd2451..d9cfad38a 100644
--- a/src/exim_monitor/em_queue.c
+++ b/src/exim_monitor/em_queue.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "em_hdr.h"
diff --git a/src/exim_monitor/em_strip.c b/src/exim_monitor/em_strip.c
index 03864d290..cfafe9257 100644
--- a/src/exim_monitor/em_strip.c
+++ b/src/exim_monitor/em_strip.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "em_hdr.h"
diff --git a/src/exim_monitor/em_text.c b/src/exim_monitor/em_text.c
index 3a3682959..1077353e0 100644
--- a/src/exim_monitor/em_text.c
+++ b/src/exim_monitor/em_text.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2012 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "em_hdr.h"
diff --git a/src/exim_monitor/em_version.c b/src/exim_monitor/em_version.c
index b627a6e2b..c5d4d62d8 100644
--- a/src/exim_monitor/em_version.c
+++ b/src/exim_monitor/em_version.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#define EM_VERSION_C

diff --git a/src/exim_monitor/em_xs.c b/src/exim_monitor/em_xs.c
index ee91f7c15..dd19c7f43 100644
--- a/src/exim_monitor/em_xs.c
+++ b/src/exim_monitor/em_xs.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge, 1995 - 2016 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file contains a number of subroutines that are in effect
just alternative packaging for calls to various X functions that
diff --git a/src/scripts/Configure-config.h b/src/scripts/Configure-config.h
index 75d366fca..c750f64f1 100755
--- a/src/scripts/Configure-config.h
+++ b/src/scripts/Configure-config.h
@@ -1,4 +1,5 @@
#! /bin/sh
+# SPDX-License-Identifier: GPL-2.0-only

# Build the config.h file, using the buildconfig program, first ensuring that
# it exists.
diff --git a/src/scripts/Configure-os.c b/src/scripts/Configure-os.c
index f00a5627a..ab40ad183 100755
--- a/src/scripts/Configure-os.c
+++ b/src/scripts/Configure-os.c
@@ -1,4 +1,5 @@
#! /bin/sh
+# SPDX-License-Identifier: GPL-2.0-only

# Shell script to build os.c. There doesn't have to be an OS-specific os.c
# file, but if there is, it gets copied at the start of os.c. The basic src
diff --git a/src/scripts/Configure-os.h b/src/scripts/Configure-os.h
index ae1ecf943..f95a61a5d 100755
--- a/src/scripts/Configure-os.h
+++ b/src/scripts/Configure-os.h
@@ -1,4 +1,5 @@
#! /bin/sh
+# SPDX-License-Identifier: GPL-2.0-only

# Shell script to create a link to the appropriate OS-specific header file.

diff --git a/src/src/acl.c b/src/src/acl.c
index 1e7d28a90..92af9991f 100644
--- a/src/src/acl.c
+++ b/src/src/acl.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Code for handling Access Control Lists (ACLs) */

diff --git a/src/src/arc.c b/src/src/arc.c
index 86688f6e3..e3a2b3dad 100644
--- a/src/src/arc.c
+++ b/src/src/arc.c
@@ -5,6 +5,7 @@
    Copyright (c) Jeremy Harris 2018 - 2020
    Copyright (c) The Exim Maintainers 2021 - 2022
    License: GPL
+   SPDX-License-Identifier: GPL-2.0-only
 */


#include "exim.h"
diff --git a/src/src/auths/auth-spa.c b/src/src/auths/auth-spa.c
index 8d886b6b6..32276c3f3 100644
--- a/src/src/auths/auth-spa.c
+++ b/src/src/auths/auth-spa.c
@@ -10,6 +10,7 @@
* Samba project (by Andrew Tridgell, Jeremy Allison, and others).
*
* Copyright (c) The Exim Maintainers 2021
+ * SPDX-License-Identifier: GPL-2.0-only

* Tom Kistner provided additional code, adding spa_build_auth_challenge() to
* support server authentication mode.
diff --git a/src/src/auths/auth-spa.h b/src/src/auths/auth-spa.h
index cfe1b086d..df250d7a6 100644
--- a/src/src/auths/auth-spa.h
+++ b/src/src/auths/auth-spa.h
@@ -9,6 +9,7 @@
* All the code used here was torn by Marc Prud'hommeaux out of the
* Samba project (by Andrew Tridgell, Jeremy Allison, and others).
*/
+/* SPDX-License-Identifier: GPL-2.0-only */

/* December 2004: The spa_base64_to_bits() function has no length checking in
it. I have added a check. PH */
diff --git a/src/src/auths/call_pam.c b/src/src/auths/call_pam.c
index 80f80f1a8..483b083be 100644
--- a/src/src/auths/call_pam.c
+++ b/src/src/auths/call_pam.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"

diff --git a/src/src/auths/call_pwcheck.c b/src/src/auths/call_pwcheck.c
index 0adde4471..436b1a8de 100644
--- a/src/src/auths/call_pwcheck.c
+++ b/src/src/auths/call_pwcheck.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This module contains interface functions to the two Cyrus authentication
daemons. The original one was "pwcheck", which gives its name to the source
diff --git a/src/src/auths/call_radius.c b/src/src/auths/call_radius.c
index e7f9f521d..f4d7a9569 100644
--- a/src/src/auths/call_radius.c
+++ b/src/src/auths/call_radius.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2016 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file was originally supplied by Ian Kirk. The libradius support came
from Alex Kiernan. */
diff --git a/src/src/auths/check_serv_cond.c b/src/src/auths/check_serv_cond.c
index 457a7150c..033d2026b 100644
--- a/src/src/auths/check_serv_cond.c
+++ b/src/src/auths/check_serv_cond.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2012 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"

diff --git a/src/src/auths/cram_md5.c b/src/src/auths/cram_md5.c
index 2c0616ca2..60128b83e 100644
--- a/src/src/auths/cram_md5.c
+++ b/src/src/auths/cram_md5.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* The stand-alone version just tests the algorithm. We have to drag
diff --git a/src/src/auths/cram_md5.h b/src/src/auths/cram_md5.h
index 95644db68..25470a61b 100644
--- a/src/src/auths/cram_md5.h
+++ b/src/src/auths/cram_md5.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/auths/cyrus_sasl.c b/src/src/auths/cyrus_sasl.c
index c8e2da5de..4fe257ba7 100644
--- a/src/src/auths/cyrus_sasl.c
+++ b/src/src/auths/cyrus_sasl.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This code was originally contributed by Matthew Byng-Maddick */

diff --git a/src/src/auths/cyrus_sasl.h b/src/src/auths/cyrus_sasl.h
index 6cf883454..144ac5c80 100644
--- a/src/src/auths/cyrus_sasl.h
+++ b/src/src/auths/cyrus_sasl.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2022 */
/* Copyright (c) University of Cambridge 1995 - 2012 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Copyright (c) A L Digital Ltd 2004 */

diff --git a/src/src/auths/dovecot.c b/src/src/auths/dovecot.c
index 5d7713389..ed56ab8cd 100644
--- a/src/src/auths/dovecot.c
+++ b/src/src/auths/dovecot.c
@@ -1,6 +1,7 @@
/*
* Copyright (c) The Exim Maintainers 2006 - 2022
* Copyright (c) 2004 Andrey Panin <pazke@???>
+ * SPDX-License-Identifier: GPL-2.0-or-later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/src/auths/dovecot.h b/src/src/auths/dovecot.h
index bfe1f0775..b5eaf4f16 100644
--- a/src/src/auths/dovecot.h
+++ b/src/src/auths/dovecot.h
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* Copyright (c) The Exim Maintainters 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/auths/external.c b/src/src/auths/external.c
index 7e7fca841..736c33982 100644
--- a/src/src/auths/external.c
+++ b/src/src/auths/external.c
@@ -4,6 +4,7 @@

/* Copyright (c) Jeremy Harris 2019-2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file provides an Exim authenticator driver for
a server to verify a client SSL certificate, using the EXTERNAL
diff --git a/src/src/auths/external.h b/src/src/auths/external.h
index 7d43650bb..9abb46a6b 100644
--- a/src/src/auths/external.h
+++ b/src/src/auths/external.h
@@ -4,6 +4,7 @@

/* Copyright (c) Jeremy Harris 2019 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/auths/get_data.c b/src/src/auths/get_data.c
index e0d79db3c..0c85d2651 100644
--- a/src/src/auths/get_data.c
+++ b/src/src/auths/get_data.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"

diff --git a/src/src/auths/get_no64_data.c b/src/src/auths/get_no64_data.c
index a019756e5..76f421473 100644
--- a/src/src/auths/get_no64_data.c
+++ b/src/src/auths/get_no64_data.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"

diff --git a/src/src/auths/gsasl_exim.c b/src/src/auths/gsasl_exim.c
index e49e83b81..aac9c84e6 100644
--- a/src/src/auths/gsasl_exim.c
+++ b/src/src/auths/gsasl_exim.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2019 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

 /* Copyright (c) Twitter Inc 2012
    Author: Phil Pennock <pdp@???> */
diff --git a/src/src/auths/gsasl_exim.h b/src/src/auths/gsasl_exim.h
index 19c903611..691d7d706 100644
--- a/src/src/auths/gsasl_exim.h
+++ b/src/src/auths/gsasl_exim.h
@@ -5,6 +5,7 @@
 /* Copyright (c) The Exim Maintainers 2019 - 2022 */
 /* Copyright (c) University of Cambridge 1995 - 2012 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Copyright (c) Twitter Inc 2012 */

diff --git a/src/src/auths/heimdal_gssapi.c b/src/src/auths/heimdal_gssapi.c
index 381763299..12267e3fc 100644
--- a/src/src/auths/heimdal_gssapi.c
+++ b/src/src/auths/heimdal_gssapi.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

 /* Copyright (c) Twitter Inc 2012
    Author: Phil Pennock <pdp@???> */
diff --git a/src/src/auths/heimdal_gssapi.h b/src/src/auths/heimdal_gssapi.h
index 49775aff9..031b580ef 100644
--- a/src/src/auths/heimdal_gssapi.h
+++ b/src/src/auths/heimdal_gssapi.h
@@ -5,6 +5,7 @@
 /* Copyright (c) The Exim Maintainers 2022 */
 /* Copyright (c) University of Cambridge 1995 - 2012 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


 /* Copyright (c) Twitter Inc 2012
    Author: Phil Pennock <pdp@???> */
diff --git a/src/src/auths/plaintext.c b/src/src/auths/plaintext.c
index 58d178359..61be5867e 100644
--- a/src/src/auths/plaintext.c
+++ b/src/src/auths/plaintext.c
@@ -5,6 +5,7 @@
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 /* Copyright (c) The Exim Maintainers 2020 - 2021 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
#include "plaintext.h"
diff --git a/src/src/auths/plaintext.h b/src/src/auths/plaintext.h
index 4c6d01136..49862ff9b 100644
--- a/src/src/auths/plaintext.h
+++ b/src/src/auths/plaintext.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/auths/pwcheck.c b/src/src/auths/pwcheck.c
index 7dd529fbc..aff5ed39c 100644
--- a/src/src/auths/pwcheck.c
+++ b/src/src/auths/pwcheck.c
@@ -4,6 +4,7 @@
* $Id: checkpw.c,v 1.49 2002/03/07 19:14:04 ken3 Exp $
*/
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
+/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2001 Carnegie Mellon University. All rights reserved.
*
diff --git a/src/src/auths/pwcheck.h b/src/src/auths/pwcheck.h
index 1287ea253..4247b4e8b 100644
--- a/src/src/auths/pwcheck.h
+++ b/src/src/auths/pwcheck.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file provides support for authentication via the Cyrus SASL pwcheck
daemon (whence its name) and the newer saslauthd daemon. */
diff --git a/src/src/auths/spa.c b/src/src/auths/spa.c
index ff90d33a3..c5e6d83d5 100644
--- a/src/src/auths/spa.c
+++ b/src/src/auths/spa.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file, which provides support for Microsoft's Secure Password
Authentication, was contributed by Marc Prud'hommeaux. Tom Kistner added SPA
diff --git a/src/src/auths/spa.h b/src/src/auths/spa.h
index ca93469a3..4321971d9 100644
--- a/src/src/auths/spa.h
+++ b/src/src/auths/spa.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file, which provides support for Microsoft's Secure Password
Authentication, was contributed by Marc Prud'hommeaux. */
diff --git a/src/src/auths/tls.c b/src/src/auths/tls.c
index 325e7b4c7..d3ca8f796 100644
--- a/src/src/auths/tls.c
+++ b/src/src/auths/tls.c
@@ -4,6 +4,7 @@

/* Copyright (c) Jeremy Harris 1995 - 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file provides an Exim authenticator driver for
a server to verify a client SSL certificate
diff --git a/src/src/auths/tls.h b/src/src/auths/tls.h
index 7aa95b6c7..24e116464 100644
--- a/src/src/auths/tls.h
+++ b/src/src/auths/tls.h
@@ -4,6 +4,7 @@

/* Copyright (c) Jeremy Harris 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/auths/xtextdecode.c b/src/src/auths/xtextdecode.c
index 746dfbdb4..39c1f2b60 100644
--- a/src/src/auths/xtextdecode.c
+++ b/src/src/auths/xtextdecode.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2022 */
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"

diff --git a/src/src/auths/xtextencode.c b/src/src/auths/xtextencode.c
index fc571c799..89f12f1f1 100644
--- a/src/src/auths/xtextencode.c
+++ b/src/src/auths/xtextencode.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"

diff --git a/src/src/base64.c b/src/src/base64.c
index fa06a7a34..14e8cfffe 100644
--- a/src/src/base64.c
+++ b/src/src/base64.c
@@ -4,6 +4,7 @@

/* Copyright (c) Tom Kistner <tom@???> 2004, 2015 */
/* License: GPL */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
diff --git a/src/src/blob.h b/src/src/blob.h
index a3f1e24d4..95a987f0a 100644
--- a/src/src/blob.h
+++ b/src/src/blob.h
@@ -2,6 +2,7 @@
* Blob - a general pointer/size item for a memory chunk
*
* Copyright (C) 2016 Exim maintainers
+ * SPDX-License-Identifier: GPL-2.0-only
*/

 #ifndef BLOB_H    /* entire file */
diff --git a/src/src/bmi_spam.c b/src/src/bmi_spam.c
index af4bc4640..140bec48f 100644
--- a/src/src/bmi_spam.c
+++ b/src/src/bmi_spam.c
@@ -6,6 +6,7 @@
    Copyright (c) Tom Kistner <tom@???> 2004
    License: GPL */
 /* Copyright (c) The Exim Maintainers 2021 - 2022 */
+/* SPDX-License-Identifier: GPL-2.0-only */


 #include "exim.h"
 #ifdef EXPERIMENTAL_BRIGHTMAIL
diff --git a/src/src/bmi_spam.h b/src/src/bmi_spam.h
index a9af7784e..a9833b200 100644
--- a/src/src/bmi_spam.h
+++ b/src/src/bmi_spam.h
@@ -5,6 +5,7 @@
 /* Code for calling Brightmail AntiSpam.
    Copyright (c) Tom Kistner <tom@???> 2004
    License: GPL */
+/* SPDX-License-Identifier: GPL-2.0-only */


#ifdef EXPERIMENTAL_BRIGHTMAIL

diff --git a/src/src/buildconfig.c b/src/src/buildconfig.c
index bbbaefe9c..710b53550 100644
--- a/src/src/buildconfig.c
+++ b/src/src/buildconfig.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/*************************************************
diff --git a/src/src/child.c b/src/src/child.c
index 1f38b585c..b94e814a1 100644
--- a/src/src/child.c
+++ b/src/src/child.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "exim.h"
diff --git a/src/src/crypt16.c b/src/src/crypt16.c
index 56353c326..659bf88bd 100644
--- a/src/src/crypt16.c
+++ b/src/src/crypt16.c
@@ -2,6 +2,7 @@
* Copyright (c) 2000-2002
* Chris Adams <cmadams@???>
* written for HiWAAY Internet Services
+ * SPDX-License-Identifier: GPL-2.0-or-later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/src/daemon.c b/src/src/daemon.c
index 8446f81cb..0afc7ca86 100644
--- a/src/src/daemon.c
+++ b/src/src/daemon.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions concerned with running Exim as a daemon */

diff --git a/src/src/dane.c b/src/src/dane.c
index 5ba61961a..f2ad22481 100644
--- a/src/src/dane.c
+++ b/src/src/dane.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2012, 2014 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This module provides DANE (RFC6659) support for Exim. See also
the draft RFC for DANE-over-SMTP, "SMTP security via opportunistic DANE TLS"
diff --git a/src/src/dbfn.c b/src/src/dbfn.c
index ea94b7ff0..f932520f9 100644
--- a/src/src/dbfn.c
+++ b/src/src/dbfn.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "exim.h"
diff --git a/src/src/dbfunctions.h b/src/src/dbfunctions.h
index 07d4a6233..93e1d3405 100644
--- a/src/src/dbfunctions.h
+++ b/src/src/dbfunctions.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2022 */
/* Copyright (c) University of Cambridge 1995 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef DBFUNCTIONS_H
#define DBFUNCTIONS_H
diff --git a/src/src/dcc.c b/src/src/dcc.c
index 56dd6d570..d8e22b30c 100644
--- a/src/src/dcc.c
+++ b/src/src/dcc.c
@@ -8,6 +8,7 @@
* See the file NOTICE for conditions of use and distribution.
*
* Copyright (c) The Exim Maintainers 2015 - 2022
+ * SPDX-License-Identifier: GPL-2.0-only
*/

/* Code for calling dccifd. Called from acl.c. */
diff --git a/src/src/debug.c b/src/src/debug.c
index 26d09ea2f..38e8f8001 100644
--- a/src/src/debug.c
+++ b/src/src/debug.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2015 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "exim.h"
diff --git a/src/src/deliver.c b/src/src/deliver.c
index 725d0c872..719fa9d93 100644
--- a/src/src/deliver.c
+++ b/src/src/deliver.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* The main code for delivering a message. */

diff --git a/src/src/directory.c b/src/src/directory.c
index 189020855..c3b341bbb 100644
--- a/src/src/directory.c
+++ b/src/src/directory.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2010 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "exim.h"

diff --git a/src/src/dkim.c b/src/src/dkim.c
index bb916d2eb..9b6e14a3f 100644
--- a/src/src/dkim.c
+++ b/src/src/dkim.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge, 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

 /* Code for DKIM support. Other DKIM relevant code is in
    receive.c, transport.c and transports/smtp.c */
diff --git a/src/src/dkim.h b/src/src/dkim.h
index 7b94f22ef..61d83a9df 100644
--- a/src/src/dkim.h
+++ b/src/src/dkim.h
@@ -4,6 +4,7 @@


/* Copyright (c) University of Cambridge, 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

 void    dkim_exim_init(void);
 gstring * dkim_exim_sign(int, off_t, uschar *, struct ob_dkim *, const uschar **);
diff --git a/src/src/dkim_transport.c b/src/src/dkim_transport.c
index cfd4b9085..142f4552a 100644
--- a/src/src/dkim_transport.c
+++ b/src/src/dkim_transport.c
@@ -5,6 +5,7 @@
 /* Copyright (c) The Exim Maintainers 2022 */
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Transport shim for dkim signing */

diff --git a/src/src/dmarc.c b/src/src/dmarc.c
index 53c2752ac..c0313bf5c 100644
--- a/src/src/dmarc.c
+++ b/src/src/dmarc.c
@@ -5,6 +5,7 @@
    Copyright (c) The Exim Maintainers 2019 - 2022
    Copyright (c) Todd Lyons <tlyons@???> 2012 - 2014
    License: GPL */
+/* SPDX-License-Identifier: GPL-2.0-only */


 /* Portions Copyright (c) 2012, 2013, The Trusted Domain Project;
    All rights reserved, licensed for use per LICENSE.opendmarc. */
diff --git a/src/src/dmarc.h b/src/src/dmarc.h
index 899cd7e13..f71f1fd5a 100644
--- a/src/src/dmarc.h
+++ b/src/src/dmarc.h
@@ -6,6 +6,7 @@
    Copyright (c) The Exim Maintainers 2021 - 2022
    Copyright (c) Todd Lyons <tlyons@???> 2012 - 2014
    License: GPL */
+/* SPDX-License-Identifier: GPL-2.0-only */


 /* Portions Copyright (c) 2012, 2013, The Trusted Domain Project;
    All rights reserved, licensed for use per LICENSE.opendmarc. */
diff --git a/src/src/dns.c b/src/src/dns.c
index 4071c5822..8106fb688 100644
--- a/src/src/dns.c
+++ b/src/src/dns.c
@@ -5,6 +5,7 @@
 /* Copyright (c) The Exim Maintainers 2020 - 2022 */
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Functions for interfacing with the DNS. */

diff --git a/src/src/dnsbl.c b/src/src/dnsbl.c
index db839af04..af80f6be1 100644
--- a/src/src/dnsbl.c
+++ b/src/src/dnsbl.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions concerned with dnsbls */

diff --git a/src/src/drtables.c b/src/src/drtables.c
index 30eb855e3..a6cbede89 100644
--- a/src/src/drtables.c
+++ b/src/src/drtables.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "exim.h"
diff --git a/src/src/dummies.c b/src/src/dummies.c
index 38b514b6c..a72767ccd 100644
--- a/src/src/dummies.c
+++ b/src/src/dummies.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file is not part of the main Exim code. There are little bits of test
code for some of Exim's modules, and when they are used, the module they are
diff --git a/src/src/enq.c b/src/src/enq.c
index f7f8c9c16..054aeaed8 100644
--- a/src/src/enq.c
+++ b/src/src/enq.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions concerned with serialization. */

diff --git a/src/src/environment.c b/src/src/environment.c
index 9cb90c86f..06f804e69 100644
--- a/src/src/environment.c
+++ b/src/src/environment.c
@@ -5,6 +5,7 @@
/* Copyright (c) Heiko Schlittermann 2016
* hs@???
* See the file NOTICE for conditions of use and distribution.
+ * SPDX-License-Identifier: GPL-2.0-only
*/

#include "exim.h"
diff --git a/src/src/exim.c b/src/src/exim.c
index 3cd1d5f6d..62413e367 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* The main function: entry point, initialization, and high-level control.
diff --git a/src/src/exim.h b/src/src/exim.h
index 61642b5e7..24fedcced 100644
--- a/src/src/exim.h
+++ b/src/src/exim.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Source files for exim all #include this header, which drags in everything
diff --git a/src/src/exim_dbmbuild.c b/src/src/exim_dbmbuild.c
index 5c046347b..bb04adc02 100644
--- a/src/src/exim_dbmbuild.c
+++ b/src/src/exim_dbmbuild.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* A small freestanding program to build dbm databases from serial input. For
diff --git a/src/src/exim_dbutil.c b/src/src/exim_dbutil.c
index 3824309b5..669f7098d 100644
--- a/src/src/exim_dbutil.c
+++ b/src/src/exim_dbutil.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* This single source file is used to compile three utility programs for
diff --git a/src/src/exim_lock.c b/src/src/exim_lock.c
index 427d22c1e..1a54a92ad 100644
--- a/src/src/exim_lock.c
+++ b/src/src/exim_lock.c
@@ -11,6 +11,7 @@ Default is -fcntl -lockfile.
Argument: the name of the lock file

Copyright (c) The Exim Maintainers 2016 - 2021
+SPDX-License-Identifier: GPL-2.0-only
*/

#include "os.h"
diff --git a/src/src/expand.c b/src/src/expand.c
index ff0b4d600..050f01297 100644
--- a/src/src/expand.c
+++ b/src/src/expand.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Functions for handling string expansion. */
diff --git a/src/src/filter.c b/src/src/filter.c
index cc4af230e..82a9122c6 100644
--- a/src/src/filter.c
+++ b/src/src/filter.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Code for mail filtering functions. */
diff --git a/src/src/filtertest.c b/src/src/filtertest.c
index 87ebfb14f..8bab65e78 100644
--- a/src/src/filtertest.c
+++ b/src/src/filtertest.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Code for the filter test function. */
diff --git a/src/src/functions.h b/src/src/functions.h
index d5164547a..be1fae00d 100644
--- a/src/src/functions.h
+++ b/src/src/functions.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Prototypes for functions that appear in various modules. Gathered together
diff --git a/src/src/globals.c b/src/src/globals.c
index cafb15992..429952edc 100644
--- a/src/src/globals.c
+++ b/src/src/globals.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* All the global variables are defined together in this one module, so
that they are easy to find. */
diff --git a/src/src/globals.h b/src/src/globals.h
index 1be96daec..48d93a1c3 100644
--- a/src/src/globals.h
+++ b/src/src/globals.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Almost all the global variables are defined together in this one header, so
that they are easy to find. However, those that are visible during the
diff --git a/src/src/hash.c b/src/src/hash.c
index 51bcd4604..2b71463f1 100644
--- a/src/src/hash.c
+++ b/src/src/hash.c
@@ -3,6 +3,7 @@
*
* Copyright (c) The Exim Maintainers 2010 - 2022
* Copyright (c) University of Cambridge 1995 - 2009
+ * SPDX-License-Identifier: GPL-2.0-only
*
* Hash interface functions
*/
diff --git a/src/src/hash.h b/src/src/hash.h
index 588325baf..c94e53129 100644
--- a/src/src/hash.h
+++ b/src/src/hash.h
@@ -1,6 +1,7 @@
/*
* Exim - an Internet mail transport agent
* Copyright (c) The Exim Maintainers 1995 - 2022
+ * SPDX-License-Identifier: GPL-2.0-only
*
* Hash interface functions
*/
diff --git a/src/src/header.c b/src/src/header.c
index 7ef59ff53..2a8fbfe64 100644
--- a/src/src/header.c
+++ b/src/src/header.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2016 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "exim.h"
diff --git a/src/src/hintsdb.h b/src/src/hintsdb.h
index b8e6744d6..e79e6bd49 100644
--- a/src/src/hintsdb.h
+++ b/src/src/hintsdb.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This header file contains macro definitions so that a variety of DBM
libraries can be used by Exim. Nigel Metheringham provided the original set for
diff --git a/src/src/hintsdb_structs.h b/src/src/hintsdb_structs.h
index e0670a10e..27cd9edf9 100644
--- a/src/src/hintsdb_structs.h
+++ b/src/src/hintsdb_structs.h
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This header file contains the definitions of the structures used in the
various hints databases are also kept in this file, which is used by the
diff --git a/src/src/host.c b/src/src/host.c
index b6c2ea082..874e19a08 100644
--- a/src/src/host.c
+++ b/src/src/host.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for finding hosts, either by gethostbyname(), gethostbyaddr(), or
directly via the DNS. When IPv6 is supported, getipnodebyname() and
diff --git a/src/src/host_address.c b/src/src/host_address.c
index 9e6f958be..28a8a685f 100644
--- a/src/src/host_address.c
+++ b/src/src/host_address.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "exim.h"

diff --git a/src/src/imap_utf7.c b/src/src/imap_utf7.c
index aac0fef6a..75ecb1a4b 100644
--- a/src/src/imap_utf7.c
+++ b/src/src/imap_utf7.c
@@ -1,5 +1,6 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "exim.h"

diff --git a/src/src/ip.c b/src/src/ip.c
index aa42343fb..2ac2b267d 100644
--- a/src/src/ip.c
+++ b/src/src/ip.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for doing things with sockets. With the advent of IPv6 this has
got messier, so that it's worth pulling out the code into separate functions
diff --git a/src/src/local_scan.c b/src/src/local_scan.c
index 7a3bae7e3..85ecba8cb 100644
--- a/src/src/local_scan.c
+++ b/src/src/local_scan.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/******************************************************************************
diff --git a/src/src/local_scan.h b/src/src/local_scan.h
index c609a27e3..2eabc5929 100644
--- a/src/src/local_scan.h
+++ b/src/src/local_scan.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file is the header that is the only Exim header to be included in the
source for the local_scan.c() function. It contains definitions that are made
diff --git a/src/src/log.c b/src/src/log.c
index a46d523db..f1d435ce4 100644
--- a/src/src/log.c
+++ b/src/src/log.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for writing log files. The code for maintaining datestamped
log files was originally contributed by Tony Sheen. */
diff --git a/src/src/lookupapi.h b/src/src/lookupapi.h
index 41cc239ce..cec8f976b 100644
--- a/src/src/lookupapi.h
+++ b/src/src/lookupapi.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* The "type" field in each item is a set of bit flags:
diff --git a/src/src/lookups/cdb.c b/src/src/lookups/cdb.c
index 966078f1a..696e52019 100644
--- a/src/src/lookups/cdb.c
+++ b/src/src/lookups/cdb.c
@@ -8,6 +8,7 @@
*
* Copyright (c) The Exim Maintainers 2020 - 2022
* Copyright (c) 1998 Nigel Metheringham, Planet Online Ltd
+ * SPDX-License-Identifier: GPL-2.0-or-later
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
diff --git a/src/src/lookups/dbmdb.c b/src/src/lookups/dbmdb.c
index 32514afcc..c99e948b5 100644
--- a/src/src/lookups/dbmdb.c
+++ b/src/src/lookups/dbmdb.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "lf_functions.h"
diff --git a/src/src/lookups/dnsdb.c b/src/src/lookups/dnsdb.c
index 355be1b5d..4f43cf674 100644
--- a/src/src/lookups/dnsdb.c
+++ b/src/src/lookups/dnsdb.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "lf_functions.h"
diff --git a/src/src/lookups/dsearch.c b/src/src/lookups/dsearch.c
index a7691024a..6cae0dafb 100644
--- a/src/src/lookups/dsearch.c
+++ b/src/src/lookups/dsearch.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* The idea for this code came from Matthew Byng-Maddick, but his original has
been heavily reworked a lot for Exim 4 (and it now uses stat() (more precisely:
diff --git a/src/src/lookups/ibase.c b/src/src/lookups/ibase.c
index c4fff71bd..d42e490c4 100644
--- a/src/src/lookups/ibase.c
+++ b/src/src/lookups/ibase.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* The code in this module was contributed by Ard Biesheuvel. */

diff --git a/src/src/lookups/json.c b/src/src/lookups/json.c
index c9abf8c4c..b1e5fb742 100644
--- a/src/src/lookups/json.c
+++ b/src/src/lookups/json.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) Jeremy Harris 2019 - 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "lf_functions.h"
diff --git a/src/src/lookups/ldap.c b/src/src/lookups/ldap.c
index 9751fa3b3..17c431e5c 100644
--- a/src/src/lookups/ldap.c
+++ b/src/src/lookups/ldap.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Many thanks to Stuart Lynne for contributing the original code for this
driver. Further contributions from Michael Haardt, Brian Candler, Barry
diff --git a/src/src/lookups/ldap.h b/src/src/lookups/ldap.h
index ddfda8597..30228aebe 100644
--- a/src/src/lookups/ldap.h
+++ b/src/src/lookups/ldap.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Header for eldapauth_find */

diff --git a/src/src/lookups/lf_check_file.c b/src/src/lookups/lf_check_file.c
index 7f0f12806..1649f9f83 100644
--- a/src/src/lookups/lf_check_file.c
+++ b/src/src/lookups/lf_check_file.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/lookups/lf_functions.h b/src/src/lookups/lf_functions.h
index fd9eb303a..b83b9652a 100644
--- a/src/src/lookups/lf_functions.h
+++ b/src/src/lookups/lf_functions.h
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Header for the functions that are shared by the lookups */

diff --git a/src/src/lookups/lf_quote.c b/src/src/lookups/lf_quote.c
index 6f4143d9f..816fe01e2 100644
--- a/src/src/lookups/lf_quote.c
+++ b/src/src/lookups/lf_quote.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/lookups/lf_sqlperform.c b/src/src/lookups/lf_sqlperform.c
index ce6f1635a..cf4b9cd0b 100644
--- a/src/src/lookups/lf_sqlperform.c
+++ b/src/src/lookups/lf_sqlperform.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/lookups/lmdb.c b/src/src/lookups/lmdb.c
index a32c7f7fb..ccfdbe453 100644
--- a/src/src/lookups/lmdb.c
+++ b/src/src/lookups/lmdb.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 2016 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"

diff --git a/src/src/lookups/lsearch.c b/src/src/lookups/lsearch.c
index dcfdec91e..da73ae8bf 100644
--- a/src/src/lookups/lsearch.c
+++ b/src/src/lookups/lsearch.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "lf_functions.h"
diff --git a/src/src/lookups/mysql.c b/src/src/lookups/mysql.c
index 78b8c2b19..a8dae4ade 100644
--- a/src/src/lookups/mysql.c
+++ b/src/src/lookups/mysql.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Thanks to Paul Kelly for contributing the original code for these
functions. */
diff --git a/src/src/lookups/nis.c b/src/src/lookups/nis.c
index 0024f44cf..e7c124757 100644
--- a/src/src/lookups/nis.c
+++ b/src/src/lookups/nis.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "lf_functions.h"
diff --git a/src/src/lookups/nisplus.c b/src/src/lookups/nisplus.c
index d9f3f7d83..78c79563f 100644
--- a/src/src/lookups/nisplus.c
+++ b/src/src/lookups/nisplus.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "lf_functions.h"
diff --git a/src/src/lookups/oracle.c b/src/src/lookups/oracle.c
index d32b5e44d..3f3868fe9 100644
--- a/src/src/lookups/oracle.c
+++ b/src/src/lookups/oracle.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Interface to an Oracle database. This code was originally supplied by
Paul Kelly, but I have hacked it around for various reasons, and tried to add
diff --git a/src/src/lookups/passwd.c b/src/src/lookups/passwd.c
index eaf78b210..7df1a5aaf 100644
--- a/src/src/lookups/passwd.c
+++ b/src/src/lookups/passwd.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"

diff --git a/src/src/lookups/pgsql.c b/src/src/lookups/pgsql.c
index 4bb693ad1..4fcd0e3ed 100644
--- a/src/src/lookups/pgsql.c
+++ b/src/src/lookups/pgsql.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Thanks to Petr Cech for contributing the original code for these
functions. Thanks to Joachim Wieland for the initial patch for the Unix domain
diff --git a/src/src/lookups/readsock.c b/src/src/lookups/readsock.c
index 22179c91c..7c7b9cfa8 100644
--- a/src/src/lookups/readsock.c
+++ b/src/src/lookups/readsock.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) Jeremy Harris 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "lf_functions.h"
diff --git a/src/src/lookups/redis.c b/src/src/lookups/redis.c
index 9c8559c1e..c7fcb66f0 100644
--- a/src/src/lookups/redis.c
+++ b/src/src/lookups/redis.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"

diff --git a/src/src/lookups/spf.c b/src/src/lookups/spf.c
index 78d954c8c..a1052d7fc 100644
--- a/src/src/lookups/spf.c
+++ b/src/src/lookups/spf.c
@@ -7,6 +7,7 @@

Copyright (c) The Exim Maintainers 2020 - 2022
Copyright (c) 2005 Chris Webb, Arachsys Internet Services Ltd
+SPDX-License-Identifier: GPL-2.0-or-later

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
diff --git a/src/src/lookups/sqlite.c b/src/src/lookups/sqlite.c
index 9080ae702..b9a735e18 100644
--- a/src/src/lookups/sqlite.c
+++ b/src/src/lookups/sqlite.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "lf_functions.h"
diff --git a/src/src/lookups/testdb.c b/src/src/lookups/testdb.c
index 48241615f..f94150b68 100644
--- a/src/src/lookups/testdb.c
+++ b/src/src/lookups/testdb.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "lf_functions.h"
diff --git a/src/src/lookups/whoson.c b/src/src/lookups/whoson.c
index 990703fd0..cd236787e 100644
--- a/src/src/lookups/whoson.c
+++ b/src/src/lookups/whoson.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This code originally came from Robert Wal. */

diff --git a/src/src/lss.c b/src/src/lss.c
index 167522d2f..0d20c07b6 100644
--- a/src/src/lss.c
+++ b/src/src/lss.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Support functions for calling from local_scan(). These are mostly just
wrappers for various internal functions. */
diff --git a/src/src/macro_predef.c b/src/src/macro_predef.c
index a0c659c9f..fe814500d 100644
--- a/src/src/macro_predef.c
+++ b/src/src/macro_predef.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) Jeremy Harris 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Create a static data structure with the predefined macros, to be
included in the main Exim build */
diff --git a/src/src/macro_predef.h b/src/src/macro_predef.h
index 59b1bbe3b..d3bc5c074 100644
--- a/src/src/macro_predef.h
+++ b/src/src/macro_predef.h
@@ -5,6 +5,7 @@
/* Copyright (c) Jeremy Harris 2017 - 2018 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Global functions */

diff --git a/src/src/macros.h b/src/src/macros.h
index adbe6a267..db1c34b65 100644
--- a/src/src/macros.h
+++ b/src/src/macros.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* These two macros make it possible to obtain the result of macro-expanding
diff --git a/src/src/malware.c b/src/src/malware.c
index 01dd455ba..96514e276 100644
--- a/src/src/malware.c
+++ b/src/src/malware.c
@@ -6,6 +6,7 @@
* Copyright (c) The Exim Maintainers 2015 - 2022
* Copyright (c) Tom Kistner <tom@???> 2003 - 2015
* License: GPL
+ * SPDX-License-Identifier: GPL-2.0-only
*/

/* Code for calling virus (malware) scanners. Called from acl.c. */
diff --git a/src/src/match.c b/src/src/match.c
index b4a0352ee..a877aef3b 100644
--- a/src/src/match.c
+++ b/src/src/match.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for matching strings */

diff --git a/src/src/md5.c b/src/src/md5.c
index fdb144e67..e6df32c7a 100644
--- a/src/src/md5.c
+++ b/src/src/md5.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef STAND_ALONE
#include "exim.h"
diff --git a/src/src/mime.c b/src/src/mime.c
index c1921992e..bebe9bf44 100644
--- a/src/src/mime.c
+++ b/src/src/mime.c
@@ -6,6 +6,7 @@
* Copyright (c) The Exim Maintainers 2015 - 2022
* Copyright (c) Tom Kistner <tom@???> 2004 - 2015
* License: GPL
+ * SPDX-License-Identifier: GPL-2.0-only
*/

#include "exim.h"
diff --git a/src/src/mime.h b/src/src/mime.h
index 5fd4392d5..48bbd81de 100644
--- a/src/src/mime.h
+++ b/src/src/mime.h
@@ -5,6 +5,7 @@
/* Copyright (c) Tom Kistner <tom@???> 2004, 2015
* License: GPL
* Copyright (c) The Exim Maintainers 2016
+ * SPDX-License-Identifier: GPL-2.0-only
*/

#ifdef WITH_CONTENT_SCAN
diff --git a/src/src/moan.c b/src/src/moan.c
index 4f2550d82..387359458 100644
--- a/src/src/moan.c
+++ b/src/src/moan.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for sending messages to sender or to mailmaster. */

diff --git a/src/src/mytypes.h b/src/src/mytypes.h
index 141d2c613..06426af7a 100644
--- a/src/src/mytypes.h
+++ b/src/src/mytypes.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* This header file contains type definitions and macros that I use as
diff --git a/src/src/os.c b/src/src/os.c
index ac5f61b65..4edb2ca98 100644
--- a/src/src/os.c
+++ b/src/src/os.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#ifdef STAND_ALONE
# include <signal.h>
diff --git a/src/src/osfunctions.h b/src/src/osfunctions.h
index 547cf1379..454e9f77f 100644
--- a/src/src/osfunctions.h
+++ b/src/src/osfunctions.h
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2016 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Prototypes for os-specific functions. For utilities, we don't need the one
that uses a type that isn't defined for them. */
diff --git a/src/src/parse.c b/src/src/parse.c
index bdba3ecd0..93b12bc77 100644
--- a/src/src/parse.c
+++ b/src/src/parse.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for parsing addresses */

diff --git a/src/src/pdkim/crypt_ver.h b/src/src/pdkim/crypt_ver.h
index a6d7e36af..367527e39 100644
--- a/src/src/pdkim/crypt_ver.h
+++ b/src/src/pdkim/crypt_ver.h
@@ -4,6 +4,7 @@

/* Copyright (c) Jeremy Harris 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Signing and hashing routine selection for PDKIM */

diff --git a/src/src/pdkim/pdkim.c b/src/src/pdkim/pdkim.c
index e47bfc505..eb26b3864 100644
--- a/src/src/pdkim/pdkim.c
+++ b/src/src/pdkim/pdkim.c
@@ -4,6 +4,7 @@
* Copyright (c) The Exim Maintainers 2021 - 2022
* Copyright (C) 2009 - 2016 Tom Kistner <tom@???>
* Copyright (C) 2016 - 2020 Jeremy Harris <jgh@???>
+ * SPDX-License-Identifier: GPL-2.0-or-later
*
* http://duncanthrax.net/pdkim/
*
diff --git a/src/src/pdkim/pdkim.h b/src/src/pdkim/pdkim.h
index f6ff78251..f918938e8 100644
--- a/src/src/pdkim/pdkim.h
+++ b/src/src/pdkim/pdkim.h
@@ -3,6 +3,7 @@
*
* Copyright (C) 2009 - 2012 Tom Kistner <tom@???>
* Copyright (c) 2016 - 2020 Jeremy Harris
+ * SPDX-License-Identifier: GPL-2.0-or-later
*
* http://duncanthrax.net/pdkim/
*
diff --git a/src/src/pdkim/pdkim_hash.h b/src/src/pdkim/pdkim_hash.h
index 8f9a12628..e470299a4 100644
--- a/src/src/pdkim/pdkim_hash.h
+++ b/src/src/pdkim/pdkim_hash.h
@@ -2,6 +2,7 @@
* PDKIM - a RFC4871 (DKIM) implementation
*
* Copyright (C) 1995 - 2018 Exim maintainers
+ * SPDX-License-Identifier: GPL-2.0-only
*
* Hash interface functions
*/
diff --git a/src/src/pdkim/signing.c b/src/src/pdkim/signing.c
index d78f31acf..8876f617c 100644
--- a/src/src/pdkim/signing.c
+++ b/src/src/pdkim/signing.c
@@ -1,6 +1,7 @@
/*
* PDKIM - a RFC4871 (DKIM) implementation
* Copyright (c) The Exim Maintainers 1995 - 2022
+ * SPDX-License-Identifier: GPL-2.0-only
*
* signing/verification interface
*/
diff --git a/src/src/pdkim/signing.h b/src/src/pdkim/signing.h
index ed6f397ce..880342b6f 100644
--- a/src/src/pdkim/signing.h
+++ b/src/src/pdkim/signing.h
@@ -2,6 +2,7 @@
* PDKIM - a RFC4871 (DKIM) implementation
*
* Copyright (C) 1995 - 2020 Exim maintainers
+ * SPDX-License-Identifier: GPL-2.0-only
*
* RSA signing/verification interface
*/
diff --git a/src/src/perl.c b/src/src/perl.c
index f07ee2e27..b5c3f882e 100644
--- a/src/src/perl.c
+++ b/src/src/perl.c
@@ -4,6 +4,7 @@

/* Copyright (c) The Exim Maintainers 1999 - 2022 */
/* Copyright (c) 1998 Malcolm Beattie */
+/* SPDX-License-Identifier: GPL-2.0-only */

 /* Modified by PH to get rid of the "na" usage, March 1999.
    Modified further by PH for general tidying for Exim 4.
diff --git a/src/src/priv.c b/src/src/priv.c
index 94d425401..c818b5b78 100644
--- a/src/src/priv.c
+++ b/src/src/priv.c
@@ -1,3 +1,6 @@
+/* Copyright (c)  The Exim Maintainers 2022 *
+/* SPDX-License-Identifier: GPL-2.0-only */
+
 #include "exim.h"
 #include <sys/types.h>
 #include <unistd.h>
diff --git a/src/src/queue.c b/src/src/queue.c
index 6e47d2c8a..fd84d303f 100644
--- a/src/src/queue.c
+++ b/src/src/queue.c
@@ -5,6 +5,7 @@
 /* Copyright (c) The Exim Maintainers 2020 - 2022 */
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Functions that operate on the input queue. */

diff --git a/src/src/rda.c b/src/src/rda.c
index b635ebfde..1bc322e34 100644
--- a/src/src/rda.c
+++ b/src/src/rda.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This module contains code for extracting addresses from a forwarding list
(from an alias or forward file) or by running the filter interpreter. It may do
diff --git a/src/src/readconf.c b/src/src/readconf.c
index 83ee51b65..b0d688772 100644
--- a/src/src/readconf.c
+++ b/src/src/readconf.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for reading the configuration file, and for displaying
overall configuration values. Thanks to Brian Candler for the original
diff --git a/src/src/receive.c b/src/src/receive.c
index 0a27c7950..d9d0757ef 100644
--- a/src/src/receive.c
+++ b/src/src/receive.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Code for receiving a message and setting up spool files. */

diff --git a/src/src/regex.c b/src/src/regex.c
index 210620f26..eefba8ecf 100644
--- a/src/src/regex.c
+++ b/src/src/regex.c
@@ -6,6 +6,7 @@
* Copyright (c) The Exim Maintainers 2016 - 2022
* Copyright (c) Tom Kistner <tom@???> 2003-2015
* License: GPL
+ * SPDX-License-Identifier: GPL-2.0-only
*/

/* Code for matching regular expressions against headers and body.
diff --git a/src/src/regex_cache.c b/src/src/regex_cache.c
index 63cddce1d..e4771aab9 100644
--- a/src/src/regex_cache.c
+++ b/src/src/regex_cache.c
@@ -5,6 +5,7 @@
/*
* Copyright (c) The Exim Maintainers 2022
* License: GPL
+ * SPDX-License-Identifier: GPL-2.0-only
*/

/* Caching layers for compiled REs. There is a local layer in the process,
diff --git a/src/src/retry.c b/src/src/retry.c
index 033afb4bf..e1490266c 100644
--- a/src/src/retry.c
+++ b/src/src/retry.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions concerned with retrying unsuccessful deliveries. */

diff --git a/src/src/rewrite.c b/src/src/rewrite.c
index 90614e626..040525ec5 100644
--- a/src/src/rewrite.c
+++ b/src/src/rewrite.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions concerned with rewriting headers */

diff --git a/src/src/rfc2047.c b/src/src/rfc2047.c
index 1ed1dd809..af8993695 100644
--- a/src/src/rfc2047.c
+++ b/src/src/rfc2047.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file contains a function for decoding message header lines that may
contain encoded "words" according to the rules described in
diff --git a/src/src/route.c b/src/src/route.c
index fa69b8b74..7e6e4eb69 100644
--- a/src/src/route.c
+++ b/src/src/route.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions concerned with routing, and the list of generic router options. */

diff --git a/src/src/routers/accept.c b/src/src/routers/accept.c
index 110a1efe4..ab02716eb 100644
--- a/src/src/routers/accept.c
+++ b/src/src/routers/accept.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/routers/accept.h b/src/src/routers/accept.h
index 43494fbc4..e025179ee 100644
--- a/src/src/routers/accept.h
+++ b/src/src/routers/accept.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options (there aren't any). */

diff --git a/src/src/routers/dnslookup.c b/src/src/routers/dnslookup.c
index a845b4e52..0b1abeb8e 100644
--- a/src/src/routers/dnslookup.c
+++ b/src/src/routers/dnslookup.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "rf_functions.h"
diff --git a/src/src/routers/dnslookup.h b/src/src/routers/dnslookup.h
index b7e091587..0272db300 100644
--- a/src/src/routers/dnslookup.h
+++ b/src/src/routers/dnslookup.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/routers/ipliteral.c b/src/src/routers/ipliteral.c
index 3d68642a2..cfbf276ff 100644
--- a/src/src/routers/ipliteral.c
+++ b/src/src/routers/ipliteral.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/routers/ipliteral.h b/src/src/routers/ipliteral.h
index 1ddb38b10..f7e99b9c2 100644
--- a/src/src/routers/ipliteral.h
+++ b/src/src/routers/ipliteral.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Private structure for the private options. Some compilers do not like empty
diff --git a/src/src/routers/iplookup.c b/src/src/routers/iplookup.c
index 8b67f3116..970ec7704 100644
--- a/src/src/routers/iplookup.c
+++ b/src/src/routers/iplookup.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/routers/iplookup.h b/src/src/routers/iplookup.h
index dbcb03c9e..3b7295574 100644
--- a/src/src/routers/iplookup.h
+++ b/src/src/routers/iplookup.h
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Private structure for the private options. */
diff --git a/src/src/routers/manualroute.c b/src/src/routers/manualroute.c
index 974ad0cf4..6a500d09a 100644
--- a/src/src/routers/manualroute.c
+++ b/src/src/routers/manualroute.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/routers/manualroute.h b/src/src/routers/manualroute.h
index 9c20b6fa0..e27d90953 100644
--- a/src/src/routers/manualroute.h
+++ b/src/src/routers/manualroute.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Header for the manualroute router */

diff --git a/src/src/routers/queryprogram.c b/src/src/routers/queryprogram.c
index 55f03a477..51b7b7551 100644
--- a/src/src/routers/queryprogram.c
+++ b/src/src/routers/queryprogram.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "rf_functions.h"
diff --git a/src/src/routers/queryprogram.h b/src/src/routers/queryprogram.h
index 93046bd0f..148846fae 100644
--- a/src/src/routers/queryprogram.h
+++ b/src/src/routers/queryprogram.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Private structure for the private options. */
diff --git a/src/src/routers/redirect.c b/src/src/routers/redirect.c
index 31c07f518..6126555fe 100644
--- a/src/src/routers/redirect.c
+++ b/src/src/routers/redirect.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/routers/redirect.h b/src/src/routers/redirect.h
index 4c0399a36..76d02f261 100644
--- a/src/src/routers/redirect.h
+++ b/src/src/routers/redirect.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Header for the redirect router */

diff --git a/src/src/routers/rf_change_domain.c b/src/src/routers/rf_change_domain.c
index d7c9c1cb8..4f8d47299 100644
--- a/src/src/routers/rf_change_domain.c
+++ b/src/src/routers/rf_change_domain.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/routers/rf_expand_data.c b/src/src/routers/rf_expand_data.c
index 6a8ad1779..5fbf0ac78 100644
--- a/src/src/routers/rf_expand_data.c
+++ b/src/src/routers/rf_expand_data.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/routers/rf_functions.h b/src/src/routers/rf_functions.h
index f310d5a42..d8fca68c5 100644
--- a/src/src/routers/rf_functions.h
+++ b/src/src/routers/rf_functions.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Header for the functions that are shared by the routers */

diff --git a/src/src/routers/rf_get_errors_address.c b/src/src/routers/rf_get_errors_address.c
index b9cf78124..1189fd9e0 100644
--- a/src/src/routers/rf_get_errors_address.c
+++ b/src/src/routers/rf_get_errors_address.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "rf_functions.h"
diff --git a/src/src/routers/rf_get_munge_headers.c b/src/src/routers/rf_get_munge_headers.c
index d304d1145..be86a4e0e 100644
--- a/src/src/routers/rf_get_munge_headers.c
+++ b/src/src/routers/rf_get_munge_headers.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "rf_functions.h"
diff --git a/src/src/routers/rf_get_transport.c b/src/src/routers/rf_get_transport.c
index 2f639e037..0c1fa8173 100644
--- a/src/src/routers/rf_get_transport.c
+++ b/src/src/routers/rf_get_transport.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "rf_functions.h"
diff --git a/src/src/routers/rf_get_ugid.c b/src/src/routers/rf_get_ugid.c
index 1735e5919..15144beb1 100644
--- a/src/src/routers/rf_get_ugid.c
+++ b/src/src/routers/rf_get_ugid.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "rf_functions.h"
diff --git a/src/src/routers/rf_lookup_hostlist.c b/src/src/routers/rf_lookup_hostlist.c
index 79a779927..affd70b6e 100644
--- a/src/src/routers/rf_lookup_hostlist.c
+++ b/src/src/routers/rf_lookup_hostlist.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/routers/rf_queue_add.c b/src/src/routers/rf_queue_add.c
index 0693c8c6e..49dd83117 100644
--- a/src/src/routers/rf_queue_add.c
+++ b/src/src/routers/rf_queue_add.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "rf_functions.h"
diff --git a/src/src/routers/rf_self_action.c b/src/src/routers/rf_self_action.c
index 9a4dc3cc7..7cc592039 100644
--- a/src/src/routers/rf_self_action.c
+++ b/src/src/routers/rf_self_action.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/routers/rf_set_ugid.c b/src/src/routers/rf_set_ugid.c
index e1346b4be..65f5200a2 100644
--- a/src/src/routers/rf_set_ugid.c
+++ b/src/src/routers/rf_set_ugid.c
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "rf_functions.h"
diff --git a/src/src/search.c b/src/src/search.c
index eec543776..32099ab9e 100644
--- a/src/src/search.c
+++ b/src/src/search.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* A set of functions to search databases in various formats. An open
database is represented by a void * value which is returned from a lookup-
diff --git a/src/src/setenv.c b/src/src/setenv.c
index 90e679304..877fe388f 100644
--- a/src/src/setenv.c
+++ b/src/src/setenv.c
@@ -6,6 +6,7 @@
* Copyright (c) Jeremy Harris 2015 - 2016
* Copyright (c) The Exim Maintainers 2016 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This module provides (un)setenv routines for those environments
lacking them in libraries. It is #include'd by OS/os.c-foo files. */
diff --git a/src/src/sha_ver.h b/src/src/sha_ver.h
index bc2b2f89e..8385c1377 100644
--- a/src/src/sha_ver.h
+++ b/src/src/sha_ver.h
@@ -4,6 +4,7 @@

/* Copyright (c) Jeremy Harris 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* SHA routine selection */

diff --git a/src/src/sieve.c b/src/src/sieve.c
index af3bc9d9a..033a9734a 100644
--- a/src/src/sieve.c
+++ b/src/src/sieve.c
@@ -6,6 +6,7 @@
* Copyright (c) The Exim Maintainers 2016 - 2022
* Copyright (c) Michael Haardt 2003 - 2015
* See the file NOTICE for conditions of use and distribution.
+ * SPDX-License-Identifier: GPL-2.0-only
*/

/* This code was contributed by Michael Haardt. */
diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c
index 28e529bae..3c6339c82 100644
--- a/src/src/smtp_in.c
+++ b/src/src/smtp_in.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for handling an incoming SMTP call. */

diff --git a/src/src/smtp_out.c b/src/src/smtp_out.c
index 7f364d942..db39dcab5 100644
--- a/src/src/smtp_out.c
+++ b/src/src/smtp_out.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* A number of functions for driving outgoing SMTP calls. */

diff --git a/src/src/spam.c b/src/src/spam.c
index a68b9bf60..f6575c293 100644
--- a/src/src/spam.c
+++ b/src/src/spam.c
@@ -6,6 +6,7 @@
* Copyright (c) The Exim Maintainers 2016 - 2022
* Copyright (c) Tom Kistner <tom@???> 2003 - 2015
* License: GPL
+ * SPDX-License-Identifier: GPL-2.0-only
*/

/* Code for calling spamassassin's spamd. Called from acl.c. */
diff --git a/src/src/spam.h b/src/src/spam.h
index cc36ffd3f..c410198d7 100644
--- a/src/src/spam.h
+++ b/src/src/spam.h
@@ -5,6 +5,7 @@
/* Copyright (c) Tom Kistner <tom@???> 2003 - 2015 */
/* Copyright (c) The Exim Maintainers 2021 */
/* License: GPL */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* spam defines */

diff --git a/src/src/spf.c b/src/src/spf.c
index a8c0f75c4..a94bc9677 100644
--- a/src/src/spf.c
+++ b/src/src/spf.c
@@ -6,6 +6,7 @@
    Copyright (c) The Exim Maintainers 2015 - 2022
    Copyright (c) Tom Kistner <tom@???> 2004 - 2014
    License: GPL
+   SPDX-License-Identifier: GPL-2.0-only
 */


 /* Code for calling spf checks via libspf-alt. Called from acl.c. */
diff --git a/src/src/spf.h b/src/src/spf.h
index f32d06906..8fb7b04cb 100644
--- a/src/src/spf.h
+++ b/src/src/spf.h
@@ -6,6 +6,7 @@
    Copyright (c) The Exim Maintainers 2016 - 2022
    Copyright (c) Tom Kistner <tom@???> 2004
    License: GPL
+   SPDX-License-Identifier: GPL-2.0-only
 */


#ifdef SUPPORT_SPF
diff --git a/src/src/spool_in.c b/src/src/spool_in.c
index 2aa0b0b55..82d11bf65 100644
--- a/src/src/spool_in.c
+++ b/src/src/spool_in.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for reading spool files. When compiling for a utility (eximon),
not all are needed, and some functionality can be cut out. */
diff --git a/src/src/spool_mbox.c b/src/src/spool_mbox.c
index 8b2aae394..d9767ec3c 100644
--- a/src/src/spool_mbox.c
+++ b/src/src/spool_mbox.c
@@ -5,6 +5,7 @@
/* Copyright (c) Tom Kistner <tom@???> 2003 - 2015
* License: GPL
* Copyright (c) The Exim Maintainers 2016 - 2021
+ * SPDX-License-Identifier: GPL-2.0-only
*/

/* Code for setting up a MBOX style spool file inside a /scan/<msgid>
diff --git a/src/src/spool_out.c b/src/src/spool_out.c
index 510eda6c1..cb409c641 100644
--- a/src/src/spool_out.c
+++ b/src/src/spool_out.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for writing spool files, and moving them about. */

diff --git a/src/src/std-crypto.c b/src/src/std-crypto.c
index 200fb7144..c1eef6c35 100644
--- a/src/src/std-crypto.c
+++ b/src/src/std-crypto.c
@@ -7,6 +7,8 @@
* But almost everything here is fixed published constants from RFCs, so also:
* Copyright (C) The Internet Society (2003)
* Copyright (C) The IETF Trust (2008)
+ * SPDX-License-Identifier: GPL-2.0-only
+ *
* Most of the text in RFC referencing comments is copy/paste from RFC,
* as is undoubtedly the intention.
* The constants are generated from that text using util/gen_pkcs3.c invoked
diff --git a/src/src/store.c b/src/src/store.c
index d99d2ab69..449fb4ead 100644
--- a/src/src/store.c
+++ b/src/src/store.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim maintainers 2019 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Exim gets and frees all its store through these functions. In the original
implementation there was a lot of mallocing and freeing of small bits of store.
diff --git a/src/src/store.h b/src/src/store.h
index ee6d79c36..47ed963cd 100644
--- a/src/src/store.h
+++ b/src/src/store.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Header for Exim's memory allocation functions */

diff --git a/src/src/string.c b/src/src/string.c
index a5161bb31..ff4180b2b 100644
--- a/src/src/string.c
+++ b/src/src/string.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Miscellaneous string-handling functions. Some are not required for
utilities and tests, and are cut out by the COMPILE_UTILITY macro. */
diff --git a/src/src/structs.h b/src/src/structs.h
index 06cd06084..1cb69236e 100644
--- a/src/src/structs.h
+++ b/src/src/structs.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


/* Definitions of various structures. In addition, those that are visible for
diff --git a/src/src/tls-cipher-stdname.c b/src/src/tls-cipher-stdname.c
index ab973af51..fe442a050 100644
--- a/src/src/tls-cipher-stdname.c
+++ b/src/src/tls-cipher-stdname.c
@@ -4,6 +4,7 @@

/* Copyright (c) Jeremy Harris 2019 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Translate an IETF TLS ciphersuite code to an IETF ciphersuite name,
for use when the TLS library do not provide such names.
diff --git a/src/src/tls-gnu.c b/src/src/tls-gnu.c
index 1fc7828cf..c98760202 100644
--- a/src/src/tls-gnu.c
+++ b/src/src/tls-gnu.c
@@ -6,6 +6,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) Phil Pennock 2012 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file provides TLS/SSL support for Exim using the GnuTLS library,
one of the available supported implementations. This file is #included into
diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c
index 8ed413e91..052d8161d 100644
--- a/src/src/tls-openssl.c
+++ b/src/src/tls-openssl.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2019 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Portions Copyright (c) The OpenSSL Project 1999 */

diff --git a/src/src/tls.c b/src/src/tls.c
index d7cefce67..9e20b5bca 100644
--- a/src/src/tls.c
+++ b/src/src/tls.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This module provides TLS (aka SSL) support for Exim. The code for OpenSSL is
based on a patch that was originally contributed by Steve Haslam. It was
diff --git a/src/src/tlscert-gnu.c b/src/src/tlscert-gnu.c
index a40bb30bf..8840d5cfd 100644
--- a/src/src/tlscert-gnu.c
+++ b/src/src/tlscert-gnu.c
@@ -4,6 +4,7 @@

/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) Jeremy Harris 2014 - 2018 */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This file provides TLS/SSL support for Exim using the GnuTLS library,
one of the available supported implementations. This file is #included into
diff --git a/src/src/tlscert-openssl.c b/src/src/tlscert-openssl.c
index ac353b25f..a4c3d19fa 100644
--- a/src/src/tlscert-openssl.c
+++ b/src/src/tlscert-openssl.c
@@ -4,6 +4,7 @@

/* Copyright (c) The Exim Maintainers 2022 */
/* Copyright (c) Jeremy Harris 2014 - 2019 */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* This module provides TLS (aka SSL) support for Exim using the OpenSSL
library. It is #included into the tls.c file when that library is used.
diff --git a/src/src/tod.c b/src/src/tod.c
index 1f0bcc05e..ac4ed35b9 100644
--- a/src/src/tod.c
+++ b/src/src/tod.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* A function for returning the time of day in various formats */

diff --git a/src/src/transport.c b/src/src/transport.c
index 7477882cb..ff2e0b1d4 100644
--- a/src/src/transport.c
+++ b/src/src/transport.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* General functions concerned with transportation, and generic options for all
transports. */
diff --git a/src/src/transports/appendfile.c b/src/src/transports/appendfile.c
index 7e29dd3bc..18badde86 100644
--- a/src/src/transports/appendfile.c
+++ b/src/src/transports/appendfile.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/transports/appendfile.h b/src/src/transports/appendfile.h
index 3fd2f467c..108114905 100644
--- a/src/src/transports/appendfile.h
+++ b/src/src/transports/appendfile.h
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/transports/autoreply.c b/src/src/transports/autoreply.c
index 211e32810..eff1a3792 100644
--- a/src/src/transports/autoreply.c
+++ b/src/src/transports/autoreply.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/transports/autoreply.h b/src/src/transports/autoreply.h
index fcfd981e7..5f278a51e 100644
--- a/src/src/transports/autoreply.h
+++ b/src/src/transports/autoreply.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/transports/lmtp.c b/src/src/transports/lmtp.c
index f751771c1..c734c3a26 100644
--- a/src/src/transports/lmtp.c
+++ b/src/src/transports/lmtp.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/transports/lmtp.h b/src/src/transports/lmtp.h
index 93f0f89cc..71fd77f26 100644
--- a/src/src/transports/lmtp.h
+++ b/src/src/transports/lmtp.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/transports/pipe.c b/src/src/transports/pipe.c
index bdbe27d57..b8103e2f6 100644
--- a/src/src/transports/pipe.c
+++ b/src/src/transports/pipe.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "../exim.h"
diff --git a/src/src/transports/pipe.h b/src/src/transports/pipe.h
index ed5c142b3..416569608 100644
--- a/src/src/transports/pipe.h
+++ b/src/src/transports/pipe.h
@@ -4,6 +4,7 @@

/* Copyright (c) University of Cambridge 1995 - 2014 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/transports/queuefile.c b/src/src/transports/queuefile.c
index 74131cc64..3a2bae22f 100644
--- a/src/src/transports/queuefile.c
+++ b/src/src/transports/queuefile.c
@@ -6,6 +6,7 @@
/* Copyright (c) University of Cambridge 2016 */
/* Copyright (c) The Exim Maintainers 1995 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */



diff --git a/src/src/transports/queuefile.h b/src/src/transports/queuefile.h
index 0e45b51b0..22759a7f7 100644
--- a/src/src/transports/queuefile.h
+++ b/src/src/transports/queuefile.h
@@ -5,6 +5,7 @@
/* Copyright (c) Andrew Colin Kissa <andrew@???> 2016 */
/* Copyright (c) University of Cambridge 2016 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Private structure for the private options. */

diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index 0fca4584d..2d2db1b10 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#include "../exim.h"
#include "smtp.h"
diff --git a/src/src/transports/smtp.h b/src/src/transports/smtp.h
index 319e8494e..8793ece4f 100644
--- a/src/src/transports/smtp.h
+++ b/src/src/transports/smtp.h
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

#define DELIVER_BUFFER_SIZE 4096

diff --git a/src/src/transports/smtp_socks.c b/src/src/transports/smtp_socks.c
index 0e58732c6..353a69618 100644
--- a/src/src/transports/smtp_socks.c
+++ b/src/src/transports/smtp_socks.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) Jeremy Harris 2015 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* SOCKS version 5 proxy, client-mode */

diff --git a/src/src/transports/tf_maildir.c b/src/src/transports/tf_maildir.c
index 205ee41cb..925b8fac0 100644
--- a/src/src/transports/tf_maildir.c
+++ b/src/src/transports/tf_maildir.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions in support of the use of maildirsize files for handling quotas in
maildir directories. Some of the rules are a bit baroque:
diff --git a/src/src/transports/tf_maildir.h b/src/src/transports/tf_maildir.h
index b3707b1a9..d314c3203 100644
--- a/src/src/transports/tf_maildir.h
+++ b/src/src/transports/tf_maildir.h
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Header file for the functions that are used to support the use of
maildirsize files for quota handling in maildir directories. */
diff --git a/src/src/tree.c b/src/src/tree.c
index bb8ad44db..e340d986a 100644
--- a/src/src/tree.c
+++ b/src/src/tree.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2021 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2015 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions for maintaining binary balanced trees and some associated
functions as well. */
diff --git a/src/src/utf8.c b/src/src/utf8.c
index bc7adb828..6604727ff 100644
--- a/src/src/utf8.c
+++ b/src/src/utf8.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2022 */
/* Copyright (c) Jeremy Harris 2015 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */


#include "exim.h"
diff --git a/src/src/verify.c b/src/src/verify.c
index afc18d553..3a8914e38 100644
--- a/src/src/verify.c
+++ b/src/src/verify.c
@@ -5,6 +5,7 @@
/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Functions concerned with verifying things. The original code for callout
caching was contributed by Kevin Fleming (but I hacked it around a bit). */
diff --git a/src/src/version.c b/src/src/version.c
index 118ebbdf2..cbaaef24b 100644
--- a/src/src/version.c
+++ b/src/src/version.c
@@ -5,6 +5,7 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* Copyright (c) The Exim Maintainers 2010 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */

/* Function for setting up the version string. */

diff --git a/src/util/chunking_fixqueue_finalnewlines.pl b/src/util/chunking_fixqueue_finalnewlines.pl
index 5dddfa505..b8ab17bd7 100755
--- a/src/util/chunking_fixqueue_finalnewlines.pl
+++ b/src/util/chunking_fixqueue_finalnewlines.pl
@@ -1,4 +1,5 @@
#!/usr/bin/env perl
+# SPDX-License-Identifier: GPL-2.0-only

use warnings;
use strict;
diff --git a/src/util/cramtest.pl b/src/util/cramtest.pl
index 48f989a0c..a6124628b 100755
--- a/src/util/cramtest.pl
+++ b/src/util/cramtest.pl
@@ -1,4 +1,5 @@
#!/usr/bin/perl
+# SPDX-License-Identifier: GPL-2.0-only

# This script is contributed by Vadim Vygonets to aid in debugging CRAM-MD5
# authentication.
diff --git a/src/util/gen_pkcs3.c b/src/util/gen_pkcs3.c
index 2fe9a6c5e..3ef3110de 100644
--- a/src/util/gen_pkcs3.c
+++ b/src/util/gen_pkcs3.c
@@ -2,6 +2,7 @@
* Copyright (c) The Exim Maintainers 2021
* This is distributed as part of Exim and licensed under the GPL.
* See the file "NOTICE" for more details.
+ * SPDX-License-Identifier: GPL-2.0-only
*/

/* Build with:
diff --git a/src/util/logargs.sh b/src/util/logargs.sh
index 87369a64b..814228d10 100755
--- a/src/util/logargs.sh
+++ b/src/util/logargs.sh
@@ -1,4 +1,5 @@
#! /bin/sh
+# SPDX-License-Identifier: GPL-2.0-only

 # This script can be interposed between a calling program and another
 # program, in order to log the arguments which are being used. This can
diff --git a/src/util/mkcdb.pl b/src/util/mkcdb.pl
index 691849dcd..e2b5931e7 100755
--- a/src/util/mkcdb.pl
+++ b/src/util/mkcdb.pl
@@ -1,4 +1,5 @@
 #!/usr/bin/perl -wT
+# SPDX-License-Identifier: GPL-2.0-only
 #
 # Create cdb file from flat alias file. DPC: 15/10/98.
 # Args:      source  (may be relative or absolute)
diff --git a/src/util/ocsp_fetch.pl b/src/util/ocsp_fetch.pl
index 08ca4cbe4..2afbdbdac 100755
--- a/src/util/ocsp_fetch.pl
+++ b/src/util/ocsp_fetch.pl
@@ -1,6 +1,8 @@
 #!/usr/bin/perl
 # Copyright (C) 2012 Wizards Internet Ltd
 # License GPLv2: GNU GPL version 2 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
+# SPDX-License-Identifier: GPL-2.0-only
+
 use strict;
 BEGIN { pop @INC if $INC[-1] eq '.' };
 use Getopt::Std;
diff --git a/src/util/proxy_protocol_client.pl b/src/util/proxy_protocol_client.pl
index 67a171d5d..8b4311b64 100644
--- a/src/util/proxy_protocol_client.pl
+++ b/src/util/proxy_protocol_client.pl
@@ -3,6 +3,7 @@
 # Copyright (C) 2014 Todd Lyons
 # License GPLv2: GNU GPL version 2
 # <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
+# SPDX-License-Identifier: GPL-2.0-only
 #
 # This script emulates a proxy which uses Proxy Protocol to communicate
 # to a backend server.  It should be run from an IP which is configured
diff --git a/src/util/ratelimit.pl b/src/util/ratelimit.pl
index e212fa241..2ceeebbfa 100644
--- a/src/util/ratelimit.pl
+++ b/src/util/ratelimit.pl
@@ -1,4 +1,5 @@
 #!/usr/bin/perl -wT
+# SPDX-License-Identifier: GPL-2.0-only


use strict;

diff --git a/src/util/renew-opendmarc-tlds.sh b/src/util/renew-opendmarc-tlds.sh
index 9967018e2..583dc0e40 100755
--- a/src/util/renew-opendmarc-tlds.sh
+++ b/src/util/renew-opendmarc-tlds.sh
@@ -1,4 +1,5 @@
#!/bin/sh -eu
+# SPDX-License-Identifier: GPL-2.0-only
#
# Short version of this script:
# curl -f -o /var/cache/exim/opendmarc.tlds https://publicsuffix.org/list/public_suffix_list.dat
diff --git a/src/util/unknownuser.sh b/src/util/unknownuser.sh
index fe04dc6b1..01e617978 100755
--- a/src/util/unknownuser.sh
+++ b/src/util/unknownuser.sh
@@ -1,4 +1,5 @@
#! /bin/sh
+# SPDX-License-Identifier: GPL-2.0-only

# This is a sample script for demonstrating how to handle unknown users in
# a more friendly way than just returning a "user unknown" error. It can