
    =	f˜                        d dl mZ dZdZdZdZd dlZd dlZd dlZd dl	Z	d dl
mZmZ d dl
mZ d d	l d d
lmZmZmZmZ d d	l d dlmZ dZ	 d dlmZmZ dZedddfdez  dddfej8                  dddej:                  ej<                  ej>                  ej@                  ejB                  ejD                  ddddgZ# e	jH                  d      Z%dZ&dCdZ'd Z(d Z)d  Z* G d! d"e+      Z,e-d#k(  r	 ej]                  e       	  ej                  ej^                  d$d d%g d&      \  Z0Z1d'Z7 ejp                  d(      rd)Z7e9Z:dZ;dZ<e0D ]  \  Z=Z>e=d*v r e'        e=d+k(  r	 e'd,        e=d-k(  r	 e'd.       .e=d/k(  r e?ed01        ejl                  d        Pe=d2v re>j                         j                         Z7se=d3k(  rd)Z7{e=d4k(  rdZ<e=d5v reBZ:e=d6v reCZ:e=d7v re9Z:e=d8k(  r3ej                  ej                  d9              ejl                  d$       e=d:k(  sdZ; ej                  e7      s e'        e<sej                          ej                  j                  d;      ZJej                  ej                  d<eJz               ej                  j                  eJ      r	  ej                  eJ       ej                  eJ       e;sej                  ej                         nej                  ej                          e(        eRj                  d>d?      ZT e,eUeVeT      ZWeWj                  j                          eWj                  e:e;      \  Z[Z\e[se\reWj                          n ej                  ej                  d@             ej                          ej                  dB       yy# e$ r ej7                  d       Y iw xY w# ejd                  $ r?Z3eji                  e3jj                          e'         ejl                  d$       Y dZ3[3dZ3[3ww xY w# eM$ r ej                  d=eJz         Y ~w xY w# e_$ r eji                  dA       Y w xY w)D    )print_functionz15.1z Dependency/Version Check Utilityzhp-checkzyChecks dependency versions,permissions of HPLIP. (Run as 'python ./check.py' from the HPLIP tarball before installation.)N)PY3to_string_utf8)r   )*)utilstuiqueuessmart_install)cupsF)devicepmlTzDevice library is not avail. namezUsage: %s [OPTIONS]summary)zCompile-time check:z-c or --compileoptionF)zRun-time check:z-r or --run or --runtimer   F)zCompile and run-time checks:z-b or --both (default)r   F)zb1. For checking for the proper build environment for the HPLIP supplied tarball (.tar.gz or .run),r   noteF)z%use the --compile or --both switches.r   r   F)zc2. For checking for the proper runtime environment for a distro supplied package (.deb, .rpm, etc),r   r   F)zuse the --runtime switch.r   r   Fz	FUNC#(.*)noc                     | dk(  rt        j                  t        t               t        j                  t
        | t        t        t               t        j                  d       y )Ntextr   )	r   	log_title	__title____version__format_textUSAGE__mod__sysexit)typs    /usr/share/hplip/check.pyusager    L   s8    
f}	;/	eS)WkBHHQK    c                     t        j                  t        t               t        j                  t        j                  d             t        j                  d      D ]  } t        j                  |         t        j                  d      D ]  } t        j                  |         t        j                  d      D ]  } t        j                  |         t        j                          t        j                  d      D ]  } t        j                  |         t        j                  d      D ]  } t        j                  |         t        j                  d      D ]  } t        j                  |         t        j                  d      D ]  } t        j                  |         t        j                  d	      D ]  } t        j                  |         t        j                  d
      D ]  } t        j                  |         t        j                          t        j                  d       t        j                  d       t        j                  d       t        j                  d       t        j                          y )Nz)Note: hp-check can be run in three modes:z1. Compile-time check mode (-c or --compile): Use this mode before compiling the HPLIP supplied tarball (.tar.gz or .run) to determine if the proper dependencies are installed to successfully compile HPLIP.z2. Run-time check mode (-r or --run): Use this mode to determine if a distro supplied package (.deb, .rpm, etc) or an already built HPLIP supplied tarball has the proper dependencies installed to successfully run.z3. Both compile- and run-time check mode (-b or --both) (Default): This mode will check both of the above cases (both compile- and run-time dependencies).zCheck types:z&a. EXTERNALDEP - External DependencieszMb. GENERALDEP  - General Dependencies (required both at compile and run time)z*c. COMPILEDEP  - Compile time Dependencieszd. [All are run-time checks]z PYEXT
