ó
Ý²k^c           @` s­   d  d l  m Z m Z m Z m Z d  d l m Z d  d l m Z d  d l	 m	 Z	 d  d l
 m Z d  d l Z d d l m Z d	 d
 l m Z e e ƒ Z e d „  ƒ Z d S(   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literals(   t   OrderedDict(   t   exists(   t   glob(   t	   getLoggerNi   (   t   memoizei   (   t	   iteritemsc          C` sÄ  t  j j d ƒ s d Sd d l m }  m } m } t d d g ƒ } d } x‹ t	 | ƒ D]} \ } } | | k s  | | | k s  t
 d | | | | | f ƒ ‚ y t |  | ƒ ƒ } Wn t k
 rÉ qW X| rW PqW qW W| sd \ } } t j d | | ƒ | | f S| j d ƒ \ } } | d k rºt d ƒ }	 x` |	 D]X }
 | |
 ƒ }
 t |
 ƒ r;|
 j d ƒ r“| j d ƒ r€d } n d } | | f Sq;q;Wd } t j d | | ƒ | | f S| | f S(   uN   
    If on linux, returns (libc_family, version), otherwise (None, None).
    u   linuxi    (   t   confstrt   confstr_namest   readlinku   CS_GNU_LIBC_VERSIONi   u   CS_GNU_LIBPTHREAD_VERSIONi   uA   confstr_names_fallback for %s is %s yet in confstr_names it is %su   glibcu   2.5u8   Failed to detect libc family and version, assuming %s/%su    u   NPTLu   /lib/libc.so*u	   libuClibcu   0.u   uClibcu	   uClibc-ngu3   Failed to detect non-glibc family, assuming %s (%s)N(   NN(   u   CS_GNU_LIBC_VERSIONi   (   u   CS_GNU_LIBPTHREAD_VERSIONi   (   u   glibcu   2.5(   t   syst   platformt
   startswitht   Nonet   osR
   R   R   R   R	   t   AssertionErrort   strt	   Exceptiont   logt   warningt   splitR   R   (   R
   R   R   t   confstr_names_fallbackt   valt   kt   vt   familyt   versiont   clibst   clib(    (    s5   lib/python2.7/site-packages/conda/common/_os/linux.pyt   linux_get_libc_version   sF    
	
(   t
   __future__R    R   R   R   t   collectionsR   t   genericpathR   R   t   loggingR   R   t   _vendor.auxlib.decoratorsR   t   compatR	   t   __name__R   R    (    (    (    s5   lib/python2.7/site-packages/conda/common/_os/linux.pyt   <module>   s   "