From 692e233292e4c78cc1b3e5c52493f08c61826046 Mon Sep 17 00:00:00 2001
From: Campbell Barton <ideasman42@gmail.com>
Date: Fri, 11 Feb 2022 16:14:41 +1100
Subject: [PATCH] File headers: use SPDX license identifiers

See T95597
---
 check_blender_release/check_module_enabled.py | 21 +-----------------
 check_blender_release/check_module_numpy.py   | 21 +-----------------
 .../check_module_requests.py                  | 21 +-----------------
 check_blender_release/check_release.py        | 21 +-----------------
 .../check_static_binaries.py                  | 21 +-----------------
 check_blender_release/check_utils.py          | 21 +-----------------
 .../scripts/modules_enabled.py                |  1 +
 .../scripts/numpy_basic_operation.py          |  1 +
 check_blender_release/scripts/numpy_import.py |  1 +
 .../scripts/requests_basic_access.py          |  1 +
 .../scripts/requests_import.py                |  1 +
 check_source/check_descriptions.py            | 21 +-----------------
 check_source/check_header_duplicate.py        | 21 +-----------------
 check_source/check_licenses.py                | 10 ++++-----
 check_source/check_mypy.py                    |  1 +
 check_source/check_mypy_config.py             |  1 +
 check_source/check_spelling.py                | 19 +---------------
 check_source/check_spelling_c_config.py       | 18 +--------------
 check_source/check_unused_defines.py          | 19 +---------------
 git/git_sh1_to_svn_rev.py                     |  1 +
 git/git_sort_commits.py                       | 19 +---------------
 modules/blendfile.py                          | 22 ++-----------------
 svn_rev_map/rev_to_sha1.py                    |  1 +
 svn_rev_map/sha1_to_rev.py                    |  1 +
 utils/autopep8_clean.py                       |  1 +
 utils/autopep8_clean_config.py                |  1 +
 utils/blend2json.py                           | 22 ++-----------------
 .../blender_keyconfig_export_permutations.py  | 18 +--------------
 utils/blender_merge_format_changes.py         |  1 +
 utils/blender_theme_as_c.py                   | 19 +---------------
 utils/credits_git_gen.py                      | 19 +---------------
 utils/cycles_commits_sync.py                  |  1 +
 utils/cycles_timeit.py                        |  1 +
 utils/gdb_struct_repr_c99.py                  | 18 +--------------
 utils/git_log.py                              | 18 +--------------
 utils/git_log_review_commits.py               | 20 +----------------
 utils/git_log_review_commits_advanced.py      | 20 +----------------
 utils/make_cursor_gui.py                      |  1 +
 utils/make_gl_stipple_from_xpm.py             | 18 +--------------
 utils/make_shape_2d_from_blend.py             |  2 +-
 utils/weekly_report.py                        | 19 +---------------
 utils_api/bpy_introspect_ui.py                | 21 +-----------------
 utils_doc/rna_manual_reference_updater.py     | 18 +--------------
 .../externaltools/qtc_assembler_preview.py    |  1 +
 .../externaltools/qtc_blender_diffusion.py    |  1 +
 .../externaltools/qtc_cpp_to_c_comments.py    |  1 +
 .../qtcreator/externaltools/qtc_doxy_file.py  |  2 ++
 .../externaltools/qtc_expand_tabmix.py        |  1 +
 .../externaltools/qtc_project_update.py       |  1 +
 .../qtc_right_align_trailing_char.py          |  2 ++
 .../externaltools/qtc_select_surround.py      |  2 ++
 .../qtcreator/externaltools/qtc_sort_paths.py |  1 +
 .../qtcreator/externaltools/qtc_toggle_if0.py |  1 +
 .../blender_menu_search_coverage.py           | 18 +--------------
 utils_maintenance/blender_update_themes.py    | 18 +--------------
 utils_maintenance/c_sort_blocks.py            | 19 +---------------
 utils_maintenance/c_struct_clean.py           | 19 +---------------
 utils_maintenance/clang_format_paths.py       |  1 +
 utils_maintenance/cmake_sort_filelists.py     | 19 +---------------
 utils_maintenance/code_clean.py               | 18 +--------------
 utils_maintenance/modules/batch_edit_text.py  | 18 +--------------
 utils_maintenance/trailing_space_clean.py     |  1 +
 .../trailing_space_clean_config.py            |  1 +
 63 files changed, 72 insertions(+), 596 deletions(-)