SCANCONF
QUEUES
PERMISSIONzStatus Types:z    OKz?    MISSING       - Missing Dependency or Permission or Plug-inzE    INCOMPAT      - Incompatible dependency-version or Plugin-version)	r   r   r   r   loginfoboldr   format_paragraph)ls    r   
show_titler(   U   s   	;/EFG%%  'w  x 	AHHQK	 %%  '~   	AHHQK	 %%  'C  D 	AHHQK	 	
%%n5 	AHHQK	%%&NO 	AHHQK	%%&uv 	AHHQK	%%&RS 	AHHQK	%%&DE 	AHHQK	%%&KL 	AHHQK	 	
!RSXY
r!   c                 <    | du s| dk7  r|dk(  st        ||      ryyy)NTr   -OKINCOMPATMISSING)check_version)Installedstsmin_verInstalled_vers      r   Status_Typer2   y   s*    t|1c>]=Ar!   c                 ^   d}| dk(  s| dk(  r1|dk(  r*t        |d      st        |d      rd}|S t        |d      sd}|S | d	k(  r|dk(  rd
}|S d}|S | dk(  s
| dk(  s| dk(  r	|dk7  rd}|S | dk(  r|dk7  rd}|S d}|S | dk(  rt        dk(  r	|dk7  rd}|S | dk(  r|dk7  rd}|S d}|S |dk7  rd| z  }|S )Nr*   pyqtpyqt4r+   z2.3z2.2z/Fax is not supported if version is lessthan 2.3z>Python Programming is not supported if version is lessthan 2.2hpaioz%'hpaio found in /etc/sane.d/dll.conf'zP'hpaio not found in /etc/sane.d/dll.conf. hpaio needs to be added in this file.'cupsextpcardexthpmudextz5'Not Found or Failed to load, Please reinstall HPLIP'r   z*'CUPS may not be installed or not running'z'CUPS Scheduler is running'libusbyesz"'libusb-1.0 needs to be installed'dbusz*'DBUS may not be installed or not running'z'%s needs to be installed')r.   IS_LIBUSB01_ENABLED)packageInst_statusinstalled_vercomments       r   get_commentrB      sF   G&Gw.$ 6=X];^K6 N5 #=%8Z2 N1 
G	$=G, N) iG( N' 
I	J!6'Z:O$MG" N! 
6	$BG N 4G N 
H	!4!=$:G N 
F	$BG N	 G N $27:GNr!   c                   \    e Zd ZeedfdZd Zd Zd Zd Z	d Z
d Zd	 Zd
 ZedfdZd Zy)DependenciesCheckqt4c                     d| _         d| _        t        |||      | _        || _        g | _        g | _        g | _        i | _        d| _	        g | _
        d| _        y )Nr   r   )
num_errors	num_warnsCoreInstallcore
ui_toolkitreq_deps_to_be_installedopt_deps_to_be_installedcmds_to_be_runcomm_error_devicesplugin_statussmart_install_devicesuser_grps_cmd)selfmodeui_moderK   s       r   __init__zDependenciesCheck.__init__   s_    gz:	$(*%')% "$%'"r!   c                    |dk(  r| j                   dk(  ry | j                  dk7  r$| j                  dk7  r| j                  dk7  r|dk(  ry |dk(  r| j                  dk(  ry |dk(  r| j                  dk(  ry |dk(  r| j                  dk(  ry |dk(  r| j                  sy | j                  j                  d	k(  rd
| j
                  v r|dv ry |d   d}nft        j                  |d         r@|d   | j                  j                  v r" | j                  j                  |d             }nd}nt        |d         }t         |d          |d   |      }t        |||      }g g }}| j                  j                         r7| j                  j                  |      \  }}|sN|dk(  rI|j                  |       n7| j                  j                  ||      \  }}|s|dk(  r|j                  |       |d   rd}	nd}	|dk(  r0|dk(  st        |d      rd| _         t         j#                  d|z         |dk(  r|dk(  rd| _        |dk(  r7t         j'                  d|dd|d   dd|	dd|d   dd|dd|dd|       y t         j'                  t         j)                  d|dd|d   dd|	dd|d   dd|dd|dd|             | xj*                  d z  c_        |D ]   }
