;ò
öí@c        !   @   s€  d  k  Td k Z d k Z d k Z d k Z d k Z d k Z d k Z d k Z d k	 Z	 d d d d d d f Z
 d f  d	 „  ƒ  YZ e i d
 ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d e
 ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z  e i d ƒ Z! e i e i d d ƒ ƒ Z" e i d  ƒ Z# d! „  Z$ d" e i f d# „  ƒ  YZ% e% ƒ  Z& e i' ok e( d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC ƒ  n d S(D   (   s   *Ns   /libs   /usr/libs   /usr/X11R6/libs   /lib64s
   /usr/lib64s   /usr/X11R6/lib64s
   BinaryInfoc           B   s   t  Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z	 e i d ƒ Z
 e i d e i ƒ Z d	 „  Z RS(
   Ns   ^\s*NEEDED\s*(\S+)s   ^\s*RPATH\s*(\S+)s   ^\s*SONAME\s*(\S+)s   ^\s*\d+\s+\.comment\s+s   ^DYNAMIC SYMBOL TABLE:s,   ^objdump: (.*?): File format not recognized$s   ^\s+\d+\s+\.rela?\.(data|text)s   TEXTRELc   	      C   sð  g  |  _ g  |  _ d |  _ d |  _ d |  _ d |  _ t i d | ƒ } | oœxrt i | d ƒ D]^} t i i | ƒ } | o |  i i | i d ƒ ƒ qc t i i | ƒ } | o: x× t i | i d ƒ d ƒ D] } |  i i | ƒ qÔ Wn¡ t i i | ƒ o d |  _ n t i i | ƒ o d |  _ na t i i | ƒ o d |  _ nA t i i | ƒ } | o' t i i d | i d ƒ | f ƒ n t i i | ƒ } | o | i d ƒ |  _ qc qc W|  i o t i i | ƒ |  _ qìn d  S(   Ni    i   s'   objdump --headers --private-headers -T s   