diff --git a/check_blender_release/check_module_enabled.py b/check_blender_release/check_module_enabled.py
index 158a538..b7082a3 100644
--- a/check_blender_release/check_module_enabled.py
+++ b/check_blender_release/check_module_enabled.py
@@ -1,24 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Sergey Sharybin
-#
-# #**** END GPL LICENSE BLOCK #****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_blender_release/check_module_numpy.py b/check_blender_release/check_module_numpy.py
index 36c9000..d70d1c2 100644
--- a/check_blender_release/check_module_numpy.py
+++ b/check_blender_release/check_module_numpy.py
@@ -1,24 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Sergey Sharybin
-#
-# #**** END GPL LICENSE BLOCK #****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_blender_release/check_module_requests.py b/check_blender_release/check_module_requests.py
index af8f6e3..34842b2 100644
--- a/check_blender_release/check_module_requests.py
+++ b/check_blender_release/check_module_requests.py
@@ -1,24 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Sergey Sharybin
-#
-# #**** END GPL LICENSE BLOCK #****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_blender_release/check_release.py b/check_blender_release/check_release.py
index 5c8c9c6..5112367 100755
--- a/check_blender_release/check_release.py
+++ b/check_blender_release/check_release.py
@@ -1,24 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Sergey Sharybin
-#
-# #**** END GPL LICENSE BLOCK #****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_blender_release/check_static_binaries.py b/check_blender_release/check_static_binaries.py
index d822e75..80d4f97 100644
--- a/check_blender_release/check_static_binaries.py
+++ b/check_blender_release/check_static_binaries.py
@@ -1,24 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Sergey Sharybin
-#
-# #**** END GPL LICENSE BLOCK #****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_blender_release/check_utils.py b/check_blender_release/check_utils.py
index 42679cd..a87daca 100644
--- a/check_blender_release/check_utils.py
+++ b/check_blender_release/check_utils.py
@@ -1,24 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Sergey Sharybin
-#
-# #**** END GPL LICENSE BLOCK #****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_blender_release/scripts/modules_enabled.py b/check_blender_release/scripts/modules_enabled.py
index 1a83ec6..23048d7 100644
--- a/check_blender_release/scripts/modules_enabled.py
+++ b/check_blender_release/scripts/modules_enabled.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 import _sha1
 import _sha256
 import _md5
diff --git a/check_blender_release/scripts/numpy_basic_operation.py b/check_blender_release/scripts/numpy_basic_operation.py
index 54c581b..5526d98 100644
--- a/check_blender_release/scripts/numpy_basic_operation.py
+++ b/check_blender_release/scripts/numpy_basic_operation.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 # This code tests bug reported in T50703
 
 import numpy
diff --git a/check_blender_release/scripts/numpy_import.py b/check_blender_release/scripts/numpy_import.py
index c2e5936..9bda9b4 100644
--- a/check_blender_release/scripts/numpy_import.py
+++ b/check_blender_release/scripts/numpy_import.py
@@ -1 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 import numpy
diff --git a/check_blender_release/scripts/requests_basic_access.py b/check_blender_release/scripts/requests_basic_access.py
index 09d6f61..c7c466d 100644
--- a/check_blender_release/scripts/requests_basic_access.py
+++ b/check_blender_release/scripts/requests_basic_access.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 import requests
 
 r = requests.get("https://blender.org/", verify=True)