|
s| j,                  j                  |
       " |	dk(  r&|D ]   }|s| j.                  j                  |       " y |D ]   }|s| j0                  j                  |       " y )!Ncups-ddkTqt5rE   qt3r4   r5   r6   rhelz5.)r<   zpython-develzpython-dbusz
pyqt4-dbuszlibnetsnmp-develgccmake	reportlab	policykitz
sane-develrX      r*         r   REQUIREDOPTIONALr   z1.4z6cups -ddk not required as cups version [%s] is => 1.4 r9   r+    20   601510z error: 13   )cups_ddk_not_reqrK   scanning_enabledrJ   distro_namedistro_versionVer_Func_Patsearchversion_funcget_versionr2   rB   is_auto_installer_supportget_dependency_dataappendr.   r#   debughpmudext_availr$   redrG   rN   rM   rL   )rS   sup_dist_versd	deps_infor@   StatusrA   packages_to_installcommandspackage_typecmdpkgs               r   __update_deps_infoz$DependenciesCheck.__update_deps_info   sF   
?t44<__%$//U*BtZ_G_deiodo&[T__5&[T__5'\doo6'\$"7"7YY""V+8K8K0K  W  WQ<M  1.|tyy555 D		 6 6y| D F #'	!5M\Yq\^IaLGa7&(X99..0,0II,I,I!,L)&1<#**1-,0II,I,I!M,Z)&1<#**1-Q<%L%L;]c1mMRW6X$(D!IIN}\]
?v~"&DT>HH9Q<Q]^ghi^jkxy  AH  I  JHHSWWPQR[\]R^`lmvwxmy  {H  IO  PW  X  Y  ZOOq O 4''..s34 z). BC55<<SAB / BC55<<SABr!   c                     | j                   S N)rL   rS   s    r   get_required_depsz#DependenciesCheck.get_required_deps       ,,,r!   c                     | j                   S r   )rM   r   s    r   get_optional_depsz#DependenciesCheck.get_optional_deps  r   r!   c                     | j                   S r   )rN   r   s    r   get_cmd_to_runz DependenciesCheck.get_cmd_to_run  s    """r!   c                     | j                   S r   )rO   r   s    r   get_communication_error_devsz.DependenciesCheck.get_communication_error_devs  s    &&&r!   c                     | j                   S r   )rR   r   s    r   get_user_grp_cmdz"DependenciesCheck.get_user_grp_cmd      !!!r!   c                     | j                   S r   )rP   r   s    r   get_plugin_statusz#DependenciesCheck.get_plugin_status  r   r!   c                     | j                   S r   )rQ   r   s    r   get_smart_install_devicesz+DependenciesCheck.get_smart_install_devices   s    )))r!   Fc                 (   d| _         d| _        t        j                  dd      | _        t
        j                         }|r#t
        j                  t
        j                         t        j                  ddd      }| j                  j                  d      }| j                  j                  }| j                  j                  |vrt        |      r|t        |      dz
     }t
        j                  t
        j                  | j                  j                  d| j                  j                  d	| j                  j                  d|d
             t!        j"                  d       t%        j&                  d      \  }}t%        j&                  d      \  }}	t%        j&                  d      \  }}
t
        j)                  d|d|	d|
