File: 0006-Lookup-path-for-private-lib.patch

package info (click to toggle)
tomopy 1.15.3%2Bds1-1
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid
  • size: 16,296 kB
  • sloc: cpp: 8,205; ansic: 7,231; python: 6,628; sh: 169; makefile: 70
file content (43 lines) | stat: -rw-r--r-- 1,394 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
From: Roland Mas <lolando@debian.org>
Date: Wed, 16 Aug 2023 16:45:49 +0200
Subject: Lookup path for private lib

---
 source/tomopy/util/extern/__init__.py | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/source/tomopy/util/extern/__init__.py b/source/tomopy/util/extern/__init__.py
index 48f3da3..485670d 100644
--- a/source/tomopy/util/extern/__init__.py
+++ b/source/tomopy/util/extern/__init__.py
@@ -49,6 +49,8 @@
 import ctypes
 import ctypes.util
 import os
+import subprocess
+import sys
 import warnings
 
 
@@ -72,6 +74,21 @@ def c_shared_lib(lib_name, error=True):
         except OSError:
             pass
 
+    try:
+        path = os.path.dirname(os.path.realpath(__file__))
+        sharedlib = os.path.join(path,'lib%s.so'%(lib_name,))
+        return load_dll(sharedlib)
+    except OSError:
+        pass
+
+    try:
+        path = os.path.dirname(os.path.realpath(__file__))
+        arch = subprocess.check_output(["dpkg-architecture", "--query", "DEB_HOST_MULTIARCH"], text=True).strip()
+        sharedlib = os.path.join(path,'lib%s.cpython-%d%d-%s.so'%(lib_name,sys.version_info.major,sys.version_info.minor,arch))
+        return load_dll(sharedlib)
+    except OSError:
+        raise
+
     explanation = (
         'TomoPy links to compiled components which are installed separately'
         ' and loaded using ctypes.util.find_library().'