diff --git a/check_blender_release/check_module_enabled.py b/check_blender_release/check_module_enabled.py
index 158a5386a9ddb7d9848133a58a7fe85c40dbae18..b7082a3660741b61498720bc5bac8447fe1e4c69 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 36c90006807531cdb44b0ca5441ed042a6b0511f..d70d1c27c172f4e856de9ed0a886e48668248635 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 af8f6e3b8e43f03e17fda167d6a3f974a7445e8f..34842b26fc9435be86a11a4b8399347a1b540719 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 5c8c9c624d9ac732e18f68b5b1572f58432f1bf3..5112367650581dcb681c63126da43b2238f5fb93 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 d822e75e00dfd0a2f90875e7d27ddaf7cc8401d8..80d4f97c79eab61531d1bdb88a060beb7e0eeeee 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 42679cd16ec420b530b6b7f04b9c6f2a2e9e9b7c..a87daca231ab4b072032b20d101a5fafba981f80 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 1a83ec6b22643c633d1556fab6ec809794846fa4..23048d76e2e9598db63b11d8b59b3a963014006e 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 54c581bbf6551f0404b3b53e9552d9f60ec8eb44..5526d986a9bdd776c15ff6c526f3f85a4a02e169 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 c2e5936fe3786bc72d6bf8f7278f733571c09e48..9bda9b411f4e7a93d589e06da21b1b98939df9c3 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 09d6f61796cccdaba15a17b39f2dc1923b623bca..c7c466dd2c292d1a2ebbd798c9c728238e038d88 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 20b15530dd259d47a077bafde4e99ff35e656c80..6077f9e52497889fbd0afb0cb5ee65615e55ad2c 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 71557623a8ca31b815e8c03b94f342545b1804f8..412d980d8ae197d9106e6c7fd78647bffde3d666 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 f0ea90ee413193f9377691b471e417d6f3531f50..f8215b4cad1fb037c50290f6f5c88c744ba9218f 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 d3dbe6ab940f06424c2b17f20855f7ddacc42a2f..bef469e23f7fed74963cf82f6fd80c0b9bb9afa7 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 ddca6e25a4737f9e90348b711ae83582ed8fa76e..256dd1bba9fc75fd73bc46eff18f2609d7bf05b5 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 9ca0e3bb7407223f22abddfc05e5706feeec601d..b1974804b02cf52a1f56bef4ada552aee1dff2d6 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 d44e40d545ffee1b124bec39bb8f0fee44d201d6..66ebea8bd9674f4bda744905a0e29838b2d117dc 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 fd5a12ccb05cc0ca4087f21187dac54f7c25c05a..124d9d37051c2ad1cc96656977949c3ef74c0d5f 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 9b2d70ab5a1a81e0bc0fd6dec4b2f1e82c05b6c7..d815fd61b9480d35e6773d215842e5caa4bca41c 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 11bcbf6f307414c1aa18551e1b2119baa1796505..831eb65ba1242b1ff628c72a77d1ed16ffd15c98 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 0c704eb8f7689f6ee8973221a03fcb99b331a2e0..25208fad00905abaf3c02c68b2430a0880889e12 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 cac077892c6fafff7fc34a901996070cb6fd18d4..ce84c70bd7616c8ae9141d06aefa496d1cd02ee7 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 751398f9fa478e3f54406e1d93711382da803708..1f10da88e82653b6a5a9ff9cb4d395337bdd7331 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 faafc9064b68a88b58ce16b734f06745108482e8..bd90085329211c7c9262158e5bbe8c0af2e3e684 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 4077af92fab6c0e5f569bf769562a6c7a36eebea..99d7a26ce9d0a7204e719c47cc7e183c4c4e78d2 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 435ee88b241ebec161907e994abef3a5235d02ba..a58f5844aab5f32ef472e1e063e5e8dfb83d252b 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 c9f79c4609588142dd1c91799624389f15a4f3e2..9ca68655fb25ebb5fa0cd96d4045f717dab368ce 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 41636ce943ba97724270dea794621d811cedaec7..ae928d105c6ae086d6e23ab43cf992906573dc36 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 e0e46320779617ca66979b3f2e8dbde0c6b745cb..8813a32e8efaa8c16c6dc2b80a0ff9c61cef3e91 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 2ce15152df310022ecf105b5c90e930514ef5d7b..383123be672ce1d292c5a02433d26bad6c9ccca3 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 8fae36f91a8740488a877179ff53056fd9a0eca8..79bd69dcf5df9e6c96c8b0d8c99b3aabbc3581e0 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 d8ead0f60a8749218ff270ba2d3808e70c16485d..12b08df797d835f764b67030842d4204d0336857 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 2ac2d49eee15711a109eccab444e31f2631887e7..ae01182e853fbd11af5c89a1984612ebf415dfdd 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 a419e70386e0d8f9aabb4e77ecc1e487999faf38..76a0f695a3e137fd33a58c72f9c665b1a5fdd28f 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 dd2c91bc60c76bb475659e954a97754676046158..8bba453ae0d1b918ec3f8a819ec7c1cbcad326ff 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 a31bc311e456185cd1d392d5e8b0ef4461f7b002..1395d0f44f8938f2bc0099840aa0e2406f428c1a 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 37f3e4643b58b2ccfeb1fd8ff76cf94dfb319f0b..6f8fe492dc5d8b052b96186d46d03d7ea6fa5ee8 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 5962d0b9b280a770df03aaf90c4870566362cd47..77082308e5a05205bd7d125109af2f73c5e7de13 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 74e755c65847cc2fc5b8547cd97a360b32caa04b..68805fa9797af8a82ad09e00a88e3c7e1d7883f5 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 e914dd89852c213d1c5154418d40fdc2434a9815..fae7201b36a66d182b2d2d93e4783075cb4eb1d6 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 ebbbde07599d526b4cd56eb6bb8ea5dbe9cf71df..47d01290df1cd8211c073828c570b98b8a13f4ac 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 2a236bbbc5dc6614fe93abc7bdefb38433da87b0..ecef6a1271284e1ec6af89c88822236a08dc29be 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 f6e908e5e96fa7dcffa527c5c9f10feb4497d8c7..f8f17f8b6adec69557d33815c324beb97da07f4b 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 ffaaea9b20f5a3ccb4191f9e2b3d4cddec0e0fd1..0c4644fe75c2a01c2db0d2c77bc587b33e3a1f27 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 d5bd097ab5181da0e3f15ea7fd60293334b0f003..0c9f2534b00a5019eace1c5ad8258c0a2f817801 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 6e530411413abb78e51b031eb262913d5fc3a32a..7da1041dbf6ad2c8c8d4863ae31aa79390acf6cd 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 41aedef79faff45bc0ee2f46797d21a559b32801..7a275cccf689abef480baf99a02df9fac6f0e951 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 aae1886395da35b2420dbe764a5957844fd56607..79f57b647c0bbdc8ab7645a6d427325f9980a65b 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 a27d1579e94402c42e9ace1e25511302e5da124a..f727faa33fe9061caad9fdcce916ff14f4dd6e84 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 7efc92cd5fb205704b4b5ee8e9cb9bd28e441c5b..95da2a02949cffe2093dd03195a8988b19d38aee 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 3d1dd2a984fe298f32f43c174885163151d2507a..cca102d198e35d778497d97f7cafa7638fe430fa 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 f4d2609d91437adf0434cd9eaf7029d9655a435a..99193abe1e19bf02107710abb10266a2442c56bb 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 fae3661c18adac09aeafb7c6411e13de41b11521..ec98d3a6f0ff605ab519e442f59c595fad7d7c5a 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 8ee6c4537c5351c6159484b54b7c64e9a36ffe31..626f2547f131ded07f381fb1819883aa06b94761 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 b35bcf7623e4d8e38fede7a3733b375f510542c5..5b4c39298b4147ad00acf632b2574c0b37b98664 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 bc3f318a3b65ccf0b63abe83b5ce511db835f0ee..f11f7aaf00fd1fa9e513f834456daea0957ce41e 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 7fe60594a11734521813357bdfc28e1e8aa0ca4a..609b8fe5777929e08bb8d65f2ae52451293c2c3f 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 c03bbd5979346efe1238d9903fee4e218324271f..3109321e582545dd96abbce52f68f075b7865d9e 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 7ca5565bc6a314794b0089fa4f5c4b706973dc15..0c8f571c05348c17c68ccb4d4655c3359cc92852 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 13d3d54bb0026e3a0e68591319506da478725151..ca570d9792cdcf191ea41f64a897853149782b34 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 381a2d9f2644a055c116e3b54294d86bb1deeeb3..e684470f8f94db1085dc028d0307ce2e5c0ee243 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 086621727141a5a26a347423d4bf009dbe41c8b9..20a8e90549508890fcf2dd363da5b6a0d58bb3ee 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 e5a4cb89b0a07e7c782472b2203bae8f279ae8a9..36d07a0fb6e25150ff350b77fee1b2a2d9359713 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 = (