]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
python: improve libknot detection
authorDaniel Salzman <daniel.salzman@nic.cz>
Tue, 20 Nov 2018 15:33:07 +0000 (16:33 +0100)
committerDaniel Salzman <daniel.salzman@nic.cz>
Wed, 21 Nov 2018 12:57:11 +0000 (13:57 +0100)
.gitignore
configure.ac
python/.gitignore [new file with mode: 0644]
python/Makefile.am
python/libknot/__init__.py [deleted file]
python/libknot/__init__.py.in [new file with mode: 0644]
python/libknot/control.py

index 4aad9342bbc41a9379ea518710680329663a9824..40c4fc2f2cd589941583f363c1b0e109670c7c4f 100644 (file)
@@ -45,7 +45,6 @@ Makefile
 Makefile.in
 version.h
 
-/python/setup.py
 /samples/knot.sample.conf
 /src/knot/modules/static_modules.h
 
@@ -84,4 +83,4 @@ version.h
 # eclipse
 /.project
 /.cproject
-/.settings/
\ No newline at end of file
+/.settings/
index 30f688abadb2ee462c567ae7f218d949b777ffbd..391ce947bf1c9194f68d676acecf3a74dec6d4f1 100644 (file)
@@ -21,9 +21,10 @@ AC_CANONICAL_HOST
 
 # Update library versions
 # https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
-AC_SUBST([libknot_VERSION_INFO],["-version-info 8:0:0"])
-AC_SUBST([libdnssec_VERSION_INFO],["-version-info 6:0:0"])
-AC_SUBST([libzscanner_VERSION_INFO],["-version-info 2:0:0"])
+AC_SUBST([python_libknot_VERSION],                 ["8"])
+AC_SUBST([libknot_VERSION_INFO],     ["-version-info 8:0:0"])
+AC_SUBST([libdnssec_VERSION_INFO],   ["-version-info 6:0:0"])
+AC_SUBST([libzscanner_VERSION_INFO], ["-version-info 2:0:0"])
 
 AC_SUBST([KNOT_VERSION_MAJOR], knot_VERSION_MAJOR)
 AC_SUBST([KNOT_VERSION_MINOR], knot_VERSION_MINOR)
@@ -701,6 +702,7 @@ AC_CONFIG_FILES([Makefile
                  distro/Makefile
                  python/Makefile
                  python/setup.py
+                 python/libknot/__init__.py
                  src/Makefile
                  src/knot/modules/static_modules.h
                  ])
diff --git a/python/.gitignore b/python/.gitignore
new file mode 100644 (file)
index 0000000..6c6ff74
--- /dev/null
@@ -0,0 +1,2 @@
+/libknot/__init__.py
+/setup.py
index c7db41739d53e511e2be451c26196ec3354a9d27..629c2e41ef4097e94f3ad640277543181f11225a 100644 (file)
@@ -1,4 +1,4 @@
 EXTRA_DIST =                   \
-       libknot/__init__.py     \
+       libknot/__init__.py.in  \
        libknot/control.py      \
        setup.py.in
diff --git a/python/libknot/__init__.py b/python/libknot/__init__.py
deleted file mode 100644 (file)
index 73a2b10..0000000
+++ /dev/null
@@ -1 +0,0 @@
-"""Python libknot interface."""
diff --git a/python/libknot/__init__.py.in b/python/libknot/__init__.py.in
new file mode 100644 (file)
index 0000000..a13b369
--- /dev/null
@@ -0,0 +1,3 @@
+"""Python libknot interface."""
+
+LIBKNOT_VERSION = "@python_libknot_VERSION@"
index 433ad359829062476f07a9157072deafed065a50..ced1be62896e767054788b64b9066f7a38f17c79 100644 (file)
@@ -45,7 +45,17 @@ def load_lib(path=None):
     """Loads the libknot library."""
 
     if path is None:
-        path = "libknot.dylib" if sys.platform == "darwin" else "libknot.so"
+        version = ""
+        try:
+            from libknot import LIBKNOT_VERSION
+            version = ".%u" % int(LIBKNOT_VERSION)
+        except:
+            pass
+
+        if sys.platform == "darwin":
+            path = "libknot%s.dylib" % version
+        else:
+            path = "libknot.so%s" % version
     LIB = cdll.LoadLibrary(path)
 
     global CTL_ALLOC