
    Or^hc                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Zd dlZdadad Zd Zd Zd Zd Zd Zd Zd	 Zd
 Zd ZdS )    Nc                  T   t           j                            t          j        j        ddt          j        j                             dd                    at          j        j	        rt          j        j	        a	nt          j                    a	t          j        t          d           d S )Ngitbuild_against_:_T)exist_ok)ospathjointestenvargscachebinary_reporeplacegit_dirjobsmultiprocessing	cpu_countmakedirs     V/home/osmocom-build/jenkins/workspace/ttcn3-ns-test/_testenv/testenv/podman_install.pyinitr      s     gll7<-u6aw|G_6a6a6i6ijmor6s6sttG| +| (**K$''''''r   c                 ~    |  d|  dg}|                      t          j                  }|| k    r|| d| dgz  }|S )Nz-dbgz-dbgsym)rstripstringdigits)depretdep_nodigitss      r   get_dbg_pkgsr!   %   s^    <<<C
)C ::fm,,Ls<%%%,'?'?'?@@Jr   c           
      X   t           j                            t          j        j        dd          }i }t          j                            dt          j	        |                      | D ]}t          j                            d|gt          j                  }|j                            d                              d          D ]}|                    d          r|                                                    d	d
          d         }||vrIt#          |          D ]0}t          j        ddd| d|g          }|j        dk    r|||<    n1||vrd ||<   ||         r"t'          j        | d| d||                     g }	|                                D ]\  }}
|
r|	|
gz  }	|	S )Npodmandbg_pkgs_allz$apt-cache pkgnames | grep -- -dbg > zapt-rdepends)stdoutzutf-8
z      r   grep-q^$z -> z: installing )r	   r
   r   r   r   r   cmdrunshlexquote
subprocessPIPEr%   decodesplit
startswithr   r!   
returncodeloggingdebugitems)pkgsr$   dbg_pkgspkgrdepsliner   dbg_pkgr)   r   dbgs              r   apt_get_dbg_pkgsrA   0   s   7<< 2HnMMLHKOOV5;|;T;TVVWWW M M
  5joNNL''0066t<< 	M 	MDt$$ ++--%%c1--a0C(""+C00  G &>64W*VWWD!++(/ , h&&$(HSM} MKK#KKHSMKKLLL'	M* CNN$$  S 	C5LCJr   c                    | sd S t          t          |                     } | t          |           z  } t          j        dd                    |                       t          j                            g d| z              d S )NzInstalling packages: z, )zapt-getr*   installz-yz--no-install-recommends)	listsetrA   r7   infor   r   r-   r.   )r:   s    r   apt_installrG   Y   s      D		??DT"""DL:4::;;;KOOQQQTXXYYYYYr   c           	          ddd|dddddg	}t          j        |  d	           t          j                            |d
           d S )Nr   z-P-C-czcolor.ui=alwayslogz-1z	--onelinez: showing current commitT	no_podman)r7   rF   r   r-   r.   )projectcwdr-   s      r   show_commitrP   f   sR    $c4):E4
UCLG555666KOOC4O(((((r   c                    t           j                            t          |           }t           j                            |          r)t          j        |  d           t          | |           d S d}d|  }t          j	        j
                            d          rt          j                            ddd|gddd	          }g }t          j        d
          }|j                            d          D ]U}d|v rO|                    d          d                             d          d         }|                    |          r||gz  }V|                    t(          j        j        d           |d         }t          j        |  d|            t          j                            ddddt          dddd||gd           t          | |           d S )Nz: already clonedmasterzhttps://gerrit.osmocom.org/z:latestr   z	ls-remotez--tagsT)capture_outputtextrM   z^\d+\.\d+\.\d+$r&   z
refs/tags/r(   r+   r   )keyreversez
: cloning rJ   zadvice.detachedHead=falserI   clonez--depth1z--branchrL   )r	   r
   r   r   existsr7   r8   rP   r   r   r   endswithr-   r.   recompiler%   r4   matchsort	packagingversionVersionrF   )	rN   git_dir_projectbranchurl	ls_remotetagspatternr>   tags	            r   clone_projectri   l   s   gll7G44O	w~~o&& 222333G_---F
