ó
F—š]c           @@  s\   d  d l  m Z d  d l Z d  d l Z d  d l Z d „  Z d „  Z d „  Z d „  Z d S(   i    (   t   absolute_importNc          C@  sk   t  j d ƒ }  y |  j } Wn t k
 r0 d SXt  j | _ | ƒ  } t | t ƒ sg | j	 d ƒ } n  | S(   s9   Returns glibc version string, or None if not using glibc.t   asciiN(
   t   ctypest   CDLLt   Nonet   gnu_get_libc_versiont   AttributeErrort   c_char_pt   restypet
   isinstancet   strt   decode(   t   process_namespaceR   t   version_str(    (    s/   lib/python2.7/site-packages/setuptools/glibc.pyt   glibc_version_string
   s    	c         C@  sd   t  j d |  ƒ } | s0 t j d |  t ƒ t St | j d ƒ ƒ | k oc t | j d ƒ ƒ | k S(   Ns$   (?P<major>[0-9]+)\.(?P<minor>[0-9]+)s=   Expected glibc version with 2 components major.minor, got: %st   majort   minor(   t   ret   matcht   warningst   warnt   RuntimeWarningt   Falset   intt   group(   R   t   required_majort   minimum_minort   m(    (    s/   lib/python2.7/site-packages/setuptools/glibc.pyt   check_glibc_version$   s    	c         C@  s)   t  ƒ  } | d  k r t St | |  | ƒ S(   N(   R   R   R   R   (   R   R   R   (    (    s/   lib/python2.7/site-packages/setuptools/glibc.pyt   have_compatible_glibc4   s    	c          C@  s'   t  ƒ  }  |  d k r d Sd |  f Sd S(   s“   Try to determine the glibc version

    Returns a tuple of strings (lib, version) which default to empty strings
    in case the lookup fails.
    t    t   glibcN(   R   R   (   R   R   (   t   glibc_version(    (    s/   lib/python2.7/site-packages/setuptools/glibc.pyt   libc_verL   s    	(	   t
   __future__R    R   R   R   R   R   R   R!   (    (    (    s/   lib/python2.7/site-packages/setuptools/glibc.pyt   <module>   s   			