diff --git a/check_blender_release/scripts/requests_import.py b/check_blender_release/scripts/requests_import.py
index 20b1553..6077f9e 100644
--- a/check_blender_release/scripts/requests_import.py
+++ b/check_blender_release/scripts/requests_import.py
@@ -1 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 import requests
diff --git a/check_source/check_descriptions.py b/check_source/check_descriptions.py
index 7155762..412d980 100644
--- a/check_source/check_descriptions.py
+++ b/check_source/check_descriptions.py
@@ -1,24 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Campbell Barton
-#
-# #**** END GPL LICENSE BLOCK #****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_source/check_header_duplicate.py b/check_source/check_header_duplicate.py
index f0ea90e..f8215b4 100755
--- a/check_source/check_header_duplicate.py
+++ b/check_source/check_header_duplicate.py
@@ -1,24 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Campbell Barton
-#
-# ***** END GPL LICENSE BLOCK *****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_source/check_licenses.py b/check_source/check_licenses.py
index d3dbe6a..bef469e 100644
--- a/check_source/check_licenses.py
+++ b/check_source/check_licenses.py
@@ -1,5 +1,6 @@
 #!/usr/bin/env python3
 # SPDX-License-Identifier: GPL-2.0-or-later
+
 """
 Check license headers follow the SPDX spec
 https://spdx.org/licenses/
@@ -363,10 +364,9 @@ def main() -> None:
             source_dirs_exclude=(
                 "./extern",
                 "./intern/cycles",
-                "./release/scripts/addons",
+                # "./release/scripts/addons",
                 "./release/scripts/addons_contrib",
                 "./source/tools",
-                # "extern",
                 # Needs manual handling as it mixes two licenses.
                 "./intern/atomic",
             ),
@@ -376,7 +376,8 @@ def main() -> None:
             source_dirs_include=(".",),
             source_dirs_exclude=(
                 # This is an exception, it has it's own CMake files we do not maintain.
-                "./extern/audaspace/",
+                "./extern/audaspace",
+                "./extern/quadriflow/3rd/lemon-1.3.1",
             ),
         ),
         Pass(
@@ -386,11 +387,10 @@ def main() -> None:
                 # This is an exception, it has it's own CMake files we do not maintain.
                 "./extern",
                 "./intern/cycles",
-                "./release/scripts/addons",
                 "./release/scripts/addons_contrib",
-                "./source/tools",
                 # Just data.
                 "./doc/python_api/examples",
+                "./release/scripts/addons/presets"
                 "./release/scripts/presets",
                 "./release/scripts/templates_py",
             ),
diff --git a/check_source/check_mypy.py b/check_source/check_mypy.py
index ddca6e2..256dd1b 100755
--- a/check_source/check_mypy.py
+++ b/check_source/check_mypy.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import os
 from os.path import join, splitext
diff --git a/check_source/check_mypy_config.py b/check_source/check_mypy_config.py
index 9ca0e3b..b197480 100644
--- a/check_source/check_mypy_config.py
+++ b/check_source/check_mypy_config.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import os
 from typing import (
diff --git a/check_source/check_spelling.py b/check_source/check_spelling.py
index d44e40d..66ebea8 100755
--- a/check_source/check_spelling.py
+++ b/check_source/check_spelling.py
@@ -1,22 +1,5 @@
 #!/usr/bin/env python3
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_source/check_spelling_c_config.py b/check_source/check_spelling_c_config.py
index fd5a12c..124d9d3 100644
--- a/check_source/check_spelling_c_config.py
+++ b/check_source/check_spelling_c_config.py
@@ -1,20 +1,4 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/check_source/check_unused_defines.py b/check_source/check_unused_defines.py
index 9b2d70a..d815fd6 100755
--- a/check_source/check_unused_defines.py
+++ b/check_source/check_unused_defines.py
@@ -1,22 +1,5 @@
 #!/usr/bin/env python3
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # Checks for defines which aren't used anywhere.
 
diff --git a/git/git_sh1_to_svn_rev.py b/git/git_sh1_to_svn_rev.py
index 11bcbf6..831eb65 100755
--- a/git/git_sh1_to_svn_rev.py
+++ b/git/git_sh1_to_svn_rev.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # generate svn rev-sha1 mapping
 
diff --git a/git/git_sort_commits.py b/git/git_sort_commits.py
index 0c704eb..25208fa 100755
--- a/git/git_sort_commits.py
+++ b/git/git_sort_commits.py
@@ -1,22 +1,5 @@
 #!/usr/bin/env python3
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/modules/blendfile.py b/modules/blendfile.py
index cac0778..ce84c70 100644
--- a/modules/blendfile.py
+++ b/modules/blendfile.py
@@ -1,23 +1,5 @@
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-# ***** END GPL LICENCE BLOCK *****
-#
-# (c) 2009, At Mind B.V. - Jeroen Bakker
-# (c) 2014, Blender Foundation - Campbell Barton
+# SPDX-License-Identifier: GPL-2.0-or-later
+# (c) 2009 At Mind B.V. - Jeroen Bakker. (c) 2014 Blender Foundation - Campbell Barton.
 
 # -----------------------------------------------------------------------------
 # NOTICE: this module is expanded upon in Blender Asset Tracer.
diff --git a/svn_rev_map/rev_to_sha1.py b/svn_rev_map/rev_to_sha1.py
index 751398f..1f10da8 100644
--- a/svn_rev_map/rev_to_sha1.py
+++ b/svn_rev_map/rev_to_sha1.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 data = {
 2: "12315f4d0e0ae993805f141f64cb8c73c5297311",
 16: "599dc60f6dc97d3ef8efdd294ca2e89fbf498f54",
diff --git a/svn_rev_map/sha1_to_rev.py b/svn_rev_map/sha1_to_rev.py
index faafc90..bd90085 100644
--- a/svn_rev_map/sha1_to_rev.py
+++ b/svn_rev_map/sha1_to_rev.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 data = {
 "12315f4d0e0ae993805f141f64cb8c73c5297311": 2,
 "599dc60f6dc97d3ef8efdd294ca2e89fbf498f54": 16,
diff --git a/utils/autopep8_clean.py b/utils/autopep8_clean.py
index 4077af9..99d7a26 100755
--- a/utils/autopep8_clean.py
+++ b/utils/autopep8_clean.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import os
 from os.path import join, splitext
diff --git a/utils/autopep8_clean_config.py b/utils/autopep8_clean_config.py
index 435ee88..a58f584 100644
--- a/utils/autopep8_clean_config.py
+++ b/utils/autopep8_clean_config.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import os
 PATHS = (
diff --git a/utils/blend2json.py b/utils/blend2json.py
index c9f79c4..9ca6865 100755
--- a/utils/blend2json.py
+++ b/utils/blend2json.py
@@ -1,24 +1,6 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-# ***** END GPL LICENCE BLOCK *****
-#
-# (c) 2015, Blender Foundation - Bastien Montagne
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright 2015 Blender Foundation - Bastien Montagne.
 
 # <pep8 compliant>
 
diff --git a/utils/blender_keyconfig_export_permutations.py b/utils/blender_keyconfig_export_permutations.py
index 41636ce..ae928d1 100755
--- a/utils/blender_keyconfig_export_permutations.py
+++ b/utils/blender_keyconfig_export_permutations.py
@@ -1,21 +1,5 @@
 #!/usr/bin/env python3
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8-80 compliant>
 
diff --git a/utils/blender_merge_format_changes.py b/utils/blender_merge_format_changes.py
index e0e4632..8813a32 100755
--- a/utils/blender_merge_format_changes.py
+++ b/utils/blender_merge_format_changes.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import os
 import subprocess
diff --git a/utils/blender_theme_as_c.py b/utils/blender_theme_as_c.py
index 2ce1515..383123b 100755
--- a/utils/blender_theme_as_c.py
+++ b/utils/blender_theme_as_c.py
@@ -1,22 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-# ***** END GPL LICENCE BLOCK *****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/utils/credits_git_gen.py b/utils/credits_git_gen.py
index 8fae36f..79bd69d 100755
--- a/utils/credits_git_gen.py
+++ b/utils/credits_git_gen.py
@@ -1,22 +1,5 @@
 #!/usr/bin/env python3
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/utils/cycles_commits_sync.py b/utils/cycles_commits_sync.py
index d8ead0f..12b08df 100755
--- a/utils/cycles_commits_sync.py
+++ b/utils/cycles_commits_sync.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import collections
 import os
diff --git a/utils/cycles_timeit.py b/utils/cycles_timeit.py
index 2ac2d49..ae01182 100755
--- a/utils/cycles_timeit.py
+++ b/utils/cycles_timeit.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import argparse
 import re
diff --git a/utils/gdb_struct_repr_c99.py b/utils/gdb_struct_repr_c99.py
index a419e70..76a0f69 100644
--- a/utils/gdb_struct_repr_c99.py
+++ b/utils/gdb_struct_repr_c99.py
@@ -1,20 +1,4 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8-80 compliant>
 
diff --git a/utils/git_log.py b/utils/git_log.py
index dd2c91b..8bba453 100644
--- a/utils/git_log.py
+++ b/utils/git_log.py
@@ -1,20 +1,4 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/utils/git_log_review_commits.py b/utils/git_log_review_commits.py
index a31bc31..1395d0f 100755
--- a/utils/git_log_review_commits.py
+++ b/utils/git_log_review_commits.py
@@ -1,23 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK ***** #
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Campbell Barton
-#
-# ***** END GPL LICENSE BLOCK *****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/utils/git_log_review_commits_advanced.py b/utils/git_log_review_commits_advanced.py
index 37f3e46..6f8fe49 100755
--- a/utils/git_log_review_commits_advanced.py
+++ b/utils/git_log_review_commits_advanced.py
@@ -1,23 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK ***** #
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Campbell Barton
-#
-# ***** END GPL LICENSE BLOCK *****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/utils/make_cursor_gui.py b/utils/make_cursor_gui.py
index 5962d0b..7708230 100755
--- a/utils/make_cursor_gui.py
+++ b/utils/make_cursor_gui.py
@@ -1,4 +1,5 @@
 #!/usr/bin/python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # Created by Robert Wenzlaff (Det. Thorn).
 # Oct. 30, 2003
diff --git a/utils/make_gl_stipple_from_xpm.py b/utils/make_gl_stipple_from_xpm.py
index 74e755c..68805fa 100644
--- a/utils/make_gl_stipple_from_xpm.py
+++ b/utils/make_gl_stipple_from_xpm.py
@@ -1,20 +1,4 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8-80 compliant>
 
diff --git a/utils/make_shape_2d_from_blend.py b/utils/make_shape_2d_from_blend.py
index e914dd8..fae7201 100644
--- a/utils/make_shape_2d_from_blend.py
+++ b/utils/make_shape_2d_from_blend.py
@@ -1,4 +1,4 @@
-# Apache License, Version 2.0
+# SPDX-License-Identifier: Apache-2.0
 '''
 Created compact byte arrays which can be decoded into 2D shapes.
 (See 'GPU_batch_from_poly_2d_encoded').
diff --git a/utils/weekly_report.py b/utils/weekly_report.py
index ebbbde0..47d0129 100755
--- a/utils/weekly_report.py
+++ b/utils/weekly_report.py
@@ -1,22 +1,5 @@
 #!/usr/bin/env python3
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import datetime
 import ast
diff --git a/utils_api/bpy_introspect_ui.py b/utils_api/bpy_introspect_ui.py
index 2a236bb..ecef6a1 100644
--- a/utils_api/bpy_introspect_ui.py
+++ b/utils_api/bpy_introspect_ui.py
@@ -1,24 +1,5 @@
 #!/usr/bin/env python3
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# 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 the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contributor(s): Campbell Barton
-#
-# ***** END GPL LICENSE BLOCK *****
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/utils_doc/rna_manual_reference_updater.py b/utils_doc/rna_manual_reference_updater.py
index f6e908e..f8f17f8 100644
--- a/utils_doc/rna_manual_reference_updater.py
+++ b/utils_doc/rna_manual_reference_updater.py
@@ -1,20 +1,4 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 '''
 RNA Manual Reference Mapping Updater
diff --git a/utils_ide/qtcreator/externaltools/qtc_assembler_preview.py b/utils_ide/qtcreator/externaltools/qtc_assembler_preview.py
index ffaaea9..0c4644f 100755
--- a/utils_ide/qtcreator/externaltools/qtc_assembler_preview.py
+++ b/utils_ide/qtcreator/externaltools/qtc_assembler_preview.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 """
 Takes 2 args
