wvϘ."ddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z m Z ejeZeZeZdZgZdZdZdZGdd eZGd d eZd Zd ZGddeZdS)N)Lock)xauth) get_helptextplatform_is_osxi 皙?ceZdZdS)XStartTimeoutErrorN__name__ __module__ __qualname__/srv/buildsys-work-dir/castor/build_node/builder-2/WGSG1/unpkd_srcs/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/pyvirtualdisplay/abstractdisplay.pyr r Drr ceZdZdS) XStartErrorNr rrrrr$rrrcd tj}n,#t$rtdgcYSwxYwd}t j||}fd|D}d|D}|S)Nz/tmpz missing /tmpz.X*-lockcPg|]"}tj|#Sr)ospathjoin).0childtmpdirs r z_lock_files..1s) 9 9 9%"',,vu % % 9 9 9rcPg|]#}tj|!|$Sr)rrisfile)rps rrz_lock_files..2s+ - - -27>>!,, -! - - -r)rlistdirFileNotFoundErrorlogwarningfnmatchfilter)lspatternnamesrs @r _lock_filesr*(s F Z    N### G N2w ' 'E 9 9 9 95 9 9 9B - -R - - -B Is&AActtdt}t|r&t t t |dz}nt }|S)Nct|ddddS)NX-r)intsplit)xs rz%_search_for_display..8s/C Q 5 5c : :1 =>>r)listmapr*lenmax_MIN_DISPLAY_NR)r'displays r_search_for_displayr;6sT c>> NN O OB 2ww"os2ww{33! NrceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZedZdS)AbstractDisplayz8 Common parent for X servers (Xvfb,Xephyr,Xvnc) c||_||_||_d|_d|_d|_d|_d|_d|_||_ d|_ d|_ d|_ t|}d|v|_|jstdt"jd}|r=td|t)t+||_nt-rd|_|||r&t1jst1j||_d|_d|_dS)NFrz -displayfdz-displayfd flag is missing.PYVIRTUALDISPLAY_DISPLAYFDzPYVIRTUALDISPLAY_DISPLAYFD=%s) _extra_args_retries_programstdoutstderrold_display_var_subprocr: _is_started_manage_global_env_reset_global_env _pipe_wfd_retries_currentr_has_displayfdr#debugrenvirongetboolr0r _check_flagsr is_installed NotFoundError _use_xauth _old_xauth_xauth_filename)selfprogram use_xauthretries extra_argsmanage_global_envhelptextr?s r__init__zAbstractDisplay.__init__FsY%    #   "3!& !((*h6" 5 II3 4 4 4%'Z^^4P%Q%Q" % , II57Q R R R"&s+E'F'F"G"GD     ,&+# (###  (U/11 (%'' '##rcdSNr)rWr]s rrQzAbstractDisplay._check_flagsls rctr`)NotImplementedErrorrWs r_cmdzAbstractDisplay._cmdos!###rc(|r|jn|j}|Utd tjd=dS#t $rtdYdSwxYwtd||tjd<dS)z on: * True -> set $DISPLAY to virtual screen * False -> set $DISPLAY to original screen :param on: bool Nzunset $DISPLAYDISPLAYz$DISPLAY was already unset.zset $DISPLAY=%s)new_display_varrEr#rMrrNKeyErrorr$)rWonds r_redirect_displayz!AbstractDisplay._redirect_displayrs%' @D D,@ 9 II& ' ' ' ;Jy))) ; ; ; 9:::::: ; II' + + +$%BJy ! ! !s =$A%$A%cVtj}|j|d<|S)Nrf)rrNcopyrg)rWenvs r_envzAbstractDisplay._envs$joo-I rc|jrt|dd|_|jr|nd} |dz|_ |nr#t$rdt d|dztj d|dz }||j krtd|j d|j YnwxYw|j r| dd|_d Sd S) z5 start display :rtype: self zDisplay was started twice.Trr.zstart failed %s皙?zNo success after z retries. Last stderr: N)rGrrL_start1_has_displayfdrK_start1r#r$timesleeprArDrHrkrI)rWis rstartzAbstractDisplay.starts<   Bd$@AA A     & & ( ( ( (A ()A% LLNNN"KK 11q5999Jt$$$FADM)))k#}}}dkk;*)    " *  " "4 ( ( (%)D " " " * *s AA+C  C c2t5|r>tj|j|jgtjtjd|_n6tj|jtjtjd|_ddddS#1swxYwYdS)NF)pass_fdsrCrDshell)rCrDrz) _mutex_popen subprocessPopen_commandrJPIPErF)rW use_pass_fdss r_popenzAbstractDisplay._popens     * 0M"n-%?%? !!! !+ 0M%?%? !!!                   sA7B  BBcJtj\}|_||jz|_t d|j|dt| ||_ tj |tj |jdt|j z|_ |jr|tjdd|_dS)N command: %sTr:%srf)rpiperJrdr@r~r#rMrr0_wait_for_pipe_textr:closergrT _setup_xauthrNrOrE)rWrfds rrrz%AbstractDisplay._start1_has_displayfds giiT^ d&66  -///  &&&433C8899       $s4<'8'88 ?       "z~~i>>rct5t|_|jtvr|xjdz c_|jtvdt |jz|_t|jdddn #1swxYwY||jz|_ t d|j | ddt |jz|_|j r|tjdd|_t'j}|j}d}t'jd |sn t-jd g|t,jt,jd }|\}}|j}nE#t8$r8td t'jt<d}YndwxYw|d krntd |d}n;t'j|z t@krnt'jtB|s4td|j"d}tG||z|sd}tI|||j"fzdS)Nr.rrFrrfrqTxdpyinfo)rnrCrDrzzLxdpyinfo was not found, X start can not be checked! Please install xdpyinfo!rz)Successfully started X with display "%s".zprocess exited early. stderr:%szFailed to start process: %szGFailed to start X on display "%s" (xdpyinfo check failed, stderr:[%s]).)%_mutexr;r:_USED_DISPLAY_NR_LISTr0rgappendrdr@r~r#rMrrTrrrNrOrErtruis_aliver|r}ror communicate returncoder"r$ _X_START_WAITinfo_X_START_TIMEOUT_X_START_TIME_STEPrDrr )rW start_timerjokr_ exit_codemsgs rrszAbstractDisplay._start1s  7 7.00DL,"777 ! ,"777#(3t|+<+<#>Y[[    4+ +==??  %+L %?%?  ++--1$/ $    b =)))  (A~~DaHHHy{{Z'+;;; J) * * *W+ +X}} * KK94; G G G/CcDj)) ) A[C$SAx+?%?@@ @ A As%A;BBBAG44?H65H6cd}tj} tj|gggd\}}}|s&t|jd|jd|j||vr4tj|d}|dkrnR|| dz }tj|z d krtd |jd |j|S) NTrz program closed. command: z stderr: r. asciiiXzNo reply from program z . command:) rtselectrrrBr~rDrreaddecoder )rWrsrrfd_changed_lsrcs rrz#AbstractDisplay._wait_for_pipe_text#s Y[[  %+]C5"b#%F%F "^Q==?? !}}}dmmmT[[Bn$$GCOO::QXXg&&&y{{Z'3..((   ,rc|jstd|jr|d|rz |jn2#t$r%}t d|Yd}~nd}~wwxYw|j | |j r| |S)z4 stop display :rtype: self z stop() is called before start().Fzexception in terminate:%sN)rGrrIrkrrFkillOSErrorr#rMwait_read_stdout_stderrrT _clear_xauth)rWoserrors rstopzAbstractDisplay.stop>s  B@AA A  ! *  " "5 ) ) ) ==?? ' @ ""$$$$ @ @ @ 5w???????? @ M    $ $ & & & ?       sA"" B,B  Bc|jh|j\|_|_td|jtd|jdSdS)Nz stdout=%sz stderr=%s)rCrFrrDr#rMrcs rrz#AbstractDisplay._read_stdout_stderrVs` ; )-)B)B)D)D &T[$+ IIk4; / / / IIk4; / / / / /  rctjdd\}}||_tj|i|_tjd|jd<tjd|jd<|xtjd<tjd<tj }tj d|j d|dS) zU Set up the Xauthority file and the XAUTHORITY environment variable. zPyVirtualDisplay.z .Xauthority)prefixsuffixAUTHFILE XAUTHORITYadd.N) tempfilemkstemprVrrrUgetenvrNrgenerate_mcookiecallrg)rWhandlefilenamecookies rrzAbstractDisplay._setup_xauth]s$+&}    ( &(i &;&; #(* ,(?(? % 7##rc.||S)%used by the :keyword:`with` statement)rwrcs r __enter__zAbstractDisplay.__enter__{s  rc.|dS)rN)r)rWexc_infos r__exit__zAbstractDisplay.__exit__s rcz|jsdS|j}|||duS)NF)rFpollr)rWrcs rrzAbstractDisplay.is_alivesE} 5 ]   ! ! >  $ $ & & &Tzrc,|jr |jjSdS)zI PID (:attr:`subprocess.Popen.pid`) :rtype: int N)rFpidrcs rrzAbstractDisplay.pids# = %=$ $ % %rN)r r r__doc__r^rQrdrkrorwrrrrsrrrrrrrrpropertyrrrrr=r=AsA$$$$$$L   $$$&&&& ***@$???,OAOAOAb60000===$    (%%X%%%rr=)r%loggingrrr|rrt threadingrpyvirtualdisplayrpyvirtualdisplay.utilrr getLoggerr r#rr{r9rrrr Exceptionr rr*r;objectr=rrrrs{  """"""????????g!! tvv               )      _%_%_%_%_%f_%_%_%_%_%r