1
1
1C|((33 
KOOUK3$GX\cgswOxx	*344$**400 	" 	"Dt##jj..q177<<Q?==%% "SEMD		i'/	>>>aLG//v//000KOO'	
       )))))r   c                     t           j                            t          d          } t           j                            | d          }t	          ddg           t          d           t           j                            |          st          j        d           t          j
                            ddg|            d	g}t          j        j                            d
          r|dgz  }t          j
                            ||            t          j
                            ddt           dgt           j                            | d                     t          j
                            ddt           dgt           j                            | d                     t          j
                            dd|dg           d S )Nzlibosmo-sigtranzexamples/sccp_demo_userzlibosmo-netif-devzlibosmocore-devzBuilding sccp_demo_user
autoreconf-firO   ./configure:asan--enable-sanitizemakez-jzlibosmo-sigtran.lasrcsccp_demo_userexamplesln-sz/usr/local/bin/sccp_demo_user)r	   r
   r   r   rG   ri   rY   r7   rF   r   r-   r.   r   r   rZ   r   )sccp_dirsccp_demo_user_pathconfigure_cmds      r   from_source_sccp_demo_userrz      s   w||G%677H',,x1JKK 	
   #$$$7>>-.. 
.///u-8<<<&<#,,W55 	3122M8444Td9&:;Xu-- 	 	
 	
 	
 	Td9&67Xz22 	 	
 	
 	

 KOOT4!46UVWWWWWr   c                     t           j                            t          d          } t           j                            | d          }t	          d           t           j                            |          st          j        d           t          j	        
                    ddg|            dg}t          j        j                            d          r|d	gz  }t          j	        
                    ||            t          j	        
                    t           j                            t          j        d
          t          t                     g|            t          j	        
                    dd|dg           d S )Nlibosmocorezutils/osmo-ns-dummyzBuilding osmo-ns-dummyrk   rl   rm   rn   ro   rp   zscripts/build_osmo_ns_dummy.shru   rv   z/usr/local/bin/osmo-ns-dummy)r	   r
   r   r   ri   rY   r7   rF   r   r-   r.   r   r   rZ   data_dirstrr   )libosmocore_dirosmo_ns_dummy_pathry   s      r   from_source_osmo_ns_dummyr      s3   gll7M::Oo7LMM-   7>>,-- 
-...u-?CCC&<#,,W55 	3122M?;;;W\\'*,LMMsSWyyY_n 	 	
 	
 	
 KOOT4!35STUUUUUr   c                    | |         d                              dd          d         }|dk    rt                      S |dk    rt                      S t          j        d| d           t          j        d	| d
|            t          j        d           t          j        d           t          j        d           d S )Nprogramr'   r(   r   zrun_sccp_demo_user.shzrun_osmo_ns_dummy.shzCan't install z! Fix this by either:z* Adding package= to [z] in z/  (if it can be installed from binary packages)z4* Editing from_source() in testenv/podman_install.py)r4   rz   r   r7   errorsysexit)cfgcfg_namesectionr   s       r   from_sourcer      s    'l9%++C33A6G))))+++((((***MA7AAABBBMC7CCCCDDDMCDDDMHIIIHQKKKKKr   c                     g }| D ]P}|dv r| |         }d|v r,|d         dk    r ||d                              d          z  }?t          | ||           Qt          |           d S )N)DEFAULT	testsuitepackagenor'   )r4   r   rG   )r   r   packagesr   section_datas        r   r   r      s    H 	0 	0...7|$$I&$..Y/55c:::HHXw////r   )r7   r   r	   packaging.versionr_   r[   r/   r   r1   r   testenv.cmdr   testenv.podmanr   r   r   r!   rA   rG   rP   ri   rz   r   r   r   r   r   r   <module>r      s/        				     				       



        
( ( ($  & & &R
Z 
Z 
Z) ) )&* &* &*R X  X  XFV V V*      r   