diff --git a/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py
index d5bd097..0c9f253 100755
--- a/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py
+++ b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 """
 Takes 1 arg
diff --git a/utils_ide/qtcreator/externaltools/qtc_cpp_to_c_comments.py b/utils_ide/qtcreator/externaltools/qtc_cpp_to_c_comments.py
index 6e53041..7da1041 100755
--- a/utils_ide/qtcreator/externaltools/qtc_cpp_to_c_comments.py
+++ b/utils_ide/qtcreator/externaltools/qtc_cpp_to_c_comments.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 """
 Convert C++ Style Comments:
diff --git a/utils_ide/qtcreator/externaltools/qtc_doxy_file.py b/utils_ide/qtcreator/externaltools/qtc_doxy_file.py
index 41aedef..7a275cc 100755
--- a/utils_ide/qtcreator/externaltools/qtc_doxy_file.py
+++ b/utils_ide/qtcreator/externaltools/qtc_doxy_file.py
@@ -1,4 +1,6 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 """
 This script takes 2-3 args: [--browse] <Doxyfile> <sourcefile>
 
diff --git a/utils_ide/qtcreator/externaltools/qtc_expand_tabmix.py b/utils_ide/qtcreator/externaltools/qtc_expand_tabmix.py
index aae1886..79f57b6 100755
--- a/utils_ide/qtcreator/externaltools/qtc_expand_tabmix.py
+++ b/utils_ide/qtcreator/externaltools/qtc_expand_tabmix.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 import sys
 
 # TODO, get from QtCreator
diff --git a/utils_ide/qtcreator/externaltools/qtc_project_update.py b/utils_ide/qtcreator/externaltools/qtc_project_update.py
index a27d157..f727faa 100755
--- a/utils_ide/qtcreator/externaltools/qtc_project_update.py
+++ b/utils_ide/qtcreator/externaltools/qtc_project_update.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 """
 This is just a wrapper to run Blender's QtCreator project file generator,
