Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLipu Fei <lipu.fei815@gmail.com>2019-09-04 19:25:29 +0300
committerLipu Fei <lipu.fei815@gmail.com>2019-09-04 20:20:59 +0300
commitb309680fb7602a9d773d8a03166259c2364ad656 (patch)
tree76208f735e18c9cdbdc63f2b4b1c2386d5d6c38c
parentbb11c695e24b3df92e388ecaf28dba9fb9e90c88 (diff)
Fix CTM loading on Linux
CURA-6739 Note that this doesn't work with Python 3.5.7, but with 3.6 and 3.7. To make Python 3.5.7 work, a fix needs to be backported from 3.6 for ctypes.util.find_library() for Linux.
-rwxr-xr-xcura_app.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/cura_app.py b/cura_app.py
index 42581f134e..44bef048f2 100755
--- a/cura_app.py
+++ b/cura_app.py
@@ -155,5 +155,20 @@ if Platform.isOSX() and getattr(sys, "frozen", False):
path_list.append(search_path)
os.environ["DYLD_FALLBACK_LIBRARY_PATH"] = ":".join(path_list)
+# WORKAROUND: CURA-6739
+# Similar CTM file loading fix for Linux, but NOTE THAT this doesn't work directly with Python 3.5.7. There's a fix
+# for ctypes.util.find_library() in Python 3.6 and 3.7. That fix makes sure that find_library() will check
+# LD_LIBRARY_PATH. With Python 3.5, that fix needs to be backported to make this workaround work.
+if Platform.isLinux() and getattr(sys, "frozen", False):
+ old_env = os.environ.get("LD_LIBRARY_PATH", "")
+ # This is where libopenctm.so is in the AppImage.
+ search_path = os.path.join(CuraApplication.getInstallPrefix(), "bin")
+ path_list = old_env.split(":")
+ if search_path not in path_list:
+ path_list.append(search_path)
+ os.environ["LD_LIBRARY_PATH"] = ":".join(path_list)
+ import trimesh.exchange.load
+ os.environ["LD_LIBRARY_PATH"] = old_env
+
app = CuraApplication()
app.run()