Tryag File Manager
Home
-
Turbo Force
Current Path :
/
proc
/
self
/
root
/
usr
/
share
/
createrepo
/
Upload File :
New :
File
Dir
//proc/self/root/usr/share/createrepo/dumpMetadata.pyc
mò `THc�����������@���sk��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��k�Z�d��k �Z �y �d��k �Z �Wn�e�j �o�n�Xd��k�Z�d�k �l�Z�d�k�l�Z�l�Z�d�d�g�Z�d�e�i�f�d�„��ƒ��YZ�d�d�d�„�Z�d �„��Z�d �„��Z�d�„��Z�d�d �d�„�Z�d�„��Z�d�„��Z�d�e�i�f�d�„��ƒ��YZ�d�f��d�„��ƒ��YZ�d�„��Z�d�„��Z�d�„��Z �d�„��Z!�d��S(���N(���s���error(���s���write32us���FNAMEt���GzipFilet���openc�����������B���s���t��Z�d�„��Z�RS(���Nc���������C���s³���|��i�i�d�ƒ�|��i�i�d�ƒ�|��i�d� }�d�}�|�o �t�}�n�|��i�i�t�|�ƒ�ƒ�t�|��i�t �d�ƒ�ƒ�|��i�i�d�ƒ�|��i�i�d�ƒ�|�o�|��i�i�|�d�ƒ�n�d��S(���Ns���‹s���iýÿÿÿi����s���s���ÿt����( ���t���selft���fileobjt���writet���filenamet���fnamet���flagst���FNAMEt���chrt���write32ut���long(���R���R���R���(����(����t%���/usr/share/createrepo/dumpMetadata.pyt���_write_gzip_header,���s���� (���t���__name__t ���__module__R���(����(����(����R ���R����+���s���t���rbi ���c���������C���s���t��|��|�|�ƒ�S(���N(���R����R���t���modet ���compresslevel(���R���R���R���(����(����R ���t ���_gzipOpen;���s����c���������C���sv���t��|��d�ƒ�}�t�i�|�d�d�d�ƒ}�x4�t�o,�|�i�d�ƒ�}�|�p�Pn�|�i �|�ƒ�q*�W|�i�ƒ��|�i�ƒ��d��S(���NR���t���wR���i ���i� �(���R���t���sourcet���s_fnt���bz2t���BZ2Filet���destt���destinationt���Truet���readt���dataR���t���close(���R���R���R���R���R���(����(����R ���t���bzipFile>���s������ c���������C���s<���y�t��i�|��t��i�ƒ�}�Wn�t�j �o�t�d�‚�n�X|�S(���Ns���Error opening file(���t���osR���R���t���O_RDONLYt���fdnot���OSErrort���MDError(���R���R#���(����(����R ���t���returnFDM���s ����c���������C���s��d�}�y?�t�|�ƒ�t�i�j�o�d�}�t�i�|�t�i�ƒ�}�n�|�}�Wn�t �j �o�t �d�‚�n�X|��i�t �i�t �i�Bt �i�Bƒ�y�|��i�|�ƒ�}�Wn�t �i�j �o�t �d�‚�n�Xt�|�ƒ�t �i�j�o �t �d�‚�n�|��i�d�ƒ�|�o�t�i�|�ƒ�~�n�|�S(���s>���hand back the rpm header or raise an Error if the pkg is fubari����i���s���Error opening files���Error opening packageN(���t���opened_heret���typet���packaget���typest ���StringTypeR!���R���R"���R#���R$���R%���t���tst ���setVSFlagst���rpmt���_RPMVSF_NOSIGNATURESt���RPMVSF_NOMD5t���RPMVSF_NEEDPAYLOADt���hdrFromFdnot���hdrt���errorR���(���R,���R)���R3���R'���R#���(����(����R ���t ���returnHdrT���s*����� i���i���c���������C���sú���d�}�yÙ�t�|�ƒ�t�i�j �o �|�}�n�d�}�t�|�d�|�ƒ�}�|��d�j�o�t �i �ƒ��}�n+�|��d�j�o�t�i �ƒ��}�n�t �d�|��‚�|�i�}�x(�|�o �|�i�|�ƒ�}�|�i�|�ƒ�q”�W|�o�|�i�ƒ��~�n�|�i�ƒ��SWn�t �d�|�‚�n�Xd�S( ���s‚���takes filename, hand back Checksum of it sumtype = md5 or sha filename = /path/to/file CHUNK=65536 by defaulti����i���R���t���md5t���shas/���Error Checksumming file, wrong checksum type %ss#���Error opening file for checksum: %sN(���R'���R(���t���fileR*���R+���t���foR���t���CHUNKt���sumtypeR6���t���newt���sumR7���R%���R���t���chunkt���updateR���t ���hexdigest(���R;���R8���R:���R'���R>���R=���R9���(����(����R ���t���getChecksumn���s.����� � c���������C���s`��|��d�j�o�d�Sn�t�|��t�ƒ�o�|��Sn�t�}�y�t�|��d�ƒ�}�t�}�Wn†�t�j �oz�d�d�d�d�g�}�xc�|�D]V�}�y�t�|��|�ƒ�}�Wn�t�j �o�qv�X|�i�|�ƒ�|��j�o�|�i�d�ƒ�Sqv�qv�Wn�Xd�}�t �d�d�ƒ�d �d �g�t �d�d�ƒ�}�xX�|��D]P�}�t�|�ƒ�|�j�o�q|�o!�t�|�ƒ�d �j�o�|�d�}�q|�|�}�qW|�S(���s���hands back a unicoded stringt����t���asciis���utf-8s ���iso-8859-1s���iso-8859-15s ���iso-8859-2i����i���i���i���i���i ���i���t���?N(���t���stringt���Nonet ���isinstancet���unicodet���Falset���dut���xR���t���UnicodeErrort ���encodingst���enct���encodet ���newstringt���ranget���bad_small_bytest���chart���ord(���RE���RJ���RP���RR���RS���RN���RM���RK���(����(����R ���t ���utf8String‘���s:����� �&�c���������C���s€��d�}�t�|��ƒ�t�i�j �o �|��}�n�d�}�t�|��d�ƒ�}�|�i�d�ƒ�|�i�d�ƒ�}�t �i�d�|�ƒ�\�}�|�i�d�ƒ�}�t �i�d�|�ƒ�\�}�|�d�}�|�|�} �| �d�}�|�d�j�o�d�|�}�n�d �| �|�}�|�i�|�ƒ�|�i�d�d�ƒ�|�i�d�ƒ�}�t �i�d�|�ƒ�\�} �|�i�d�ƒ�}�t �i�d�|�ƒ�\�} �| �d�}�| �|�d�}�|�|�}�|�o�|�i�ƒ��~�n�|�|�f�S(���sQ���takes an rpm file or fileobject and returns byteranges for location of the headeri����i���t���rih���i���s���>Ii���i���ip���N(���R'���R(���R8���R*���R+���R9���R���t���seekR���t���binindext���structt���unpackt���sigindext���bindatat���sigdatat���sigindexsizet���sigsizet���disttoboundaryt���hdrstartt���hdrindext���hdrdatat���hdrindexsizet���hdrsizet���hdrendR���(���R8���R^���Rf���Ra���R'���Rd���Re���R]���R[���Rc���R_���R\���R`���Rb���RX���R9���(����(����R ���t ���byterangesµ���s<����� R%���c�����������B���s���t��Z�d��d�„�Z�d�„��Z�RS(���Nc���������C���s���t��i�i�|��ƒ�|�|��_�d��S(���N(���t ���exceptionst ���Exceptiont���__init__R���t���value(���R���Rk���(����(����R ���Rj���ç���s����c���������C���s���|��i�S(���N(���R���Rk���(���R���(����(����R ���t���__str__ë���s����(���R���R���RF���Rj���Rl���(����(����(����R ���R%���æ���s���t���RpmMetaDatac�����������B���sÈ���t��Z�d��Z�h��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z �d�„��Z �d�„��Z�d �„��Z�d �„��Z �d�„��Z�d�„��Z�d �„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�RS(���s„���each rpm is one object, you pass it an rpm file it opens the file, and pulls the information out in bite-sized chunks :) c���������C���sæ��y?�t��i�t��i�i�|�|�ƒ�ƒ�}�|�d�|��_�|�d�|��_ �~�Wn(�t �j �o�} �t�d�|�|�f�‚�n�X|�|��_ �|�d�|��_�|�d�o �d�|��_�n �d�|��_�|�|��_�t�t��i�i�|�|�ƒ�ƒ�} �t�|�| �ƒ�|��_�t��i�| �d�d�ƒ�t��i�| �d�ƒ�}�|��i�|�ƒ�|��_�|�i�d�ƒ�t�|�ƒ�\�|��_�|��_�|�i�ƒ��~�~ �|�d �}�|�d �}�g��|��_"�g��|��_#�x'�|�D]�}�|��i#�i%�t&�i'�|�ƒ�ƒ�qpWx'�|�D]�}�|��i"�i%�t&�i'�|�ƒ�ƒ�qšWg��|��_(�g��|��_)�g��|��_*�|��i+�ƒ��d��S(���Ni���i���s���Error Stat'ing file %s %st���baseurlt���noepochRB���i����R���s���file-pattern-matchs���dir-pattern-match(,���R!���t���statt���patht���joint���basedirR���t���statsR���t���sizet���mtimeR$���t���eR%���t���optionst���localurlRo���t���relativepathR&���t���fdR5���R,���R3���t���lseekt���fdopenR9���t���doChecksumCachet���pkgidRW���Rg���t ���rangestartt���rangeendR���t ���fileglobst���dirglobst���dirrct���filerct���globt���appendt���ret���compilet ���filenamest���dirnamest ���ghostnamest���genFileLists(���R���R,���Rs���R���Rx���Rƒ���Rt���R‚���R†���R{���Rw���R9���(����(����R ���Rj���÷���sJ���� �� c���������C���s@���|��i�d�ƒ�d�j�p�|��i�d�ƒ�o�d�Sn�|��i�d�ƒ�Sd��S(���Nt ���sourcepackagei���t ���sourcerpmt���srct���arch(���R���t ���tagByName(���R���(����(����R ���R‘���#��s����'c���������C���s���g��}�|�d��j�o�|�Sn�t�|�ƒ�t�i�j �o�|�d�@}�|�i�|�ƒ�n@�x<�|�D]4�}�|�}�|�d��j �o�|�d�@}�n�|�i�|�ƒ�qS�W|�S(���Ni���( ���t���returnflagsR���RF���R(���R*���t���ListTypet���newflagR‡���t���flag(���R���R���R“���R–���R•���(����(����R ���t ���_correctFlags)��s���� � c���������C���sŸ���g��}�|�d��j�o�|�Sn�t�|�ƒ�t�i�j �o �|�g�}�n�xZ�|�D]R�}�|�}�|�d��j �o9�|�d�@}�|�d�j�o�|�i�d�ƒ�q—�|�i�d�ƒ�qE�qE�W|�S(���Ni@���i���i����( ���t���reqsR���RF���R(���R*���R”���R–���R•���R‡���(���R���R���R˜���R–���R•���(����(����R ���t���_checkPreReq9��s���� � c���������C���sÃ���g��}�d�}�|�d��j�o�|�i�|�ƒ�|�Sn�t�|�ƒ�t�i�j �o7�|�d��j �o�|��i �|�ƒ�}�n�d�}�|�i�|�ƒ�nE�xA�|�D]9�}�|�d��j �o�|��i �|�ƒ�}�n�d�}�|�i�|�ƒ�q‚�W|�S(���N(���NNN(���NNN(���NNN(���t ���returnversRF���t���vertuplet���versR‡���R(���R*���R”���R���t���_stringToVersiont���ver(���R���Rœ���R›���Rž���Rš���(����(����R ���t���_correctVersionK��s"���� � c���������C���së���|�i�d�ƒ�}�|�d�j�o�|�|� i�ƒ��o�|�|� }�n�d�}�|��i�}�|�i�d�ƒ�}�|�d�j�oE�|�|�d�|�!d�j�o �d��}�n�|�|�d�|�!}�|�|�d�}�n4�|�|�d�d�j�o �d��}�n�|�|�d�}�d��}�|�|�|�f�S(���Nt���:iÿÿÿÿt���-i���RB���(���t���strngt���findt���it���isdigitt���epochR���Ro���t���rfindt���jRF���t���versiont���release(���R���R¢���R¤���R¨���R¦���R©���Rª���(����(����R ���R���b��s ���� c��� ������C���sU��t��|�ƒ�}�|�d�j�o�g��Sn�h��}�y�x�|�D]�}�d�|�|�<q1�WWn�t�j �o �~�n�X|�i�ƒ��Sy�t�|�ƒ�}�|�i �ƒ��Wn�t�j �o �~�n‚�X|�d�j�p�t �‚�|�d�}�d�}�}�xM�|�|�j��o?�|�|�|�j�o �|�|�|�|�<}�|�d�7}�n�|�d�7}�qÇ�W|�|� Sg��}�x,�|�D]$�}�|�|�j�o�|�i�|�ƒ�q)q)W|�S(���sT��Return a list of the elements in s, but without duplicates. For example, unique([1,2,3,1,2,3]) is some permutation of [1,2,3], unique("abcabc") some permutation of ["a", "b", "c"], and unique(([1, 2], [2, 3], [1, 2])) some permutation of [[2, 3], [1, 2]]. For best speed, all sequence elements should be hashable. Then unique() will usually work in linear time. If not possible, the sequence elements should enjoy a total ordering, and if list(s).sort() doesn't raise TypeError it's assumed that they do enjoy a total ordering. Then unique() will usually work in O(N*log2(N)) time. If that's not possible either, the sequence elements must support equality-testing. Then unique() will usually work in quadratic time. i����i���N(���t���lent���st���nt���uRK���t ���TypeErrort���keyst���listt���tt���sortt���AssertionErrort���lastt���lastiR¤���R‡���( ���R���R¬���Rµ���R¤���R¶���R���R®���R²���RK���(����(����R ���t���_uniq}��sB����� � � � c���������C���sR���|��i�|�}�t�|�ƒ�t�i�j�o'�t�|�ƒ�d�j�o�|�d�SqN�d�Sn�|�Sd��S(���Ni����RB���(���R���R3���t���tagR���R(���R*���R”���R«���(���R���R¸���R���(����(����R ���R’���Á��s���� c���������C���s`���g��}�|��i�|�}�|�d�j�o�|�Sn�t�|�ƒ�t�i�j�o�|�i �|�ƒ�n�|�i �|�ƒ�|�S(���s8���take a tag that should be a list and make sure it is oneN(���t���lstR���R3���R¸���R���RF���R(���R*���R”���t���extendR‡���(���R���R¸���R���R¹���(����(����R ���t ���listTagByNameË��s����� c���������C���s0���|��i�d�d��j�o�|��i�Sn�|��i�d�ƒ�Sd��S(���NR¦���(���R���R3���RF���Ro���R’���(���R���(����(����R ���R¦���Ù��s����c���������C���s0��|��i�d�ƒ�}�|��i�d�ƒ�}�|��i�d�ƒ�}�t�|�|�|�ƒ�}�xê�|�D]â�\�}�}�}�|�d�j�p �|�d�j�o�|��i�i�|�ƒ�qF�n�t �i�i�|�ƒ�p�t�i�|�ƒ�t �i�|�<n�t �i�|�o�|��i�i�|�ƒ�qF�|�d�j�o�|��i�i�|�ƒ�qF�|�d�@o�|��i�i�|�ƒ�qF�n�|��i�i�|�ƒ�qF�Wd�S(���s=���produces lists of dirs and files for this header in two listsRŠ���t ���fileflagst ���filemodesRB���i@���N(���R���R»���t���filesR¼���R½���t���zipt ���filetupleR8���R���R–���RF���RŠ���R‡���Rm���t ���mode_cachet���has_keyRp���t���S_ISDIRR‹���RŒ���(���R���R¾���R½���RÀ���R–���R¼���R���R8���(����(����R ���R���ß��s(������ c���������C���sd���h��}�xW�|��i�D]L�}�|�d�j�o�q�n�x/�|��i�D]$�}�|�i�|�ƒ�o�d�|�|�<q4�q4�Wq�W|�S(���s���search for good filesi���N(���t���returnsR���RŠ���t���itemRF���R…���R†���t���match(���R���RÅ���RÄ���R†���(����(����R ���t���usefulFilesù��s����� � �c���������C���sd���h��}�xW�|��i�D]L�}�|�d�j�o�q�n�x/�|��i�D]$�}�|�i�|�ƒ�o�d�|�|�<q4�q4�Wq�W|�S(���s"���search for useful ghost file namesi���N(���RÄ���R���RŒ���RÅ���RF���R…���R†���RÆ���(���R���RÅ���RÄ���R†���(����(����R ���t���usefulGhosts��s����� � �c���������C���sj���h��}�xW�|��i�D]L�}�|�d�j�o�q�n�x/�|��i�D]$�}�|�i�|�ƒ�o�d�|�|�<q4�q4�Wq�W|�i�ƒ��S(���s���search for good dirsi���N( ���RÄ���R���R‹���RÅ���RF���R„���R†���RÆ���R°���(���R���RÅ���RÄ���R†���(����(����R ���t ���usefulDirs��s����� � �c���������C���s���g��}�|��i�t�i�}�|��i�t�i�}�|��i�|�ƒ�}�|��i �|�ƒ�}�|��i�|��i�t�i �ƒ�}�|�d�j �o�t�|�|�|�|�ƒ�}�n�|��i�|�ƒ�S(���s(���returns a list of tuples of dependenciesN(���R¹���R���R3���R.���t���RPMTAG_REQUIRENAMEt���namest���RPMTAG_REQUIREFLAGSt���tmpflagsR—���R���R™���t���prereqRŸ���t���RPMTAG_REQUIREVERSIONRž���RF���R¿���R·���(���R���Rž���RÎ���R¹���R���RË���RÍ���(����(����R ���t���depsList��s����� c���������C���s~���g��}�|��i�t�i�}�|��i�t�i�}�|��i�|�ƒ�}�|��i �|��i�t�i�ƒ�}�|�d��j �o�t�|�|�|�ƒ�}�n�|��i�|�ƒ�S(���N(���R¹���R���R3���R.���t���RPMTAG_OBSOLETENAMERË���t���RPMTAG_OBSOLETEFLAGSRÍ���R—���R���RŸ���t���RPMTAG_OBSOLETEVERSIONRž���RF���R¿���R·���(���R���Rž���R¹���R���RË���RÍ���(����(����R ���t ���obsoletesList)��s���� c���������C���s~���g��}�|��i�t�i�}�|��i�t�i�}�|��i�|�ƒ�}�|��i �|��i�t�i�ƒ�}�|�d��j �o�t�|�|�|�ƒ�}�n�|��i�|�ƒ�S(���N(���R¹���R���R3���R.���t���RPMTAG_CONFLICTNAMERË���t���RPMTAG_CONFLICTFLAGSRÍ���R—���R���RŸ���t���RPMTAG_CONFLICTVERSIONRž���RF���R¿���R·���(���R���Rž���R¹���R���RË���RÍ���(����(����R ���t ���conflictsList3��s���� c���������C���s~���g��}�|��i�t�i�}�|��i�t�i�}�|��i�|�ƒ�}�|��i �|��i�t�i�ƒ�}�|�d��j �o�t�|�|�|�ƒ�}�n�|��i�|�ƒ�S(���N(���R¹���R���R3���R.���t���RPMTAG_PROVIDENAMERË���t���RPMTAG_PROVIDEFLAGSRÍ���R—���R���RŸ���t���RPMTAG_PROVIDEVERSIONRž���RF���R¿���R·���(���R���Rž���R¹���R���RË���RÍ���(����(����R ���t���providesList=��s���� c���������C���s`���g��}�|��i�d�ƒ�}�|��i�d�ƒ�}�|��i�d�ƒ�}�t�|�ƒ�d�j�o�t�|�|�|�ƒ�}�n�|�S(���Nt ���changelognamet ���changelogtimet ���changelogtexti����(���R¹���R���R»���RË���t���timest���textsR«���R¿���(���R���Rà���Rá���R¹���RË���(����(����R ���t���changelogListsG��s����c���������C���sû��|��i�d�p�t�|��i�d�|�ƒ�Sn�g��}�t�|��i�t�i�ƒ�t �i �j �o$�|�i�d�i�|��i�t�i�ƒ�ƒ�n�t�|��i�t�i �ƒ�t �i �j �o$�|�i�d�i�|��i�t�i �ƒ�ƒ�n�t�|��i�t�i�ƒ�t �i �j �o$�|�i�d�i�|��i�t�i�ƒ�ƒ�n�t�i�d�i�|�ƒ�ƒ�i�ƒ��}�d�t�i�i�|��i�ƒ�|��i�t�i�|��i�|��i�f�}�d�|��i�d�|�f�}�t�i�i�|�ƒ�oF�|��i�t�i�|�ƒ�d�j�o)�t�|�d�ƒ�}�|�i �ƒ��}�|�i"�ƒ��n=�t�|��i�d�|�ƒ�}�t�|�d �ƒ�}�|�i#�|�ƒ�|�i"�ƒ��|�S(���sX��return a checksum for a package: - check if the checksum cache is enabled if not - return the checksum if so - check to see if it has a cache file if so, open it and return the first line's contents if not, grab the checksum and write it to a file for this pkg t���cacheR;���RB���s���%s-%s-%s-%ss���%s/%st���cachediri���RV���R���N($���R���Rx���RA���R9���R²���R(���R3���R.���t ���RPMTAG_SIGGPGR*���t���NoneTypeR‡���Rr���t ���RPMTAG_SIGPGPt���RPMTAG_HDRIDR6���R<���R@���t���keyR!���Rq���t���basenameRz���t���RPMTAG_SHA1HEADERRu���Rv���t���csumtagt���csumfilet���existsRp���R���t���csumot���readlinet���checksumR���R���(���R���R9���Rì���Rï���Rí���R²���Ré���Rñ���(����(����R ���R~���P��s,����� $ $ $50 (���R���R���t���__doc__RÁ���Rj���R‘���R—���R™���RŸ���R���R·���R’���R»���R¦���R���RÇ���RÈ���RÉ���RÐ���RÔ���RØ���RÜ���Râ���R~���(����(����(����R ���Rm���ð���s,���� , D c���������C���s¸��|�i�ƒ��}�|�i�d=�d�d=�ƒ�}�|�i�d�d�ƒ�|�i�d=�d�|�i�d�ƒ�ƒ�|�i�d=�d�|�i�ƒ��ƒ�|�i�d=�d�d=�ƒ�}�t �|�i�ƒ��ƒ�o �|�i�d�t �|�i�ƒ��ƒ�ƒ�n�|�i�d�t �|�i�d�ƒ�ƒ�ƒ�|�i�d �t �|�i�d �ƒ�ƒ�ƒ�|�i�d=�d�|�i�ƒ�}�|�i�d�|�ƒ�|�i�d�d �ƒ�xl�d�d�d�d�g�D]X�}�|�i�|�ƒ�}�t�|�ƒ�}�t�i�d�d�|�ƒ�}�|�i�d=�|�d=�ƒ�}�|�i�|�ƒ�q7W|�i�d=�d�d=�ƒ�}�|�i�d�t �|�i�ƒ�ƒ�|�i�d�t �|�i�d�ƒ�ƒ�ƒ�|�i�d=�d�d=�ƒ�}�|�i�d�t �|�i�ƒ�ƒ�|�i�d�t �|�i�d�ƒ�ƒ�ƒ�|�i�d�t �|�i�d�ƒ�ƒ�ƒ�|�i�d=�d�d=�ƒ�}�|�i�d=�j �o�|�i�d�|�i�ƒ�n�|�i�d�|�i�ƒ�|�i�|�d�d=�ƒ�}�xo�d �d!�d"�d#�d$�g�D]X�}�|�i�|�ƒ�}�t�|�ƒ�}�t�i�d�d�|�ƒ�}�|�i�|�|�d=�ƒ�}�|�i�|�ƒ�qÆW|�i�|�d%�d=�ƒ�}�|�i�d&�t �|�i�ƒ�ƒ�|�i�d'�t �|�i �ƒ�ƒ�x²|�i!�ƒ��d(�f�|�i"�ƒ��d)�f�|�i#�ƒ��d*�f�g�D]}\�}�}�t&�|�ƒ�d+�j�o^|�i�|�|�d=�ƒ�}�xF|�D]:\�}�}�\�}�}�}�|�i�|�d,�d=�ƒ�}�|�i�d�|�ƒ�|�d+�j�oð�|�d-�j�o �d.�} �n�|�d/�j�o �d0�} �n�|�d1�j�o �d2�} �n�|�d3�j�o �d4�} �n�|�d5�j�o �d6�} �n�|�i�d7�| �ƒ�t �|�ƒ�o�|�i�d�t �|�ƒ�ƒ�n�|�o�|�i�d�t �|�ƒ�ƒ�n�|�o�|�i�d �t �|�ƒ�ƒ�qqØqØWqqW|�i.�ƒ��} �t&�| �ƒ�d+�j�oˆ|�i�|�d8�d=�ƒ�}�xp| �D]d\�}�}�\�}�}�}�}�|�i�|�d,�d=�ƒ�}�|�i�d�|�ƒ�|�d+�j�oð�|�d-�j�o �d.�} �n�|�d/�j�o �d0�} �n�|�d1�j�o �d2�} �n�|�d3�j�o �d4�} �n�|�d5�j�o �d6�} �n�|�i�d7�| �ƒ�t �|�ƒ�o�|�i�d�t �|�ƒ�ƒ�n�|�o�|�i�d�t �|�ƒ�ƒ�n�|�o�|�i�d �t �|�ƒ�ƒ�q–n�|�d9�j�o�|�i�d:�t �|�ƒ�ƒ�qYqYWn�xB�|�i0�ƒ��D]4�} �|�i�d=�d�d=�ƒ�}�t�| �ƒ�} �|�i�| �ƒ�qÒWxR�|�i3�ƒ��D]D�}�|�i�d=�d�d=�ƒ�}�t�|�ƒ�}�|�i�|�ƒ�|�i�d�d;�ƒ�qWxR�|�i5�ƒ��D]D�}�|�i�d=�d�d=�ƒ�}�t�|�ƒ�}�|�i�|�ƒ�|�i�d�d<�ƒ�qlW|�S(>���ss���takes an xml doc object and a package metadata entry node, populates a package node with the md informationR)���R(���R.���t���nameR‘���R©���R¦���Rž���t���relRª���Rñ���R���t���YESt���summaryt���descriptiont���packagert���urls��� $RB���t���timeR8���t���buildt ���buildtimeRu���t ���installedt���archivet���archivesizet���locations���xml:baset���hreft���formatt���licenset���vendort���groupt ���buildhostR���s���header-ranget���startt���endt���providest ���conflictst ���obsoletesi����t���entryi���t���LTi���t���GTi���t���EQi ���t���LEi���t���GER���t���requiresi���t���pret���dirt���ghostN(6���t���nodet���nst���newChildRF���t���pkgNodet���newPropt���rpmObjR’���R‘���R©���t���strR¦���R���t���csumR;���R¸���Rk���RU���Rˆ���t���subR��t ���addContentRú���Rv���Ru���R���Ry���Rz���R��t���formatnst���hrR€���R���RÜ���RØ���RÔ���R¹���t���nodenameR«���t���rpconodeRó���R���Rw���t���vRV���t���argRÐ���RÎ���RÇ���R8���R¾���RÉ���t ���directoryRÈ���(���t���docR��R ��R��R;���R¾���R#��R¹���R¸���R8���R%��R��Ru���RÐ���R©���R���R��RÎ���R"��R��R!��R$��Rw���Ró���R��Rk���RV���R���Rú���R&��R��(����(����R ���t���generateXMLx��sä����� ��4�� � � � � � *� � � � � � " � � � c��� ������C���sÇ��|�i�d��d�d��ƒ�}�|�i�d�|�i�ƒ�|�i�d�|�i�d�ƒ�ƒ�|�i�d�|�i�ƒ��ƒ�|�i�d��d�d��ƒ�}�t �|�i�ƒ��ƒ�o �|�i�d�t �|�i�ƒ��ƒ�ƒ�n�|�i�d�t �|�i�d�ƒ�ƒ�ƒ�|�i�d�t �|�i�d �ƒ�ƒ�ƒ�x?�|�i�D]4�}�|�i�d��d �d��ƒ�}�t�|�ƒ�}�|�i�|�ƒ�qç�WxO�|�i�D]D�}�|�i�d��d �d��ƒ�}�t�|�ƒ�}�|�i�|�ƒ�|�i�d�d�ƒ�q)WxO�|�i�D]D�}�|�i�d��d �d��ƒ�}�t�|�ƒ�}�|�i�|�ƒ�|�i�d�d �ƒ�q{W|�S(���NR)���R���Ró���R‘���R©���R¦���Rž���Rô���Rª���R8���R(���R��R��(���R��R��RF���t���pkgR��R��R���R’���R‘���R©���R��R¦���RŠ���R8���R¾���RU���R��R‹���R&��RŒ���R��( ���R'��R��R��R¾���R8���R©���R��R)��R&��(����(����R ���t���fileListXMLä��s6���� � � � c��� ������C���s[��|�i�d��d�d��ƒ�}�|�i�d�|�i�ƒ�|�i�d�|�i�d�ƒ�ƒ�|�i�d�|�i�ƒ��ƒ�|�i�d��d�d��ƒ�}�t �|�i�ƒ��ƒ�o �|�i�d�t �|�i�ƒ��ƒ�ƒ�n�|�i�d�t �|�i�d�ƒ�ƒ�ƒ�|�i�d�t �|�i�d �ƒ�ƒ�ƒ�|�i�ƒ��}�xk�|�D]c�\�}�} �}�|�i�d��d �d��ƒ�}�|�i�t�|�ƒ�ƒ�|�i�d�t�|�ƒ�ƒ�|�i�d�t �| �ƒ�ƒ�qð�W|�S( ���NR)���R���Ró���R‘���R©���R¦���Rž���Rô���Rª���t ���changelogt���authort���date(���R��R��RF���R)��R��R��R���R’���R‘���R©���R��R¦���Râ���t���clogsRó���Rú���t���textt���clogR��RU���( ���R'��R��R��R.��Ró���R0��R©���R/��R)��Rú���(����(����R ���t���otherXMLþ��s"���� �c���#������C���sä��|�d�}�|�d�d�f�|�d�d�f�|�d�d�f�g�}�d�}�t�i�i�|�d �|�d �ƒ�}�|�d�oH�y�t�t �i �ƒ�}�Wn�t�j �o �d�}�n�Xt �i �|�|�d"�ƒ�} �n�x«|�D]£\�}�} �t�i�i�|�|�ƒ�}�t�|�ƒ�} �t�|�| �ƒ�}"�| �i�ƒ��t�|�|�ƒ�}�t�i�|�ƒ�d �}�h��}�h��}�|�d�o9| �d�j�o�| �i�|�|�ƒ�nC�| �d�j�o�| �i�|�|�ƒ�n"�| �d�j�o�| �i�|�|�ƒ�n�d�| �}�t�i�i�|�|�ƒ�} �d�| �}�t�i�i�|�|�ƒ�}�t�i$�| �|�ƒ�d�|�}�t�i�i�|�|�ƒ�}�t�|�|�ƒ�|�| �<t'�|�|�ƒ�t�|�|�ƒ�|�| �<t�i(�|�ƒ�t�i�|�ƒ�d �}�d�| �}�|��i,�d"�d�d"�ƒ�}�|�i.�d�|�ƒ�|�i,�d"�d�d"�ƒ�}�|�d�d"�j �o�|�i.�d�|�d�ƒ�n�|�i.�d�t�i�i�|�d�|�ƒ�ƒ�|�i,�d"�d�|�| �ƒ�}!�|!�i.�d�|�ƒ�|�i,�d"�d�t�|�ƒ�ƒ�}�|�i,�d"�d�|�| �ƒ�}�|�i.�d�|�ƒ�|�i,�d"�d�|�ƒ�}�n�|��i,�d"�d�d"�ƒ�}�|�i.�d�| �ƒ�|�i,�d"�d�d"�ƒ�}�|�d�d"�j �o�|�i.�d�|�d�ƒ�n�|�i.�d�t�i�i�|�d�|�ƒ�ƒ�|�i,�d"�d�|�ƒ�}!�|!�i.�d�|�ƒ�|�i,�d"�d�t�|�ƒ�ƒ�}�|�i,�d"�d�|"�ƒ�}�|�i.�d�|�ƒ�q´�W|�d�d"�j �ot|�d�}�t�i�|�ƒ�d �}�t�i�i5�|�ƒ�}�t7�|�d�ƒ�}�t7�t�i�i�|�d �|�d �|�ƒ�d�ƒ�}�|�i:�|�i;�ƒ��ƒ�|�i�ƒ��|�i<�d �ƒ�t�|�|�ƒ�}�|�i�ƒ��|��i,�d"�d�d"�ƒ�}�|�i.�d�d!�ƒ�|�i,�d"�d�d"�ƒ�}�|�d�d"�j �o�|�i.�d�|�d�ƒ�n�|�i.�d�t�i�i�|�d�|�ƒ�ƒ�|�i,�d"�d�|�ƒ�}!�|!�i.�d�|�ƒ�|�i,�d"�d�t�|�ƒ�ƒ�}�n�d"�S(#���sD���generate the repomd.xml file that stores the info on the other filesR;���t ���otherfilet���othert ���filelistsfilet ���filelistst���primaryfilet���primaryt ���garbageidt ���outputdirt���tempdirt���databaset���9i���s���%s.xml.gz.sqlites ���%s.sqlites���%s.bz2s���%s_dbR���R(���R���Rn���s���xml:baseR��t���finaldirRñ���t ���timestamps ���open-checksumt���database_versiont ���groupfileRV���R���i����R��N(=���t���cmdsR;���t ���workfilest���repoidR!���Rq���Rr���t���repopathR��t���sqlitecachect ���DBVERSIONt ���dbversiont���AttributeErrort���RepodataParserSqliteRF���t���rpR8���t���ftypet ���complete_pathR���t���zfoRA���t���uncsumR���R��Rp���R>��t���db_csumst���db_compressed_sumst ���getPrimaryt���getFilelistst���getOtherdatat���tmp_result_namet���tmp_result_patht ���good_namet ���resultpatht���renamet���compressed_namet���result_compressedR ���t���unlinkt���db_timestampt���db_data_typeR��R��R���R��R���Rñ���t ���db_tstampt ���unchecksumR?��t���grpfileRê���t���sfileR���R9���t���outputR���R���RW���(#���R��RA��R\��RV��RY��R8���R��RC��RT��RJ��RU��R���R]��RK��R���R;���RL��R>��RG��R`��Ra��RD��Rb��RP��RO��R?��R9���RZ��R^��RW��R_��RB��RM��Rñ���RN��(����(����R ���t���repoXML��s¨����� -� ## ) #("���R!���R.���Rh���R6���R7���R*���RY���Rˆ���Rp���R���RE��t���ImportErrort���gzipt���zlibR4���t ���zlibErrorR���R ���t���__all__R����R���R ���R&���R5���RA���RU���Rg���Ri���R%���Rm���R(��R*��R1��Rc��(���RA���Rg���R5���Rm���R.���R���RY���Rh��R%���Rˆ���R ���R6���R*��Rp���RU���R&���Re��R���R ���Rg��R*���R���Rc��R1��R(��R7���Rh���RE��R!���R����(����(����R ���RD������s@��� # $ 1 ÿ�‰ l