# HG changeset patch # User John Beck # Date 1395941979 25200 # Node ID 942d8ee5d8804ca67eea1ecddb03659040f842ec # Parent b253729db1c0224285e717e88273f8ba32a5e7c6 18468472 ctypes fails for python 2.7 diff -r b253729db1c0 -r 942d8ee5d880 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):