From b2948ae5fa060f6891d7edfefbee3c9f37394027 Mon Sep 17 00:00:00 2001
From: Jason van Gumster <fweeb@monsterjavaguns.com>
Date: Mon, 24 May 2021 16:50:06 -0400
Subject: [PATCH] Attempt to address T67111.

If you have a relative path (e.g. //../objects/object.blend) and you use
bpy.path.abspath, it leaves the relative part (the double dots) as part
of the path (e.g. ~/some_project/scenes/../objects/object.blend). While
Windows is perfectly happy to open files with this kind of path, it
seems to get confused about paths that are relative to that. The fix is
to wrap the bpy.path.abspath function with os.path.abspath and
everything appears to remain sane.

Also introduced a small fix for the new linked node groups feature; in
2.93, the Item tab in the sidebar has been renamed to Node.
---
 object_edit_linked.py | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/object_edit_linked.py b/object_edit_linked.py
index f27fb82e3..95b4ec528 100644
--- a/object_edit_linked.py
+++ b/object_edit_linked.py
@@ -22,8 +22,8 @@ bl_info = {
     "author": "Jason van Gumster (Fweeb), Bassam Kurdali, Pablo Vazquez, Rainer Trummer",
     "version": (0, 9, 2),
     "blender": (2, 80, 0),
-    "location": "File > External Data / View3D > Sidebar > Item Tab",
-    "description": "Allows editing of assets linked from a .blend library.",
+    "location": "File > External Data / View3D > Sidebar > Item Tab / Node Editor > Sidebar > Node Tab",
+    "description": "Allows editing of objects, collections, and node groups linked from a .blend library.",
     "doc_url": "{BLENDER_MANUAL_URL}/addons/object/edit_linked_library.html",
     "category": "Object",
 }
@@ -110,7 +110,8 @@ class OBJECT_OT_EditLinked(bpy.types.Operator):
                 bpy.ops.wm.save_mainfile()
 
             settings["original_file"] = bpy.data.filepath
-            settings["linked_file"] = bpy.path.abspath(targetpath)
+            # Using both bpy and os abspath functions because Windows doesn't like relative routes as part of an absolute path
+            settings["linked_file"] = os.path.abspath(bpy.path.abspath(targetpath))
 
             if self.use_instance:
                 import subprocess
@@ -169,7 +170,8 @@ class NODE_OT_EditLinked(bpy.types.Operator):
                 bpy.ops.wm.save_mainfile()
 
             settings["original_file"] = bpy.data.filepath
-            settings["linked_file"] = bpy.path.abspath(targetpath)
+            # Using both bpy and os abspath functions because Windows doesn't like relative routes as part of an absolute path
+            settings["linked_file"] = os.path.abspath(bpy.path.abspath(targetpath))
 
             if self.use_instance:
                 import subprocess
@@ -311,7 +313,10 @@ class NODE_PT_PanelLinkedEdit(bpy.types.Panel):
     bl_label = "Edit Linked Library"
     bl_space_type = 'NODE_EDITOR'
     bl_region_type = 'UI'
-    bl_category = "Node"
+    if bpy.app.version >= (2, 93, 0):
+        bl_category = "Node"
+    else:
+        bl_category = "Item"
     bl_options = {'DEFAULT_CLOSED'}
 
     @classmethod
-- 
GitLab