diff --git a/add_mesh_discombobulator/mesh_discombobulator.py b/add_mesh_discombobulator/mesh_discombobulator.py
index 93f3b3c48a77f208c291bb2d7b119c5504c12d1c..09c6eae0ff44cddcd4b02d67bc6dc68f95cd0e31 100644
--- a/add_mesh_discombobulator/mesh_discombobulator.py
+++ b/add_mesh_discombobulator/mesh_discombobulator.py
@@ -1,4 +1,6 @@
-# GPL # Original Authors: Evan J. Rosky (syrux), Chichiri, Jace Priester #
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Original Authors: Evan J. Rosky (syrux), Chichiri, Jace Priester
 
 import bpy
 import random
diff --git a/add_mesh_extra_objects/add_mesh_teapot.py b/add_mesh_extra_objects/add_mesh_teapot.py
index e4ddbecbdff41af010963af8459c6a840e0077a7..6fc693c486b47d4d0292fa0c07a5675b2cc08421 100644
--- a/add_mesh_extra_objects/add_mesh_teapot.py
+++ b/add_mesh_extra_objects/add_mesh_teapot.py
@@ -1,4 +1,6 @@
-# GPL #  Author, Anthony D'Agostino
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Author, Anthony D'Agostino
 
 import bpy
 from bpy.props import (
diff --git a/amaranth/render/meshlight_add.py b/amaranth/render/meshlight_add.py
index 0b78b52b36016818c65419077e3f9a6cf57df204..a7febbfab8e8bcc1219ab6eea600678dfb62f479 100644
--- a/amaranth/render/meshlight_add.py
+++ b/amaranth/render/meshlight_add.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 from mathutils import Vector
 from amaranth.utils import cycles_exists
diff --git a/btrace/bTrace_panel.py b/btrace/bTrace_panel.py
index 2d267e8a34691744477cb2ed57785d45e7b93407..6783207a6ba86359f7ecd74b9152f0dc2da38dda 100644
--- a/btrace/bTrace_panel.py
+++ b/btrace/bTrace_panel.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 from bpy.types import Panel
 
diff --git a/curve_assign_shapekey.py b/curve_assign_shapekey.py
index 643eb3a28ea7613f3e7e7558f878a56d1ecffb25..a87e89b07f0be08643982e10198a8d990bf35138 100644
--- a/curve_assign_shapekey.py
+++ b/curve_assign_shapekey.py
@@ -1,14 +1,12 @@
-#
-#
+# SPDX-License-Identifier: GPL-3.0-or-later
+# Copyright (C) 2019  Shrinivas Kulkarni
+
 # This Blender add-on assigns one or more Bezier Curves as shape keys to another
 # Bezier Curve
 #
 # Supported Blender Versions: 2.8x
 #
-# Copyright (C) 2019  Shrinivas Kulkarni
-#
-# License: GPL-3.0 (https://github.com/Shriinivas/assignshapekey/blob/master/LICENSE)
-#
+# https://github.com/Shriinivas/assignshapekey/blob/master/LICENSE
 
 import bpy, bmesh, bgl, gpu
 from gpu_extras.batch import batch_for_shader
diff --git a/curve_tools/curves.py b/curve_tools/curves.py
index 8a1a14848781d97f6c459f564779127d67a67e24..8b5e2e7f89695db5abf76d97a710d2d7574aaef3 100644
--- a/curve_tools/curves.py
+++ b/curve_tools/curves.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 from . import mathematics
 
 import bpy
diff --git a/curve_tools/operators.py b/curve_tools/operators.py
index 2b1fe12d6706d31b309d6a36160ede7b34ff6b27..e4480f882f3b351bc7fdd0f7f0d1b3c2c6507d74 100644
--- a/curve_tools/operators.py
+++ b/curve_tools/operators.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import time
 import threading
 
diff --git a/greasepencil_tools/import_brush_pack.py b/greasepencil_tools/import_brush_pack.py
index b1306bed338e6d1b400a5b2e93becfd07b898622..2b960af6c629d4671836f04ce2584d8c797ef93f 100644
--- a/greasepencil_tools/import_brush_pack.py
+++ b/greasepencil_tools/import_brush_pack.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 import re
 import ssl
diff --git a/greasepencil_tools/rotate_canvas.py b/greasepencil_tools/rotate_canvas.py
index f89e006eb687b07c49e75a1fb9e08cde9b41b529..6db43234635add5bd62f99b74dd189ed01422c15 100644
--- a/greasepencil_tools/rotate_canvas.py
+++ b/greasepencil_tools/rotate_canvas.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 from .prefs import get_addon_prefs
 
 import bpy
@@ -100,7 +102,7 @@ class RC_OT_RotateCanvas(bpy.types.Operator):
 
         ## area deformation restore
         new_cam_offset = mathutils.Vector((new_cam_offset[0], new_cam_offset[1] * self.ratio_inv))
-        
+
         context.space_data.region_3d.view_camera_offset = new_cam_offset
 
     def execute(self, context):
@@ -201,7 +203,7 @@ class RC_OT_RotateCanvas(bpy.types.Operator):
         # CORRECT UI OVERLAP FROM HEADER TOOLBAR
         regs = context.area.regions
         if context.preferences.system.use_region_overlap:
-            w = context.area.width 
+            w = context.area.width
             # minus tool header
             h = context.area.height - regs[0].height
         else:
@@ -209,9 +211,9 @@ class RC_OT_RotateCanvas(bpy.types.Operator):
             w = context.area.width - regs[2].width - regs[3].width
             # minus tool header + header
             h = context.area.height - regs[0].height - regs[1].height
-        
+
         self.ratio = h / w
-        self.ratio_inv = w / h    
+        self.ratio_inv = w / h
 
         if self.in_cam:
             # Get camera from scene
@@ -221,8 +223,8 @@ class RC_OT_RotateCanvas(bpy.types.Operator):
             if self.cam.lock_rotation[:] != (False, False, False):
                 self.report({'WARNING'}, 'Camera rotation is locked')
                 return {'CANCELLED'}
-            
-            if self.use_view_center:                
+
+            if self.use_view_center:
                 self.center = mathutils.Vector((w/2, h/2))
             else:
                 self.center = self.get_center_view(context, self.cam)
@@ -234,7 +236,7 @@ class RC_OT_RotateCanvas(bpy.types.Operator):
             # store camera matrix world
             self.cam_matrix = self.cam.matrix_world.copy()
             # self.cam_init_euler = self.cam.rotation_euler.copy()
-            
+
             ## initialize current view_offset in camera
             self.view_cam_offset = mathutils.Vector(context.space_data.region_3d.view_camera_offset)
 
diff --git a/io_export_paper_model.py b/io_export_paper_model.py
index 94d16361f0702785ccb50f404bf5b57c0e13b783..288c4520ab12820de5c526eea94601e006c80e72 100644
--- a/io_export_paper_model.py
+++ b/io_export_paper_model.py
@@ -1,6 +1,6 @@
-# -*- coding: utf-8 -*-
-# This script is Free software. Please share and reuse.
-# ♡2010-2021 Adam Dominec <adominec@gmail.com>
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Copyright 2010-2021 Adam Dominec <adominec@gmail.com>
 
 ## Code structure
 # This file consists of several components, in this order:
diff --git a/lighting_tri_lights.py b/lighting_tri_lights.py
index f86972ed5b8a192081f083ceedb3d9f3ebdd27db..5b31ad27db036a2829f8e82e3f1232122aed057a 100644
--- a/lighting_tri_lights.py
+++ b/lighting_tri_lights.py
@@ -1,4 +1,6 @@
-# gpl: author Daniel Schalla, maintained by meta-androcto
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# author Daniel Schalla, maintained by meta-androcto
 
 bl_info = {
     "name": "Tri-lighting",
diff --git a/magic_uv/lib/bglx.py b/magic_uv/lib/bglx.py
index e72cd73461e9db14f22b5d2f603a21a1d07b218a..c1f696ab4de7c90a3f02a7bd4a066f713888fa95 100644
--- a/magic_uv/lib/bglx.py
+++ b/magic_uv/lib/bglx.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 from threading import Lock
 
 import bgl
diff --git a/materials_utils/enum_values.py b/materials_utils/enum_values.py
index 2f257400330ff9a526f7e6697a10f3aece6bf8b3..9e198806242e737fcdd36348170fe8872db3775a 100644
--- a/materials_utils/enum_values.py
+++ b/materials_utils/enum_values.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 
 
diff --git a/materials_utils/functions.py b/materials_utils/functions.py
index 4663fbeba5eb528948c06c077738e74863b6cc8b..9397257a2d6c1be8063223d3528431791ccc20cb 100644
--- a/materials_utils/functions.py
+++ b/materials_utils/functions.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 from math import radians, degrees
 
diff --git a/materials_utils/menus.py b/materials_utils/menus.py
index 2e444298a0d7e9ba3f294a5fc996505bf673db14..3fff4a0d21ae46c6eb19247f4815fb1b52af5c0f 100644
--- a/materials_utils/menus.py
+++ b/materials_utils/menus.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 import bpy
 
 from .functions import *
diff --git a/materials_utils/operators.py b/materials_utils/operators.py
index a91c2301bd6d57e0dc356ae9c9baa4a59c6e9837..98eab7636e408dc11b9533925f60bd9663470de0 100644
--- a/materials_utils/operators.py
+++ b/materials_utils/operators.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 
 from bpy.types import Operator
diff --git a/materials_utils/preferences.py b/materials_utils/preferences.py
index 7fdbd9ff5d3097d11780aa29220fb6858626cf01..fdbb499342a73ece71dfb6b4f37402ea2b54490d 100644
--- a/materials_utils/preferences.py
+++ b/materials_utils/preferences.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 
 from bpy.types import (
diff --git a/mesh_auto_mirror.py b/mesh_auto_mirror.py
index 7057227b07c2a773d8b8c660cab3ce516e171d87..114ee9d310eedf9646158a56d087863cda1f76b0 100644
--- a/mesh_auto_mirror.py
+++ b/mesh_auto_mirror.py
@@ -1,8 +1,9 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
 ######################################################################################################
 # A simple add-on to auto cut in two and mirror an object                                            #
 # Actually partially uncommented (see further version)                                               #
 # Author: Lapineige, Bookyakuno                                                                      #
-# License: GPL v3                                                                                    #
 ######################################################################################################
 # 2.8 update by Bookyakuno, meta-androcto
 
diff --git a/object_carver/carver_draw.py b/object_carver/carver_draw.py
index f2a3aadc7831d532afd35d37011666ede5b2a7f9..c70007871e44a01f86eb852a2080101f45545dfe 100644
--- a/object_carver/carver_draw.py
+++ b/object_carver/carver_draw.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 import bgl
 import blf
diff --git a/object_carver/carver_operator.py b/object_carver/carver_operator.py
index 880f6491994358ff56fefc217e7dee7cab4af6d3..4c64fdf075e74189466da2b52c8e42abc4b13b3e 100644
--- a/object_carver/carver_operator.py
+++ b/object_carver/carver_operator.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 import bpy_extras
 import sys
diff --git a/object_carver/carver_preferences.py b/object_carver/carver_preferences.py
index 1e6bc7ab403808aee4fd4c2f4241c34487b96937..873a814d530f2365c80da5b39f6e10f8ab0c3739 100644
--- a/object_carver/carver_preferences.py
+++ b/object_carver/carver_preferences.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 import bpy
 from bpy.props import (
     BoolProperty,
diff --git a/object_carver/carver_profils.py b/object_carver/carver_profils.py
index 9c99bf9750078b16c23aad3ca0013c60c073602f..d786c2807b4f156e792768591d6370c55f947dca 100644
--- a/object_carver/carver_profils.py
+++ b/object_carver/carver_profils.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 from mathutils import (
     Vector,
 )
diff --git a/object_carver/carver_utils.py b/object_carver/carver_utils.py
index b026c1d141c7613db2fe30f1aba23edb91ec12de..0ac4c9916210a9e4137dc2acec144ef71fe12ef2 100644
--- a/object_carver/carver_utils.py
+++ b/object_carver/carver_utils.py
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 import bpy
 import bgl
diff --git a/pose_library/asset_browser.py b/pose_library/asset_browser.py
index a95e48fe3a5ce205210cd280be4d9458eb33ff6c..d4662284659a458097a7970667fa889131b6a2a8 100644
--- a/pose_library/asset_browser.py
+++ b/pose_library/asset_browser.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 """Functions for finding and working with Asset Browsers."""
 
 from typing import Iterable, Optional, Tuple
diff --git a/space_view3d_stored_views/io.py b/space_view3d_stored_views/io.py
index 83a5499d7aa6959d5bb0c004649284a072bae7d6..c17d307e35aefa3be76296c38cf8fb6632f2bee8 100644
--- a/space_view3d_stored_views/io.py
+++ b/space_view3d_stored_views/io.py
@@ -1,4 +1,6 @@
-# gpl authors: nfloyd, Francesco Siddi
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Authors: nfloyd, Francesco Siddi
 
 import gzip
 import os
diff --git a/space_view3d_stored_views/properties.py b/space_view3d_stored_views/properties.py
index 51666ce27d173e65e9f2e0384aa86104ac042175..a9fd6b2bf8323292003e211336c2c79f25734d9b 100644
--- a/space_view3d_stored_views/properties.py
+++ b/space_view3d_stored_views/properties.py
@@ -1,4 +1,6 @@
-# gpl authors: nfloyd, Francesco Siddi
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# authors: nfloyd, Francesco Siddi
 import bpy
 from bpy.types import PropertyGroup
 from bpy.props import (
diff --git a/viewport_vr_preview/configs/default.py b/viewport_vr_preview/configs/default.py
index a20c5c6de3af6d692809dfb8202848afaa1881b6..a42b3f45a3da9fdba4337b2d66743c09ed28a931 100644
--- a/viewport_vr_preview/configs/default.py
+++ b/viewport_vr_preview/configs/default.py
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 actionconfig_version = (3, 0, 39)
 actionconfig_data = \
 [("blender_default",