diff --git a/utils_ide/qtcreator/externaltools/qtc_right_align_trailing_char.py b/utils_ide/qtcreator/externaltools/qtc_right_align_trailing_char.py
index 7efc92c..95da2a0 100755
--- a/utils_ide/qtcreator/externaltools/qtc_right_align_trailing_char.py
+++ b/utils_ide/qtcreator/externaltools/qtc_right_align_trailing_char.py
@@ -1,4 +1,6 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import sys
 
 # TODO, get from QtCreator
diff --git a/utils_ide/qtcreator/externaltools/qtc_select_surround.py b/utils_ide/qtcreator/externaltools/qtc_select_surround.py
index 3d1dd2a..cca102d 100755
--- a/utils_ide/qtcreator/externaltools/qtc_select_surround.py
+++ b/utils_ide/qtcreator/externaltools/qtc_select_surround.py
@@ -1,4 +1,6 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import sys
 
 # TODO, accept other characters as args
diff --git a/utils_ide/qtcreator/externaltools/qtc_sort_paths.py b/utils_ide/qtcreator/externaltools/qtc_sort_paths.py
index f4d2609..99193ab 100755
--- a/utils_ide/qtcreator/externaltools/qtc_sort_paths.py
+++ b/utils_ide/qtcreator/externaltools/qtc_sort_paths.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 import sys
 
 txt = sys.stdin.read()