d| j                  j                  d| j                  j                  
       t
        j)                  dt%        j*                         z         t!        j"                  d       t        j                  dd      }|rt        j                  dd      }t
        j)                  d|z         t
        j)                  d|z         | j                  j-                         rEt
        j)                  d| j                  j                  d| j                  j                  d       nDt
        j                  d| j                  j                  d| j                  j                  d       t
        j)                          t
        j)                  t
        j                  d             	 t/        d d!      j1                         }t
        j)                  |       t
        j)                          t
        j)                  t
        j                  d#             	 t/        t<        j>                  jA                  d$      d!      j1                         }t
        j)                  |       t
        j)                          t
        j)                  t
        j                  d&             	 t/        t<        j>                  jA                  d'      d!      j1                         }t
        j)                  |       t%        jD                  t        j                  dd)d*            | _#        t
        j)                  d+d,z         | j                  jH                  jK                  | j                  jL                         |tN        k(  s	|tP        k(  rtR        tT        tV        tX        tZ        d-}|D ]  }t!        j"                  |       | j                  jH                  D ]  }| j                  jH                  |   d.   ||   k(  s&t]        | j                  jH                  |   d   D cg c]  }| j                  j^                  |    c}      sq| ja                  ||| j                  jH                  |            | jF                  rt!        j"                  d/       t%        jb                  d0      rbt%        j&                  d1      \  }}|d2k7  rt
        j7                  d3       n/d4|v rt
        j)                  d5       nt
        j)                  |       td        rtf        jh                  rt!        j"                  d6       tk        jl                  d7g      }|rct!        jn                         }d8|_        tq        |js                               D ]  \  }}|ju                  ||d2   f        |jw                          nt
        j)                  d9       t!        j"                  d:       ty        jz                  d;tx        j|                        }t%        j&                  d<      \  }}t
        j)                          g }d }|j                         D ]I  }	 |j                  |      }|j                  d      }|j                  d=      }|j                  ||f       K t
        j                  |       |rp|D ]i  }|\  }}|j                  d>      s|j                  d?      r,	 tk        j                  |      \	  }} }!}"}#}$}%}&}'t
        j)                  t
        j                  |             t
        j)                  t
        j                  dt        |      z               dA}|dBk(  rdC}n|dDk(  rdE}t
        j)                  dF|z         t
        j)                  dG|z         t<        j>                  j                  dH|dIz         }(t<        j>                  j                  |(      r|t
        j)                  dJ|(z         ty        jz                  dKtx        j                        })	 t        t/        |(dL      j1                               }	 |)j                  |      j                  d      }*t
        j)                  dO|*z         t%        j&                  dP|z        \  }}t
        j)                  dQ|j                  dRdM      z         |dBk(  r4|*r2dS|*vr.| xj:                  dz  c_        t
        j7                  dT|z         ng|dDk(  r4|*r2dS|*v r.| xj:                  dz  c_        t
        j7                  dU|z         n.|dVvr*t
        j                  dW       | xjB                  dz  c_!        td        r| rd }	 	 tk        j                  |d d d dX      }|j                  j                  dZt              }+|+t        t        fv r@|s&d2d[lSmT}, |,j                         }-|-j                         }|,j                  k(  rFt        | _X        |+|,j                  k(  rt
        j)                  d\       nt
        j)                  d]       n||,j                  k(  rjt        | _X        |+t        k(  r+| xj:                  dz  c_        t
        j7                  d^       nu| xjB                  dz  c_!        t
        j                  d_       nJ||,j                  k(  r;| xjB                  dz  c_!        |,j                  | _X        t
        j                  d`       |!dav r	 |j/                          |j                         }.t
        j                  |.       |.s:t
        j7                  db       || j                  |<   | xj:                  dz  c_        nt
        j)                  dc       ny|!ddk(  rt	 |j                  t        j                        \  }/}..s:t
        j7                  db       || j                  |<   | xj:                  dz  c_        nt
        j)                  dc       ||j                          	 t
        j)                          l nt
        j                  de       t!        j"                  df       | j                  rUt%        jb                  dg      }0|0r=t<        j>                  j                  |0dg      }0t%        j&                  dh|0z        \  }}|rty        jz                  ditx        j|                        }1t
        j                  |       	 t%        j                  dj      }2|j                         D ]  }3dX}4|1j                  |3      }||j                         \  }!}5}6}7}82j                  |!|5      \  }9}:|9|2j                  k(  r4t        |:      }:d }	 tk        j                  |:d d d dX      }|j                  st
        j                  dl       t        j                         };d }|;D ]  }|j                  |:k(  s|j                  } n t<        j>                  j                  dmdndod7|!|5      }<t<        j>                  j                  |<      s$t<        j>                  j                  dmdpdod7|!|5      }<t<        j>                  j                  |<      s`t=        j                  |<      \
  }=}>}?}@}A}B}C}D}E}Ft%        jb                  dqdX      }G|Grt%        j&                  Gd|<      \  }}|j                  dr      }HdM}I|HD ]_  }Jdq|JvsdMJk7  sdsJvsty        jz                  dt      }K|Kj                  J      s:Idz   Kj                  J      j                  d      z   }Ia t
        j)                  dudvd|dwddxdvdddydddyddzdydd{|<d|Id}       dt
        j)                  dudvd|dwddxdvdddydddyddzdydd{|<d~|=dz  d}        t        j                         | _o        t        | j                        rt!        j"                  d       | xj:                  dz  c_        | j                  D ]"  }t
        j7                  |dwdddddd       $ n*t
        j7                  d       | xj:                  dz  c_        |rt
        j                  |       | j:                  | jB                  fS # t2        t4        f$ rB}t
        j7                  d"|j8                  z         | xj:                  dz  c_        Y d }~d }~ww xY w# t2        t4        f$ r-}t
        j)                  d%|j8                  z         Y d }~d }~ww xY w# t2        t4        f$ rB}t
        j                  d(|j8                  z         | xjB                  dz  c_!        Y d }~ld }~ww xY wc c}w # t        $ r Y ;w xY w# t        $ r d@\	  }} }!}"}#}$}%}&}'Y 
