HEX
Server: Apache/2.4.65 (Debian)
System: Linux kubikelcreative 5.10.0-35-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64
User: www-data (33)
PHP: 8.4.13
Disabled: NONE
Upload Files
File: //usr/share/dh-python/dhpython/__pycache__/debhelper.cpython-39.pyc
a

��:`�/�@s�ddlZddlZddlmZmZddlmZmZmZm	Z	ddl
mZddlm
Z
mZmZmZe�d�Ze�dej�jZGdd	�d	�ZdS)
�N)�makedirs�chmod)�basename�exists�join�dirname)�argv)�DEPENDS_SUBSTVARS�
PKG_NAME_TPLS�RT_LOCATIONS�RT_TPLS�dhpythonz|[,\s]*
    (?P<name>[^ ]+)
    \s*
    \(?(?P<version>([>=<]{2,}|=)\s*[^\)]+)?\)?
    \s*
    (?:\[(?P<arch>[^\]]+)\])?
    c@sReZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�	DebHelperz>Reinvents the wheel / some dh functionality (Perl is ugly ;-P)�cpython3cCs||_i|_i|_d|_d}d}d}d}||_t�}t��D]\}}	||kr<|�|	�q<t	|�}t
|}
|j}|j}zt
dddd�}
Wnty�td��Yn0|
D�]�}|�d	�r�q�|��s�d}d}d}q�|��}|�r�||jvr�q�|�d
��rJ|dd���}|jdu�r|dk�s0|jdu�r:|dk�r:|j|=q�||j|d
<q�|�t|��s\|�d��rx|
|v�rrq�d}n<|�r\|�d��s�d}t�d||
�|j|=n|
|v�r\d}q�|�d��r,|dd���}|�r�|�|��r�t�d|�q�|�r||v�rq�|�r||v�rq�iigdd�|j|<q�|�d��rL|dd���|_q�|�r�|jdk�r�|�d��r�|dd�|_t|j�d��dk�r\td��q�|�r�|jdk�r�|�d��r�|j�s�|dd���|_|�d ��r\|d!d���|_q�|�r&|�d"��r&d}|d|�d#d$�d$�d%�7}q�|r�|�d&��s<d}q�|���d	�s�|d|�d%�7}q�|�d'��d�D]r}|�d(�D]`}t|�}|�r||��}|d
�r�|d
��}ndg}|D] }|d)|j�|d*i�|<�q��q|�qn|
��t�d+|jt|j����dS),NT�Fzdebian/control�r�utf-8��encodingzcannot find debian/control file�#z
architecture:�
�all�archzdepends:)� �	z+skipping package %s (missing %s in Depends)zpackage:�zskipping package: %s�any)�	substvars�autoscripts�	rtupdatesrzsource:�rzx-python3-version:��,�zDtoo many arguments provided for X-Python3-Version: min and max only.Zcpython2zxs-python-version:zx-python-version:�)zbuild-depends:zbuild-depends-indep:�:�z, 	
)rrrz, 	�|�version�namezsource=%s, binary packages=%s) �options�packagesZ
build_dependsZpython_version�impl�setr
�items�update�tupler	�packageZ
no_package�open�IOError�	Exception�
startswith�strip�lowerr�log�debugZsource_name�len�split�
ValueError�	parse_dep�	groupdict�
setdefault�close�list�keys)�selfr*r,Zsource_sectionZbinary_packageZbuild_depends_lineZinside_bdepends_fieldZskip_tplr)ZtplsZsubstvarZpkgsZ	skip_pkgs�fp�lineZinside_depends_fieldZline_lrZdep1Zdep2ZdetailsZ
architectures�rF�*/usr/share/dh-python/dhpython/debhelper.py�__init__)s�


��

�

�
 
���
�zDebHelper.__init__cCs |j|d�|g��|�dS)zdebhelper's addsubstvarrN�r+r?�append)rCr1r)�valuerFrFrG�addsubstvar�szDebHelper.addsubstvarcCs(|j|d�|i��|g��|�dS)zdebhelper's autoscriptrNrI)rCr1�when�template�argsrFrFrG�
autoscript�s
��zDebHelper.autoscriptcCs|j|d�|�dS)Nr)r+rJ)rCr1rKrFrFrG�add_rtupdate�szDebHelper.add_rtupdatecCs�|j��D�]�\}}|�d�}|s$q
|��D�]h\}}d||f}t|�r�t|ddd��}|��}Wd�q�1sv0Ynd}d}	|��D]�\}
}|D]�}ttt�dd|
�}
t|
�s�d	|
}
t|
ddd��}|��}Wd�n1s�0Y|j	j
�r|�r|�d
d�}n|�d|�}|�d|�}||vr�||	vr�|	d
|7}	q�q�|	r,|d�t
td��d�|	�7}t|ddd�}|�|�|��q,q
dS)Nrzdebian/%s.%s.debhelperrrrrz..zautoscripts/%sz#/usr/share/debhelper/autoscripts/%sz-p #PACKAGE#z	#PACKAGE#z#ARGS#�
%sz
# Automatically added by {}rz%{}
# End automatically added section
�w)r+r.�getrr2�readrr�__file__r*�compile_all�replace�formatrr�writer@)rCr1�settingsrrMZ	templates�fn�datafile�dataZnew_dataZtpl_namerO�iZfpathZtplfileZtplrDrFrFrG�save_autoscripts�sB
(
�&�
zDebHelper.save_autoscriptsc	Cs�|j��D�]�\}}|�d�}|s$q
d|}t|�rlt|ddd��}|��}Wd�qp1s`0Ynd}|��D�]
\}}|�d|�}	|	dk�r8||	d��d	�}
||	td|�|
dkr�|	|
nd�}d
d�|�d�D�}|
dk�r*||	|
d��	��r*d
|d|	�||	|
d�f}n|d|	�}ng}|D]}
|
|v�r@|�
|
��q@|rx|�rn|d	7}|d|d�|�f7}qx|�dd	�}|r
t|ddd�}|�
|�|��q
dS)Nrzdebian/%s.substvarsrrrrz%s=����
cSsg|]}|r|���qSrF)r6)�.0r_rFrFrG�
<listcomp>��z,DebHelper.save_substvars.<locals>.<listcomp>r"z%s
%sz%s=%s
z, z

rS)r+r.rTrr2rU�findr:r;r6rJrrXrZr@)rCr1r[rr\r]r^r)�values�p�erEr.�jrDrFrFrG�save_substvars�sB
(
� "

zDebHelper.save_substvarscCs�|j��D]�\}}|jjrdnd|}|�d�}|s6q
d�|t|j�}t|�sXt	|�d||f}t|�r�t
|ddd���}nd	}|D]2\}}	t|jj|||	d
�}
|
|vr�|d|
7}q�|r
t
|ddd�}|�
|�|��t|d
�q
dS)Nrz-p %srzdebian/{}/{}z%s/%s.rtupdaterrrz#! /bin/sh
set -e)�pkg_arg�dnamerOrRrSi�)r+r.r*rWrTrYrr,rrr2rUrrZr@r)rCr1r[rlrg�dr\r^rmrO�cmdrDrFrFrG�
save_rtupdate�s0
�
zDebHelper.save_rtupdatecCs|��|��|��dS)N)rkr`rp)rCrFrFrG�save
szDebHelper.saveN)r)�__name__�
__module__�__qualname__�__doc__rHrLrPrQr`rkrprqrFrFrFrGr&s
r'%r)Zlogging�re�osrr�os.pathrrrr�sysrr
r	r
rrZ	getLoggerr8�compile�VERBOSE�matchr=rrFrFrFrG�<module>s