diff --git a/utils_ide/qtcreator/externaltools/qtc_toggle_if0.py b/utils_ide/qtcreator/externaltools/qtc_toggle_if0.py
index fae3661..ec98d3a 100755
--- a/utils_ide/qtcreator/externaltools/qtc_toggle_if0.py
+++ b/utils_ide/qtcreator/externaltools/qtc_toggle_if0.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 import sys
 
 txt = sys.stdin.read()
diff --git a/utils_maintenance/blender_menu_search_coverage.py b/utils_maintenance/blender_menu_search_coverage.py
index 8ee6c45..626f254 100644
--- a/utils_maintenance/blender_menu_search_coverage.py
+++ b/utils_maintenance/blender_menu_search_coverage.py
@@ -1,20 +1,4 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/utils_maintenance/blender_update_themes.py b/utils_maintenance/blender_update_themes.py
index b35bcf7..5b4c392 100644
--- a/utils_maintenance/blender_update_themes.py
+++ b/utils_maintenance/blender_update_themes.py
@@ -1,20 +1,4 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8 compliant>
 
diff --git a/utils_maintenance/c_sort_blocks.py b/utils_maintenance/c_sort_blocks.py
index bc3f318..f11f7aa 100755
--- a/utils_maintenance/c_sort_blocks.py
+++ b/utils_maintenance/c_sort_blocks.py
@@ -1,22 +1,5 @@
 #!/usr/bin/env python3
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import os
 import sys