s   :s(   file format not recognized for %s in %s
(    s   selfs   neededs   rpaths   comments   dynsymss   sonames   non_pics   commandss	   getoutputs   paths   ress   strings   splits   ls
   BinaryInfos   needed_regexs   searchs   appends   groups   rpath_regexs   ps   comment_regexs   dynsyms_regexs	   pic_regexs   unrecognized_regexs   rs   syss   stderrs   writes   files   soname_regexs   non_pic_regex(	   s   selfs   paths   files   ps   ress   ls   neededs   rs   rpath(    (    s#   /usr/share/rpmlint/BinariesCheck.pys   __init__#   s@    						  '
(   s   __name__s
   __module__s   res   compiles   needed_regexs   rpath_regexs   soname_regexs   comment_regexs   dynsyms_regexs   unrecognized_regexs	   pic_regexs	   MULTILINEs   non_pic_regexs   __init__(    (    (    s#   /usr/share/rpmlint/BinariesCheck.pys
   BinaryInfo   s   s   (.*/)([^/]+)s1   /usr(?:/share)/man/man./(.*)\.[0-9](?:\.gz|\.bz2)s	   [^.][0-9]s   ELF|current ar archives   ^/usr/share/s   ^/etc/s   not strippeds   \.o$|\.static$s   shared objects
   executables   libc\.s   ^ld(-linux(-ia64|)|)\.sos   /lib(64)?/[^/]+\.sos   \.so\.[0-9]+s   SPARC32PLUS|SPARC V9|UltraSPARCs   SystemLibPathss   ^/usr/lib(64)?/s   ^(/usr(/X11R6)?)?/s?bin/s.   .*?([0-9][.0-9]*)\.so|.*\.so\.([0-9][.0-9]*).*s   \.la$|^/usr/lib/pkgconfig/s   UsrLibBinaryExceptionsO   ^/usr/lib/(perl|python|ruby|menu|pkgconfig|lib[^/]+\.(so|l?a)$|bonobo/servers/)s   (.*?)-[0-9]c         C   sD   t  i |  ƒ } | o  | i d ƒ | i d ƒ f Sn d |  f Sd  S(   Ni   i   s    (   s
   path_regexs   searchs   paths   ress   group(   s   paths   res(    (    s#   /usr/share/rpmlint/BinariesCheck.pys   dir_base^   s     s   BinariesCheckc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   s   t  i  i |  d ƒ d  S(   Ns   BinariesCheck(   s   AbstractChecks   __init__s   self(   s   self(    (    s#   /usr/share/rpmlint/BinariesCheck.pys   __init__g   s    c   "   	   C   sô  | i ƒ  o d  Sn | i ƒ  } | t i } | i ƒ  } g  } g  } t
 } d } d } d } t i | t i ƒ } | o | i | i d ƒ j } n d } xY | i ƒ  D]K } t i | ƒ o' t i | ƒ o t i | | d ƒ o | } Pqª qª Wx| D]‡} t i | d ƒ } | o| d } | o | o t i | d ƒ o
 d } n | d j o t | d | d ƒ q‡t  i | d ƒ o t | d | d ƒ n t! i | d ƒ o t | d | d ƒ n | d j o t" i | d ƒ o t | d | d ƒ n t# i | d ƒ ot$ i | d ƒ o t% | d	 | d ƒ n t& | i' ƒ  | d | d ƒ } t) i | d ƒ o¯| i* | d ƒ | i+ o t% | d
 | d ƒ nVt, i | i+ ƒ o t | d | d | i+ ƒ nº t- | d ƒ \ }! } yy |! | i+ } | | \ } } }	 }  } } } } |  | d j o |  | j o
 |  d j o t | d | d |  ƒ n Wn' t8 j
 o t | d | d ƒ n Xt9 i | i+ ƒ } | oQ | i d ƒ p | i d ƒ } | t
 j o
 | } q| | j o
 d } qn | i; o t | d | d ƒ q2n | i< oU xR | i< D]C } | t> j p t i | ƒ o t | d | d | i< ƒ PqFqFWn t? i | d ƒ } tA i | d ƒ p | on| o tB i | d ƒ o | i* | d ƒ n | iC o | i+ o tD i | i+ ƒ oD tA i | d ƒ o t | d | d ƒ q)t | d | d ƒ q-tE i | d ƒ o0 | i+ p% tE i | i+ ƒ o tD i | i+ ƒ o… d } x, | iC D]! }
 tE i |
 ƒ o d } Pq´q´W| oD tA i | d ƒ o t | d | d ƒ q%t | d | d ƒ q)q-q1q‡q tH i | d ƒ o> tI iJ d | iK d | d ƒ o t | d | d ƒ q‡q q W| g  j o| g  j o% x" | D] } t | d | ƒ q¬Wn x„ | i ƒ  D]v } tL i | ƒ } | o | i d ƒ p | } | | j o t) i | ƒ o tN i | ƒ o t | d | ƒ q×q×W| o& | d j o tO iP | i | ƒ d j o t | d | ƒ q™n | d j o | o" | d j o t | d ƒ qÐn | o | o t | d ƒ n d  S(   Ni    i   s   noarchs2   arch-independent-package-contains-binary-or-objects    arch-dependent-file-in-usr-shares   binary-in-etcs   sparcs   non-sparc32-binarys   unstripped-binary-or-objects	   no-sonames   invalid-sonames    s   invalid-ldconfig-symlinks   no-ldconfig-symlinki   iÿÿÿÿs   shlib-with-non-pic-codes   binary-or-shlib-defines-rpaths)   shared-lib-without-dependency-informations   statically-linked-binarys   library-not-linked-against-libcs   program-not-linked-against-libcs   tmp|homes   /s   invalid-directory-references   executable-in-library-packages%   non-versioned-file-in-library-packages   incoherent-version-in-names	   no-binarys   only-non-binary-in-usr-lib(Q   s   pkgs   isSources   getFilesInfos   infos   rpms   RPMTAG_ARCHs   archs   filess
   exec_filess   has_libs   Nones   versions   binarys   binary_in_usr_libs   has_usr_lib_files   srcname_regexs   searchs   RPMTAG_SOURCERPMs   ress   names   groups	   multi_pkgs   keyss   fs   usr_lib_regexs   usr_lib_exception_regexs   stats   S_ISDIRs   is   binary_regexs	   is_binarys
   printErrors	   usr_shares   etcs   sparc_regexs   unstrippables   not_strippeds   printWarnings
   BinaryInfos   dirNames   bin_infos   so_regexs   appends   sonames   validso_regexs   dir_bases   dirs   bases   symlinks   perms   owners   links   sizes   md5s   mtimes   rdevs   KeyErrors   soversion_regexs	   soversions   non_pics   rpaths   ps   system_lib_pathss   executable_regexs   is_execs   shared_object_regexs	   bin_regexs   neededs   ldso_soname_regexs
   libc_regexs
   found_libcs   libs   reference_regexs   Pkgs   greps   dirnames   numeric_dir_regexs   fns   versioned_dir_regexs   strings   find("   s   selfs   pkgs   is_execs   rdevs   mtimes   owners   has_libs   sizes   binarys   groups   libs   ps   ress   has_usr_lib_files   perms
   exec_filess   versions   fns   filess	   soversions   symlinks
   found_libcs   bases   archs	   is_binarys   md5s   infos   bin_infos   fs   is	   multi_pkgs   binary_in_usr_libs   links   dir(    (    s#   /usr/share/rpmlint/BinariesCheck.pys   checkj   sØ     :	 
#
!!"+



 )H
 	("   00(   s   __name__s
   __module__s   __init__s   check(    (    (    s#   /usr/share/rpmlint/BinariesCheck.pys   BinariesChecke   s   	s2   arch-independent-package-contains-binary-or-objectsP   The package contains a binary or object file but is tagged
Architecture: noarch.s    arch-dependent-file-in-usr-sharesw   This package installs an ELF binary in the /usr/share
 hierarchy, which is reserved for architecture-independent files.s   binary-in-etcsV   This package installs an ELF binary in /etc.  Both the
FHS and the FSSTND forbid this.s   invalid-sonamesD   The soname of the library isn't in the form lib<libname>.so.<major>.s   invalid-ldconfig-symlinksT   The symbolic link references the wrong file. It should reference
the shared library.s   no-ldconfig-symlinksL  The package should not only include the shared library itself, but
also the symbolic link which ldconfig would produce. (This is
necessary, so that the link gets removed by dpkg automatically when
the package gets removed.)  If the symlink is in the package, check
that the SONAME of the library matches the info in the shlibs
file.s   shlib-with-non-pic-codes7  The listed shared libraries contain object code that was compiled
without -fPIC. All object code in shared libraries should be
recompiled separately from the static libraries with the -fPIC option.

Another common mistake that causes this problem is linking with 
``gcc -Wl,-shared'' instead of ``gcc -shared''.s   binary-or-shlib-defines-rpaths  The binary or shared library defines the `RPATH'. Usually this is a
bad thing because it hard codes the path to search libraries and so it
makes difficult to move libraries around.  Most likely you will find a
Makefile with a line like: gcc test.o -o test -Wl,--rpath.s   statically-linked-binarys  The package installs a statically linked binary or object file.

Usually this is a bug. Otherwise, please contact
<flepied@mandrakesoft.com> about this so that this error gets included
in the exception file for rpmlint. With that, rpmlint will ignore
this bug in the future.s   executable-in-library-packagest   The package mixes up libraries and executables. Mixing up these
both types of files makes upgrades quite impossible.s%   non-versioned-file-in-library-packagesj  The package contains files in non versioned directories. This makes
impossible to have multiple major versions of the libraries installed.
One solution can be to change the directories which contain the files
to subdirs of /usr/lib/<name>-<version> or /usr/share/<name>-<version>.
Another solution can be to include a version number in the file names
themselves.s   incoherent-version-in-namesA   The package name should contain the major version of the library.s"   la-file-with-invalid-dir-references3   The .la file contains a reference to /tmp or /home.s   invalid-directory-references0   This file contains a reference to /tmp or /home.s	   no-binarysW   The package should be of the noarch architecture because it doesn't contain any binary.s   only-non-binary-in-usr-libsL   There are only non binary files in /usr/lib so they should be in /usr/share.()   s   Filters   AbstractChecks   rpms   res   commandss   strings   syss   Configs   Pkgs   stats   DEFAULT_SYSTEM_LIB_PATHSs
   BinaryInfos   compiles
   path_regexs   numeric_dir_regexs   versioned_dir_regexs   binary_regexs	   usr_shares   etcs   not_strippeds   unstrippables   shared_object_regexs   executable_regexs
   libc_regexs   ldso_soname_regexs   so_regexs   validso_regexs   sparc_regexs	   getOptions   system_lib_pathss   usr_lib_regexs	   bin_regexs   soversion_regexs   reference_regexs   usr_lib_exception_regexs   srcname_regexs   dir_bases   BinariesChecks   checks   infos
   addDetails($   s   validso_regexs   usr_lib_exception_regexs   reference_regexs	   bin_regexs   soversion_regexs   not_strippeds   dir_bases   Configs   checks   numeric_dir_regexs   rpms   binary_regexs   res   BinariesChecks   so_regexs
   BinaryInfos   stats   ldso_soname_regexs   strings   unstrippables   usr_lib_regexs   shared_object_regexs
   libc_regexs   versioned_dir_regexs   srcname_regexs   syss   commandss
   path_regexs   executable_regexs   etcs   system_lib_pathss	   usr_shares   DEFAULT_SYSTEM_LIB_PATHSs   Pkgs   sparc_regexs   AbstractCheck(    (    s#   /usr/share/rpmlint/BinariesCheck.pys   ?
   sŠ   									/	—	