w xY w# t        $ r dM}*Y 	Vw xY w# t2        $ r t
        j                  dN|(z         dM}*Y 	w xY w# t        $ r- t
        j7                  dY       Y |T|j                          fw xY w# t        $ r,}t
        j7                  |j                         dM}.Y d }~"d }~ww xY w# t        $ r Y w xY w# ||j                          w w xY w# t        $ r. t
        j7                  dk       | xj:                  dz  c_        Y w xY w# t        $ r Y w xY w)NF	configure
ui-toolkitzlibusb01-buildr   versions_listrl   r*   z! version is not supported. Using z/ versions dependencies to verify and install...zSYSTEM INFOzuname -r -v -ozuname -nz	 Kernel: z Host: z Proc: z Distribution: re   z Bitness: %s bit
zHPLIP CONFIGURATIONhplipversiondirshomezHPLIP-Version: HPLIP %szHPLIP-Home: %sz7HPLIP-Installation: Auto installation is supported for z	 distro  z	 version z;HPLIP-Installation: Auto installation is not supported for z.Current contents of '/etc/hp/hplip.conf' file:z/etc/hp/hplip.confrz4Could not access file: %s. Check HPLIP installation.z3Current contents of '/var/lib/hp/hplip.state' file:z/var/lib/hp/hplip.statez4Plugins are not installed. Could not access file: %sz/Current contents of '~/.hplip/hplip.conf' file:z~/.hplip/hplip.confzCould not access file: %szscanner-build0z' %-20s %-20s %-10s %-10s %-10s %-10s %s)z<Package-name>z <Package-Desc>z<Required/Optional>z<Min-Version>z<Installed-Version>z<Status>z	<Comment>)zExternal DependencieszGeneral Dependencies
COMPILEDEPzPython ExtentionszScan Configuration   zDISCOVERED SCANNER DEVICES	scanimagezscanimage -Lr   z#Failed to get Scanners information.zNo scanners were identifiedzNo Scanner found.zDISCOVERED USB DEVICESusb)z
Device URIModelzNo devices found.zINSTALLED CUPS PRINTER QUEUESz(\S*): (.*)z	lpstat -vrg   z
cups-pdf:/zipp://)	r   Fr   r   r   r   r   r   rl   UnknownhpfaxFaxhpPrinterzType: %szDevice URI: %sz/etc/cups/ppdz.ppdzPPD: %sz\*NickName:\s*\"(.*)"rbr   zFailed to read %s ppd filezPPD Description: %szlpstat -p%szPrinter status: %s
zHP FaxzNIncorrect PPD file for fax queue '%s'. Fax queues must use 'HP-Fax-hplip.ppd'.zXIncorrect PPD file for a print queue '%s'. Print queues must not use 'HP-Fax-hplip.ppd'.)r   r   z`Printer is not HPLIP installed. Printers must use the hp: or hpfax: CUPS backend for HP-Devices.TzDevice initialization failed.plugin)pluginhandlerz"Required plug-in status: Installedz"Optional plug-in status: Installedz&Required plug-in status: Not installedz&Optional plug-in status: Not installedz plug-in status: Version mismatch)parr   zCommunication status: FailedzCommunication status: GoodnetzNo queues found.
PERMISSIONlsusbz
%s -d03f0:zd^Bus\s([0-9a-fA-F]{3,3})\sDevice\s([0-9a-fA-F]{3,3}):\sID\s([0-9a-fA-F]{4,4}):([0-9a-fA-F]{4,4})(.*)r9   zfNOT FOUND OR FAILED TO LOAD! Please reinstall HPLIP and check for the proper installation of hpmudext.z     Device URI: (Makeuri FAILED)/devbusprocgetfaclz
filez.*:(.*)USBri   30Required8r+   zNode:'z' Perm:''z' Mode:'i  z)'CD-ROM'/'Smart Install' Detected DevicesCD_ROM_Enabledrf   zNeeds to disable Smart InstallzHPLIP not found.)prm   ry   sys_confgetrK   r#   	get_where	set_whereLOG_TO_FILErJ   get_distro_datarp   lenwarnr%   ro   r   headerr   runr$   
getBitnessru   openreadIOErrorOSErrorerrorstrerrorrG   ospath
expanduserrH   to_boolrn   dependenciesupdatehplip_dependenciesDEPENDENCY_RUN_AND_COMPILE_TIMEDEPENDENCY_RUN_TIMEEXTERNALDEP
GENERALDEPr   PYEXTSCANCONFanyselected_options$_DependenciesCheck__update_deps_infowhichdevice_availprop	usb_buildr   probeDevices	Formatterlistitemsaddoutputrecompile
IGNORECASE
splitlinesrr   grouprw   AttributeErrorrx   
startswithparseDeviceURIErrorjoinexists	MULTILINEr   replaceDeviceclosemqPLUGIN_NONEPLUGIN_REQUIREDPLUGIN_OPTIONAL	installerr   PluginHandle	getStatusPLUGIN_INSTALLEDrP   PLUGIN_NOT_INSTALLEDPLUGIN_VERSION_MISMATCHgetDeviceIDmsgrO   getPMLr   OID_DEVICE_ID
import_extImportErrorgroupsmake_usb_uri
HPMUD_R_OK	supportedr   getPrinters
device_urir   statsplitr
    get_smartinstall_enabled_devicesrQ   )LrS   	time_flagis_quiet_modeorg_log_locationr=   vrssupported_distro_vrsStsKernel_info	Host_info	Proc_infovr   r   edep_dict	dep_checkdepxstatusdevicesfr|   dd
lpstat_patcups_printers
plugin_stspmatchprinter_namer  back_endis_hpr   modelserialdev_filehostzcportppdnickname_patdescr   r   	pluginObjdeviceid
error_coder   	lsusb_patr9   ookr   vidpidmfgresult_code	deviceuriprintersdevnodest_modest_inost_devst_nlinkst_uidst_gidst_sizest_atimest_mtimest_ctimer   getfacl_out_listoutgpatsL                                                                               r   validatezDependenciesCheck.validate$  s(    %#",,{<@==?MM#//*&ll;8H$OYY&&7"ii6699##3.3s8"%c#hqj/ HHSXXyy,,dii.F.F		H]H]_su v w 	

=!))$45[		*-Y		"23Y9Ytyy/D/DdiiF^F^` 	a%e&6&6&889

