18468472 ctypes fails for python 2.7
authorJohn Beck <John.Beck@Oracle.COM>
Thu, 27 Mar 2014 10:39:39 -0700
changeset 1794 942d8ee5d880
parent 1793 b253729db1c0
child 1795 a93a51a16131
18468472 ctypes fails for python 2.7
components/python/python27/patches/20-ctypes-util-find-library.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/python27/patches/20-ctypes-util-find-library.patch	Thu Mar 27 10:39:39 2014 -0700
@@ -0,0 +1,41 @@
+This patch comes from upstream: http://bugs.python.org/issue5289
+If we ever upgrade to 2.7.4 or later, it will no longer be needed.
+
+--- Python-2.7.3/Lib/ctypes/util.py~
++++ Python-2.7.3/Lib/ctypes/util.py
+@@ -180,6 +180,35 @@ elif os.name == "posix":
+             res.sort(cmp= lambda x,y: cmp(_num_version(x), _num_version(y)))
+             return res[-1]
+ 
++    elif sys.platform == "sunos5":
++
++        def _findLib_crle(name, is64):
++            if not os.path.exists('/usr/bin/crle'):
++                return None
++
++            if is64:
++                cmd = 'env LC_ALL=C /usr/bin/crle -64 2>/dev/null'
++            else:
++                cmd = 'env LC_ALL=C /usr/bin/crle 2>/dev/null'
++
++            for line in os.popen(cmd).readlines():
++                line = line.strip()
++                if line.startswith('Default Library Path (ELF):'):
++                    paths = line.split()[4]
++
++            if not paths:
++                return None
++
++            for dir in paths.split(":"):
++                libfile = os.path.join(dir, "lib%s.so" % name)
++                if os.path.exists(libfile):
++                    return libfile
++
++            return None
++
++        def find_library(name, is64 = False):
++            return _get_soname(_findLib_crle(name, is64) or _findLib_gcc(name))
++
+     else:
+ 
+         def _findSoname_ldconfig(name):