diff --git a/utils_maintenance/c_struct_clean.py b/utils_maintenance/c_struct_clean.py
index 7fe6059..609b8fe 100755
--- a/utils_maintenance/c_struct_clean.py
+++ b/utils_maintenance/c_struct_clean.py
@@ -1,22 +1,5 @@
 #!/usr/bin/env python3
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 """
 When a source file declares a struct which isn't used anywhere else in the file.
diff --git a/utils_maintenance/clang_format_paths.py b/utils_maintenance/clang_format_paths.py
index c03bbd5..3109321 100755
--- a/utils_maintenance/clang_format_paths.py
+++ b/utils_maintenance/clang_format_paths.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import multiprocessing
 import os
diff --git a/utils_maintenance/cmake_sort_filelists.py b/utils_maintenance/cmake_sort_filelists.py
index 7ca5565..0c8f571 100755
--- a/utils_maintenance/cmake_sort_filelists.py
+++ b/utils_maintenance/cmake_sort_filelists.py
@@ -1,22 +1,5 @@
 #!/usr/bin/env python3
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 """
 Sorts CMake path lists
diff --git a/utils_maintenance/code_clean.py b/utils_maintenance/code_clean.py
index 13d3d54..ca570d9 100755
--- a/utils_maintenance/code_clean.py
+++ b/utils_maintenance/code_clean.py
@@ -1,21 +1,5 @@
 #!/usr/bin/env python3
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 # <pep8-80 compliant>
 
diff --git a/utils_maintenance/modules/batch_edit_text.py b/utils_maintenance/modules/batch_edit_text.py
index 381a2d9..e684470 100644
--- a/utils_maintenance/modules/batch_edit_text.py
+++ b/utils_maintenance/modules/batch_edit_text.py
@@ -1,20 +1,4 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  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 the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 from typing import (
     Callable,
diff --git a/utils_maintenance/trailing_space_clean.py b/utils_maintenance/trailing_space_clean.py
index 0866217..20a8e90 100755
--- a/utils_maintenance/trailing_space_clean.py
+++ b/utils_maintenance/trailing_space_clean.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import os
 from os.path import join, splitext
diff --git a/utils_maintenance/trailing_space_clean_config.py b/utils_maintenance/trailing_space_clean_config.py
index e5a4cb8..36d07a0 100644
--- a/utils_maintenance/trailing_space_clean_config.py
+++ b/utils_maintenance/trailing_space_clean_config.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import os
 PATHS = (
-- 
GitLab