()LL),<</DHH.12HH%t+,yy224koktkt  lA  lA  CG  CL  CL  C[  C[  \  ]osoxox  pE  pE  GK  GP  GP  G_  G_  `  aHHJHHSXXNOP!2C8==?
  HHJHHSXXSTU!bgg001JKSQVVX  HHJHHSXXOPQ!bgg001FGMRRT
  $)MM(,,{O]`2a$bD!HH>  @}  }  ~II""))$))*F*FG;;yL_?_6A[eu  W\  t|  ~!) 9IJJy)#yy55 99911#6q9Xi=PPUX  BF  BK  BK  BX  BX  Y\  B]  ^_  B`  Za|}Z^ZcZcZtZtuvZw  Za  Vb 334H# II2237999T $$

78;;{+%*YY~%>NFF{		"GH6&@!45( >>JJ78$115':GMMO#:%)'--/%: .EArEE1be*-. 
 !45 

:;ZZ(:BMMJ
!&;!7
 "!
**, A * 1 1! 4',{{1~%*[[^
%,,lJ-GH 		-( * L#340j%00>&11(;$E & 5 5j A ZHeS%4QSUY ,!78#c,.?*?!@A%#w. %A%- )Aa0 !1J!>? ggll?L6<QR77>>#.HHY_5+-::6RTVT`T`+aL	.$24T?3G3G3I$J
!.+7+>+>q+A+G+G+JD  HH%:T%AB-2YY}|7S-TNFFHH%9FNN4QS<T%TU'72tHPTDT $1 4 #		*z  ~J  +J  !K!)T!1dx4?O $1 4 #		  +E  HT  +T  !U!)!@ #  *L  !M $! 3'E $AD.!-(.jtTSW(XA
 *+(K)H#)o-O#O+5(K4A4N4N4P	5>5H5H5J
'1]5S5S'S=M(:+1]5R5R+R,/HH5Y,Z,/HH5Y,Z)3}7Y7Y)Y=Q(:+1_+D,0OOq,@O,/II6^,_,0NNQ,>N,/HH5],^)3}7\7\)\(,!(;=J=b=b(:(+1S(T $'.#8%<()
 45==?(+		((; ,4(+		2P(QPZ(?(?(M(,1(<(+1M(N%(E\%-?@xxHYHY?Z(<
H
 ,4(+		2P(QPZ(?(?(M(,1(<(+1M(N $%=$%GGI
YL#\ HH/0JJ|$ ""G,GGLL8E%*YY|e/C%DNFF$&JJ  0[  ]_  ]j  ]j  %k			&)1','7'7
'CH
 "(!2!2!4 5vA!%B$-$4$4Q$7E$0:?,,. 7S#sC9A9N9NsTW9X 6Y#.(2E2E#E0>y0II(,A%1,2MM)D$PTVZ,[ ,-;;(0$'II.P$Q$,+/+;+;+=-1)1 !.A'(||y'@56VV(-!.
 +-'',,sE5%QTVY*Z')ww~~g'>.0ggll3uVY[^._G#%77>>'#: QSPWPWX_P`%MGVVXvv'.(H.3kk)D.IG'.9>gW^C_9`;A<<;O(8-/1A )[A/8/AbAgRX`aRa68jj6O36::a=:=s(CJJqMDWDWXYDZ:ZC	)[
 ),X]_kmwy|  B  DH  ah  il  Jm  2n  )o(+X]_kmwx{|  AE  ^e  fm  ns  fs  Gt  2u  )vk5vV *7)W)W)YD&4--.

FG1$33 iAII4DFfghi II()OOq OMM*+..W W% %		PSTS]S]]^1$% W% ^ORSR\R\\]]^ W% $4qzzAB!#$ ZaB *    % E D ZHeS%4QSUYEN (6 !.+-D!. $+ * #)Ec)I J')*> (- !-$'II.M$N$,| $%=$%GGIC!-D ,1 %6(+		!%%(835%6$ ,1 %-(,%- $%=$%GGI $16  + 1II  'O  P OOq0OO1& ,1 %1(0%1s  6AI "7AJ +7AK  AL+AAL0AM #AM.4 AMAN6E3AP*AO:A<AP7"AP	AAPAP1 #AQ+IAJI7AJJAJJAKJ'"AKKAKKAL(K&7AL#L#AL(L0	AL=L<AL=M AMMAMMAM+M*AM+M.#ANNANNAON6APOAOOAPO	APO!APO;APPAPPAPP		APPAPPAPPAPPAP.P13AQ(Q'AQ(Q+	AQ8Q7AQ8c                 j   t        j                  d       t        j                  t        j	                  d             t        j                  t        j	                  dt        d      z               t        | j                        dk(  rt        j                  d       nK| j                  D ]<  }|dk(  rt        j                  d|d|d	       %t        j                  d
|z         > t        j                  d       t        j                  t        j	                  d             t        j                  t        j	                  dt        d      z               t        | j                        dk(  rt        j                  d       n)| j                  D ]  }t        j                  d
|z          | j                  t        k(  s| j                  t        k(  rt        j                  d       t        j                  t        j	                  d             t        j                  t        j	                  dt        d      z               t        j                  d       | j                  rt        j                  d       t        j                  t        j	                  d             t        j                  t        j	                  dt        d      z               | j                  D ]  }t        j                  d|z          t        j                         \  }}t        j                  t        j	                  d|z               t        j                  d       t        j                  d| j                  z         t        j                  d| j                   z         t        j                          y )NSUMMARYzMissing Required Dependenciesr*   r   Noner   r   z' package is missing or 'z' service is not running.z%'%s' package is missing/incompatible r   zMissing Optional DependencieszNone
zPlug-in StatuszPlug-ins need to be installedz$SMART INSTALL/CD_ROM ENABLED DEVICESz%szSmart Install is enabled for these devices. Please disable Smart Install to enable device functionalities.

Refer link '%s' to disable Smart Install.
zTotal Errors: %dzTotal Warnings: %d)r   r   r#   r$   r%   r   rL   r   rM   rP   r  r  rQ   r
   get_SmartInstall_tool_inforG   rH   )rS   r   r   url	tool_names        r   display_summaryz!DependenciesCheck.display_summary  s   

99:;#c"ABBCDt,,-2HHV'+'D'D [#&&0IIYl  nA  B  CIIEFYYZ	[ 	9:;#c"ABBCDt,,-2HHX'+'D'D W#		ABUUVW !559K9KOf9fHHRLHHSXX./0HHSXXc#&6"7789II56 %%HHRLHHSXXDEFHHSXXc#&L"MMNO11 $		$s(#$*EEGNCHHSXX  z  |  @  A  B#doo56%67
r!   N)__name__
__module____qualname__
MODE_CHECKINTERACTIVE_MODErV   r   r   r   r   r   r   r   r   r   rQ  rX   r!   r   rD   rD      sO    &0@U  $@BF--#'""* !@PU s/l5r!   rD   __main__rl   z
hl:gtcrbsi)
helpz	help-restzhelp-manz	help-desczlogging=r   runtimer   bothfixr$   HPLIP_DEBUGrx   )z-hz--helpz--help-restrestz
--help-manmanz--help-descre   )end)z-lz	--loggingz-gz-t)z-cz	--compile)z-rz	--runtimez--run)z-bz--bothz--fixzI

Note:- 'hp-check --fix' is deprecated. Please run 'hp-doctor' command

z-sz./hp-check.logzSaving output in log file: %szFailed to remove %s filer   r   zNo errors or warnings.z	User exitzDone.)r   )`
__future__r   r   r   r   __doc__r   r   getoptr   base.sixextr   r   base.gbaser   r   r	   r
   installer.core_installprntr   r   r   r   r  r#   rx   USAGE_OPTIONSUSAGE_LOGGING1USAGE_LOGGING2USAGE_LOGGING3USAGE_LOGGING_PLAIN
USAGE_HELPUSAGE_NOTESr   r   rq   r=   r    r(   r2   rB   objectrD   rY  
set_moduleargvoptsargsGetoptErrorr  r   r  r   	log_levelgetenvr   r  r  fmtr:  aprintlowerstripDEPENDENCY_COMPILE_TIMEr   r$   r%   	set_levelno_formattingr   abspathlog_filer   remover   set_logfiler   LOG_TO_CONSOLE_AND_FILEr   r   r   rK   r\  r]  r  rJ   initrQ  rG   rH   rX  greenKeyboardInterruptr^  r!   r   <module>r     sG  , &.	
 J  	  	 + &  2 2 $  
 L 2vt	$
'
)2y$	?				D	I	T			u33U5I5I		"	"						 
C	E 
D	9	
" rzz/* !H Le	 e	X zOw	&sxx|\  Di  jJD$ 	299]#I3	 	%DAq$$m#fl"em#g3'))GGIOO-	d#	d))3	22/	&&;	g"qrsd $5	%8 }}Y'G77??#349HDEF77>>(#		(#
 	!MM#556MM#//*\\+l;
 ,<ZH #Y F
I!HHSYY789
 HHJHHWg Q  .II,-.\ !! 	IIaeeGCHHQKK	h  3H<=*  		+s{   N& ,P4 >&O $C3P4 BP4  P 2CP4 &O ?O P4PP4 PP4 P1-P4 0P11P4 4QQ