[Python-modules-commits] [cairocffi] 01/06: Import cairocffi_0.7.2.orig.tar.gz

Jean-Christophe Jaskula jcjaskula-guest at moszumanska.debian.org
Sat Oct 24 18:22:44 UTC 2015


This is an automated email from the git hooks/post-receive script.

jcjaskula-guest pushed a commit to branch master
in repository cairocffi.

commit 442c25e12a2070d915ac16d4daba19575babe9fa
Author: Jean-Christophe Jaskula <jean.christophe.jaskula at gmail.com>
Date:   Sat Oct 24 13:46:26 2015 -0400

    Import cairocffi_0.7.2.orig.tar.gz
---
 cairocffi/__init__.py | 27 +++++++++++++++------------
 cairocffi/pixbuf.py   | 10 ++++------
 2 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/cairocffi/__init__.py b/cairocffi/__init__.py
index 3000db2..fe5b39e 100644
--- a/cairocffi/__init__.py
+++ b/cairocffi/__init__.py
@@ -11,6 +11,7 @@
 """
 
 import sys
+import ctypes.util
 
 from . import constants
 from .compat import FileNotFoundError
@@ -21,7 +22,7 @@ except ImportError:
     # PyPy < 2.6 compatibility
     from .ffi_build import ffi
 
-VERSION = '0.7.1'
+VERSION = '0.7.2'
 # pycairo compat:
 version = '1.10.0'
 version_info = (1, 10, 0)
@@ -30,17 +31,19 @@ version_info = (1, 10, 0)
 def dlopen(ffi, *names):
     """Try various names for the same library, for different platforms."""
     for name in names:
-        try:
-            return ffi.dlopen(name)
-        except OSError:
-            pass
-    # Re-raise the exception.
-    return ffi.dlopen(names[0])  # pragma: no cover
-
-
-CAIRO_NAMES = ['libcairo.so.2', 'libcairo.2.dylib', 'libcairo-2.dll',
-               'cairo', 'libcairo-2']
-cairo = dlopen(ffi, *CAIRO_NAMES)
+        for lib_name in [name, 'lib' + name]:
+            try:
+                path = ctypes.util.find_library(lib_name)
+                if path:
+                    lib = ffi.dlopen(path)
+                    if lib:
+                        return lib
+            except OSError:
+                pass
+    raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names))
+
+
+cairo = dlopen(ffi, 'cairo', 'cairo-2')
 
 
 class CairoError(Exception):
diff --git a/cairocffi/pixbuf.py b/cairocffi/pixbuf.py
index 57d7069..46a5a84 100644
--- a/cairocffi/pixbuf.py
+++ b/cairocffi/pixbuf.py
@@ -26,13 +26,11 @@ except ImportError:
 
 __all__ = ['decode_to_image_surface']
 
-gdk_pixbuf = dlopen(ffi, 'gdk_pixbuf-2.0', 'libgdk_pixbuf-2.0-0',
-                    'libgdk_pixbuf-2.0.so')
-gobject = dlopen(ffi, 'gobject-2.0', 'libgobject-2.0-0', 'libgobject-2.0.so')
-glib = dlopen(ffi, 'glib-2.0', 'libglib-2.0-0', 'libglib-2.0.so')
+gdk_pixbuf = dlopen(ffi, 'gdk_pixbuf-2.0', 'gdk_pixbuf-2.0-0')
+gobject = dlopen(ffi, 'gobject-2.0', 'gobject-2.0-0')
+glib = dlopen(ffi, 'glib-2.0', 'glib-2.0-0')
 try:
-    gdk = dlopen(ffi, 'gdk-3', 'gdk-x11-2.0', 'libgdk-win32-2.0-0',
-                 'libgdk-x11-2.0.so')
+    gdk = dlopen(ffi, 'gdk-3', 'gdk-x11-2.0', 'gdk-win32-2.0-0')
 except OSError:
     gdk = None
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/cairocffi.git



More information about the Python-modules-commits mailing list