;ò r 8?c@s¶ dZdZdZdZdZdZdZdkZdkZdk Z dk Z dk Z dk Z dk Z dkZydkZdkZWnej oeZZnXy'dkZeiejo eZnWnej o eZnXeoeedƒ oeie_neoeed ƒ oeie_neoeed ƒ oeie_neoeed ƒ oeie_neoeed ƒ oeie_ny eeWnej od ZdZnXdZdZedZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/d Z0d!Z1e&e'e(e)e,e-e.e/e0e1e*e+f Z2e&e'e.e1fZ3d"Z4d#Z5d$Z6d%Z7d&Z8d'Z9d(Z:d)Z;dZ<d*Z=d+Z>d,Z?d-Z@d.ZAd/ZBd0ZCd1ZDd ZEd2„ZFd3„ZGed4„ZHe4d5e5d6e6d7e7d8e8d9e9d:f e=d;fe>d<fe?d=e:d!e?e:Bd>fe@d;feAd<feBd=e;d!eBe;Bd>feCd;feDd<feEd=e<d?eEe<Bd@ff ZIdA„ZJeiKdBjo dC„ZLn eiMiLZLdDeNfdE„ƒYZOdFeNfdG„ƒYZPdHeNfdI„ƒYZQdJeNfdK„ƒYZReOePeQeRfZSed;edddL„ZTd;edM„ZUd;edNdO„ZVdPedNdQ„ZWd;edNdR„ZXdS„ZYdTfdU„ƒYZZdVfdW„ƒYZ[dXfdY„ƒYZ\dZfd[„ƒYZ]d\fd]„ƒYZ^d^fd_„ƒYZ_d`e_fda„ƒYZ`dbe_fdc„ƒYZaddebfde„ƒYZcdffdg„ƒYZddkeZedZfd/Zgdhfdi„ƒYZheidjjoÜdkeijdZkdklZldkmZmy)elileijd dldmfƒ\ZnZoWn4elipj o%ZqHdnGeqGHekGHeirdƒnXeZseZteZudoZvdZweZxx4enD],\ZyZzeydpjo d5Ztneydqjo d<Ztneydrjo dPZtneydsjo d;Ztneydtjo ezZsneydujo ezZuneydvjo dwZvneydxjo dyZvneydzjo d1Zwneyd{jo dZwneyd|jo eZxneyd}joekGHeirdƒq„q„WetejoekGHeirdƒnd~etevfZtes p esd6jo†etdd<joekGHeirdƒndZwy dk{Z{e{i|d ei}ƒWnej onXeTdd~etevfei~ƒZn<etdd5joeTesd;etd ƒZneTesetƒZewe_wexe_xetdd;jo<euejo doZunxªeD]Z€eie€euƒqþWn‰etdd5joeibewƒngxceoD][Z‚emime‚ƒZƒxCeƒD];Z„yei…e„euƒWqa eNj oZqdnGeqGHqa Xqa WqE Wei†ƒndS(€s,Read from and write to tar format archives. s$Revision: 1.1 $s0.6s!Lars Gustäbel (lars@gustaebel.de)s$Date: 2003/08/11 15:28:18 $s5$Id: tarfile.py,v 1.1 2003/08/11 15:28:18 riaan Exp $sŽNiels Gustäbel for his invaluable support, Richard Townsend for endless and patient testing, Gustavo Niemeyer for his support and his patches.Nsmknodsmajorsminorsmakedevslchowniisiisustars00idi›lÿÿs0s1s2s3s4s5s6s7sLsKsSi i€i`i@i iiiii€i@i iiiicCs|itdƒdSdS(s@Convert a null-terminated string buffer to a python string. iiN(ssssplitsNUL(ss((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysnts§scCsXd}x"|d D]}|t|ƒ7}qWx"|dD]}|t|ƒ7}q6W|SdS(sÖCalculate the checksum for a member's header. It's a simple addition of all bytes, treating the chksum field as if filled with spaces. buf is a 512 byte long string buffer which holds the header. ii”iœN(schksbufscsord(sbufscschk((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys calc_chksum¬s  cCs|djodSn|tjoti||ƒdSndd}t||ƒ\}}xPt |ƒD]B}|i |ƒ}t|ƒ|jo td‚n|i|ƒqfW|djoN|i |ƒ}t|ƒ|jotd|t|ƒ‚n|i|ƒndSdS(sjCopy length bytes from fileobj src to fileobj dst. If length is None, copy the entire content. iNiisend of file reachedsend of file reached (%d)(slengthsNonesshutils copyfileobjssrcsdstsBUFSIZEsdivmodsblockss remaindersrangesbsreadsbufslensIOErrorswrite(ssrcsdstslengthsBUFSIZEsblockssbufsbs remainder((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys copyfileobj·s(      sls-sbsdscspsrswsxsssTstcCsˆd}xwtD]o}xfto^||d@|djo||d7}n/t|ƒdjo|d}qn |d7}PqWq W|SdS(scConvert a file's mode to a string of the form -rwxrwxrwx. Used by TarFile.list() siiis-N(sssfilemode_tablestsTruesmodeslen(smodessst((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysfilemodeás   s/cCstii|ƒitidƒS(Ns/(sosspathsnormpathsreplacessep(spath((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysôssTarErrorcBstZdZRS(s$General exception for extract errors(s__name__s __module__s__doc__(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysTarErrorøs s ReadErrorcBstZdZRS(s$Exception for unreadble tar archives(s__name__s __module__s__doc__(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys ReadErrorûs sCompressionErrorcBstZdZRS(s-Exception for unavailable compression methods(s__name__s __module__s__doc__(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysCompressionErrorþs s StreamErrorcBstZdZRS(s,Exception for misuse of stream-like TarFiles(s__name__s __module__s__doc__(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys StreamErrors c Csó| o| o td‚nd|jox|idƒ\}} |pd}| pd} d| tƒjotd| ƒ}nt d| ‚||||ƒSnEd|jo~|idƒ\}} |pd}| pd} |djo td ‚nt ||t ||| ||ƒƒ}t|_|Snº|djo‹d „}t|tƒiƒƒ}t||ƒ}xK|D]C} td| ƒ}y||d|ƒSWqqtj o qqqqXqqWtd ‚n"|d jot|||ƒSntd ‚dS(sÎOpen a tar archive for reading, writing or appending. Return an appropriate TarFile class. mode: 'r' open for reading with transparent compression 'r:' open for reading exclusively uncompressed 'r:gz' open for reading with gzip compression 'a' open for appending 'w' or 'w:' open for writing without compression 'w:gz' open for writing with gzip compression 'r|' open an uncompressed stream of tar blocks for reading 'r|gz' open a gzip compressed stream of tar blocks 'w|' open an uncompressed stream for writing 'w|gz' open a gzip compressed stream for writing snothing to opens:srstars%sopensunknown compression type %rs|srwsmode must be 'r' or 'w'cCs|ddjo|d S(Niüÿÿÿsopen(sf(sf((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys6ss%file could not be opened successfullysawsundiscernible modeN(snamesfileobjs ValueErrorsmodessplitsfilemodescomptypesglobalssevalsfuncsCompressionErrorsTarFiles_StreamsbufsizestsFalses _extfileobjsfindcompsfilterskeyss comptypessmapserrors ReadErrorstaropen( snamesmodesfileobjsbufsizesfindcompstsfilemodesfuncs comptypesscomptype((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysopen sH                 cCsAt|ƒdjp |djo td‚nt|||ƒSdS(s?Open uncompressed tar archive name for reading or writing. israwsmode must be 'r', 'a' or 'w'N(slensmodes ValueErrorsTarFilesnamesfileobj(snamesmodesfileobj((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pystaropenFs  i c Csòt|ƒdjp |djo td‚ny dk} Wntj otd‚nXtii|ƒ\}} tii |ƒ}| djo d} n| djo d } n|| }t}|tjov|d joOtiti|d ƒiƒƒ}t|d | i|d ||ƒƒ}d }nti||dƒ}n|d jo |}ny,t||| i||d||ƒƒ}Wntj otd‚nX|o4x1|iƒD]}|i||i|ƒƒqºWnt |_!|SdS(scOpen gzip compressed tar archive name for reading or writing. Appending is not allowed. israwsmode must be 'r', 'a' or 'w'Nsgzip module is not availables.tgzs.tars.gzssasrbsrswsbsnot a gzip file("slensmodes ValueErrorsgzips ImportErrorsCompressionErrorsosspathssplitextsnamespresextsbasenamestarnamesNonestarsrcsfileobjs cStringIOsStringIOs __builtin__sfilesreadstaropensGzipFiles compresslevelstsIOErrors ReadErrors getmemberssmsaddfiles extractfilesFalses _extfileobj( snamesmodesfileobjs compresslevelsprestarnamestarsrcstsmsextsgzip((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysgzopenMsD          !   , ! sac CsAy dk}Wntj otd‚nXtii|ƒ\}}tii |ƒ}|djo d}n|djo d}n||}|t jo3|djoti|dƒ}d } qÎ|} n|d jo |}ny,t|||i||d ||ƒƒ}Wntj otd ‚nXt|_|SdS( s9Open gzip compressed tar archive name for appending. Nsgzip module is not availables.tgzs.tars.gzssaswbswsrsbsnot a gzip file(sgzips ImportErrorsCompressionErrorsosspathssplitextsnamespresextsbasenamestarnamesfileobjsNonesmodes __builtin__sfilesgzipmodestaropensGzipFiles compresslevelstsIOErrors ReadErrorsFalses _extfileobj( snamesmodesfileobjs compresslevelsprestarnamestsextsgzipsgzipmode((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysgzopena~s4             c Cs"t|ƒdjp |djo td‚ny dk}Wntj otd‚nXtii|ƒ\}}tii |ƒ}|djo d}n|djo d }n||}|tj o td ‚ny&t|||i||d ƒƒ}Wntj otd ‚nX|SdS( sdOpen bzip2 compressed tar archive name for reading or writing. Appending is not allowed. isrwsmode must be 'r' or 'w'.Nsbz2 module is not availables.tbz2s.tars.bz2ss$no support for external file objectssbsnot a bzip2 file(slensmodes ValueErrorsbz2s ImportErrorsCompressionErrorsosspathssplitextsnamespresextsbasenamestarnamesfileobjsNonestaropensBZ2FilestsIOErrors ReadError( snamesmodesfileobjs compresslevelsprestarnamestsextsbz2((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysbz2open¦s*          &cCs<yt|ƒ}|iƒtSWntj o tSnXdS(sfReturn True if name points to a tar archive that we are able to handle, else return False. N(sopensnamestsclosesTrueserrorsFalse(snamest((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys is_tarfileÃs  s _LowLevelFilecBs2tZdZd„Zd„Zd„Zd„ZRS(s‰Low-level file object. Supports reading and writing. It is used instead of a regular file object for streaming access. cCschdti<dtitiB<|}ttdƒo|tiO}nti||ƒ|_ dS(NsrswsO_BINARY( sossO_RDONLYsO_WRONLYsO_CREATsmodeshasattrsO_BINARYsopensnamesselfsfd(sselfsnamesmode((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__init__×s)cCsti|iƒdS(N(sossclosesselfsfd(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pyscloseàscCsti|i|ƒSdS(N(sossreadsselfsfdssize(sselfssize((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysreadãscCsti|i|ƒdS(N(sosswritesselfsfdss(sselfss((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pyswriteæs(s__name__s __module__s__doc__s__init__sclosesreadswrite(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _LowLevelFileÑs   s_StreamcBs€tZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d d „Z e d „Z d „Zd „ZRS(sClass that serves as an adapter between TarFile and a stream-like object. The stream-like object only needs to have a read() or write() method and is accessed blockwise. Use of gzip compression is possible. A stream-like object could be for example: sys.stdin, sys.stdout, a socket, a tape device etc. _Stream is intended to be used only internally. cCsût|_|tjot||ƒ}t|_n||_||_||_ ||_||_ d|_ d|_ t|_ |djopy dk}Wntj otd‚nX||_|idƒ|_|djo|iƒq÷|iƒndS(s$Construct a _Stream object. slsgzNszlib module is not availablesr(sTruesselfs _extfileobjsfileobjsNones _LowLevelFilesnamesmodesFalsestypesbufsizesbufspossclosedszlibs ImportErrorsCompressionErrorszlibmodscrc32scrcs _init_read_gzs_init_write_gz(sselfsnamesmodestypesfileobjsbufsizeszlib((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__init__ôs.               cCs|i o|iƒndS(N(sselfsclosedsclose(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__del__s cCsŸ|i}|id|i|i |idƒ|_tidt t i ƒƒƒ}|i d|ƒ|i idƒo|i d |_ n|i |i tƒdS(s6Initialize for writing with gzip compression. i isslink toN(sselfs_checkstarinfosverbosesfilemodesmodesunamesgnamesischrsisblksstrsdevmajorsdevminorssizestimes localtimesmtimesnamesissymslinknamesislnk(sselfsverbosestarinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pyslists$  &   cCs"|idƒ|tjo |}n|itj o%tii|ƒtii|iƒjo|idd|ƒdSn|djoc|oT|djo d}nx:ti dƒD]%}|i |tii ||ƒƒq³WndSn|idd|ƒ|i||ƒ}|tjo|idd |ƒdSn|iƒo0ti|d ƒ}|i||ƒ|iƒn|itttttfjod |_|i|ƒn|iƒod|i|ƒ|oLxIti |ƒD]4}|i tii ||ƒtii ||ƒƒqÞWqndS( s\Add a file to the TarFile. Directories are added recursively by default. sawistarfile: Skipped %r Ns.sis%s starfile: Unsupported type %r srbl(sselfs_checksarcnamesNonesnamesosspathsabspaths_dbgs recursiveslistdirsfsaddsjoins gettarinfostarinfosisregs __builtin__sfilesaddfilesclosestypesLNKTYPEsSYMTYPEsFIFOTYPEsCHRTYPEsBLKTYPEssizesisdir(sselfsnamesarcnames recursivesfstarinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysadd0sB   8   '     cCsq|idƒt|iƒ|_|iot|iƒ|_n|itjo td‚nt |iƒt joV|i otdt ‚qÈ|i |it ƒ|it d |_|iddƒnt |iƒtjoß|i oš|itd }x'|o|ddjo|d }qüW|it |ƒ}|d }| pt |ƒtjotd t‚n||_||_q½|i |itƒ|itd |_|idd ƒn|iƒ}|ii|ƒ|it7_|tj oxt||i|iƒt|itƒ\}}|d jo&|iitt|ƒ|d7}n|i|t7_nd S( s™Read from fileobj and add the data to the TarFile. File information and the number of bytes to read is taken from tarinfo. sawsfile is too large (>8GB)slinkname is too long (>%d)iis,tarfile: Created GNU tar extension LONGLINK iÿÿÿÿs/sname is too long (>%d)s,tarfile: Created GNU tar extension LONGNAME iN(sselfs_checksnormpathstarinfosnameslinknamessizesMAXSIZE_MEMBERs ValueErrorslens LENGTH_LINKsposixs_create_gnulongsGNUTYPE_LONGLINKs_dbgs LENGTH_NAMEs LENGTH_PREFIXsprefixsGNUTYPE_LONGNAMEs getheadersheadersfileobjswritesoffsets BLOCKSIZEsNones copyfileobjsdivmodsblockss remaindersNUL(sselfstarinfosfileobjsheadersprefixsblockss remaindersname((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysaddfilebsL           cCs×|idƒt|tƒo |}n|i|ƒ}|iƒot||ƒSn€|i t jot||ƒSn_|i ƒp |i ƒo@t|i tƒo td‚qÓ|i|i|i|ƒƒSntSdS(s|Extract member from the TarFile and return a file-like object. member may be a name or a TarInfo object. srs'cannot extract (sym)link as file objectN(sselfs_checks isinstancesmembersTarInfostarinfos getmembersisregs _FileObjectstypesSUPPORTED_TYPESsislnksissymsfileobjs_Streams StreamErrors extractfiles _getmemberslinknamesNone(sselfsmemberstarinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys extractfilešs    scCs<|idƒt|tƒo |}n|i|ƒ}|id|iƒy&|i |t i i ||iƒƒWn¶t j ok}|idjo‚q(|itjo|idd|iƒq(|idd|i|ifƒnAtj o4}|idjo‚q(|idd|ƒnX|iddƒdS(séExtract member from the TarFile and write it to current working directory using its full pathname. If path is given, it is prepended to the pathname. member may be a name or a TarInfo object. sriis tarfile: %ss tarfile: %s %rs N(sselfs_checks isinstancesmembersTarInfostarinfos getmembers_dbgsnames_extract_membersosspathsjoinsEnvironmentErrorses errorlevelsfilenamesNonesstrerrorsTarError(sselfsmemberspathsestarinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysextract¼s&  &$cCs#|ddjo|d }ntii|ƒ}tii|ƒ}|otii|ƒ o…tƒ}||_ t |_ d|_ |i|_|i|_|i|_|i|_|i|_y|i||i ƒWqãqãXn|iƒo|i||ƒnÚ|iƒo|i||ƒn¹|iƒo|i||ƒn˜|iƒp |iƒo|i||ƒnj|iƒp |iƒo|i ||ƒn<|i||ƒ|i t!jo|i"dd|i ƒn|iƒ o4|i#||ƒ|i$||ƒ|i%||ƒndS(s\Extract the TarInfo object tarinfo to a physical file called targetpath. iÿÿÿÿs/iÿis: tarfile: Unknown file type %r, extracted as regular file.N(&s targetpathsosspathsnormpathsdirnames upperdirssexistssTarInfostisnamesDIRTYPEstypesmodestarinfosmtimesuidsgidsunamesgnamesselfs_extract_membersisregs _makefilesisdirs_makedirsisfifos _makefifosischrsisblks_makedevsislnksissyms _makelinksSUPPORTED_TYPESs_dbgs_chowns_chmods_utime(sselfstarinfos targetpathstis upperdirs((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_extract_memberÛsH            cCsGyti|ƒWn/tj o#}|itijo‚qCnXdS(s9Make a directory called targetpath from tarinfo. N(sossmkdirs targetpathsEnvironmentErrorseserrnosEEXIST(sselfstarinfos targetpathse((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_makedir s cCsF|i|ƒ}ti|dƒ}t||ƒ|i ƒ|i ƒdS(s4Make a file called targetpath from tarinfo. swbN( sselfs extractfilestarinfossources __builtin__sfiles targetpathstargets copyfileobjsclose(sselfstarinfos targetpathstargetssource((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _makefiles   cCs.ttdƒoti|ƒn td‚dS(s4Make a fifo called targetpath from tarinfo. smkfifosfifo not supported by systemN(shasattrsossmkfifos targetpathsTarError(sselfstarinfos targetpath((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _makefifoscCs«ttdƒ o td‚n|i}|iƒo|tiO}n|tiO}ttdƒo)ti ||ti |i |i ƒƒnti |||i |i ƒdS(sTMake a character or block device called targetpath from tarinfo. smknods'special devices not supported by systemsmakedevN(shasattrsossTarErrorstarinfosmodesisblksstatsS_IFBLKsS_IFCHRsmknods targetpathsmakedevsdevmajorsdevminor(sselfstarinfos targetpathsmode((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_makedev&s      cCs/|i}|idd|ƒy5|iƒoti||ƒnti ||ƒWnÖt j oÊ|iƒo4ti i ti i |iƒ|ƒ}t|ƒ}ny|i|i|ƒ|ƒWq+ttfj oP}ti i|ƒ}yti||ƒWq&tj o}td‚q&Xq+XnXdS(sÄMake a (symbolic) link called targetpath from tarinfo. If it cannot be created (platform limitation), we try to make a copy of the referenced file instead of a link. is -> %sslink could not be createdN(starinfoslinknameslinkpathsselfs_dbgsissymsosssymlinks targetpathslinksAttributeErrorspathsjoinsdirnamesnamesnormpaths_extract_members getmembersEnvironmentErrorsKeyErrorsesshutilscopy2sIOError(sselfstarinfos targetpathseslinkpath((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _makelink<s(    cCsftotiƒdjoHyti|iƒd}WnOtj oCyti |i ƒd}Wq†tj oti ƒ}q†XnXyti |i ƒd}WnOtj oCyti|iƒd}Wqòtj otiƒ}qòXnXyK|iƒo ttdƒoti|||ƒnti|||ƒWqbtj o}td‚qbXndS(s6Set owner of targetpath according to tarinfo. iislchownscould not change ownerN(spwdsossgeteuidsgrpsgetgrnamstarinfosgnamesgsKeyErrorsgetgrgidsgidsgetgidsgetpwnamsunamesusgetpwuidsuidsgetuidsissymshasattrslchowns targetpathschownsEnvironmentErrorsesTarError(sselfstarinfos targetpathsesgsu((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_chownWs,cCs<yti||iƒWntj o}td‚nXdS(sASet file permissions of targetpath according to tarinfo. scould not change modeN(sosschmods targetpathstarinfosmodesEnvironmentErrorsesTarError(sselfstarinfos targetpathse((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_chmodrs cCsEy ti||i|ifƒWntj o}td‚nXdS(sBSet modification time of targetpath according to tarinfo. s"could not change modification timeN(sossutimes targetpathstarinfosmtimesEnvironmentErrorsesTarError(sselfstarinfos targetpathse((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_utimezs  cCsz|tjot|iƒ}n|ii|ƒ}xAt|dddƒD])}||i |jo|i|SqIqIWdS(s}Find an archive member by name from bottom to top. If tarinfo is given, it is used as the starting point. iiÿÿÿÿN( starinfosNoneslensselfsmemberssendsindexsxrangesisnames membernames(sselfsnamestarinfosendsi((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _getmember‚s cCs:x*to"|iƒ}|tjoPqqWt|_dS(sWRead through the entire archive file and look for readable members. N(sTruesselfsnextstarinfosNones_loaded(sselfstarinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_loads   cCsO|itjotd|ii‚n|i|jotd|i‚ndS(snCheck if TarFile is still open, and if the operation's mode corresponds to TarFile's mode. s %s is closedsbad operation for mode %rN(sselfsfileobjsNonesIOErrors __class__s__name__s_modesmode(sselfsmode((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_check™s cCs)|iot|iƒSn t|ƒSdS(s$Provide an iterator object. N(sselfs_loadedsitersmemberssTarIter(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__iter__¢s cCs4tƒ}t|dd!ƒ|_t|dd!dƒ|_t|dd!dƒ|_t|dd!dƒ|_t |dd!dƒ|_ t |dd!dƒ|_ t|dd !dƒ|_ |d d !|_ t|d d !ƒ|_t|d d !ƒ|_t|d d!ƒ|_y6t|dd!dƒ|_t|dd!dƒ|_Wn#tj od|_|_nX|dd!}x'|o|dtjo|d }qsWt|itƒƒdjo1||_ttii|i|iƒƒ|_n|dd!|_|i t|ƒjo|o|iddƒq,n|SdS(s8Transform a 512 byte block to a TarInfo object. iidiliiti|iˆi”iœiii i)iIiQiYiôiÿÿÿÿistarfile: Bad Checksum N(sTarInfostarinfosntssbufsnamesintsmodesuidsgidslongssizesmtimeschksumstypeslinknamesunamesgnamesdevmajorsdevminors ValueErrorsprefixsNULslenssplitsnormpathsosspathsjoins calc_chksumsselfs_dbg(sselfsbufsprefixstarinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _buftoinfoªs<   (cCs t}t}d}|i}xG|djo9|ii t ƒ}||7}|i t 7_ |t 8}qW|tjot|ƒ}n|tjot|ƒ}n|ii t ƒ}|i|ƒ}|tj o ||_n|tj o ||_n|i t 7_ |SdS(sTEvaluate the blocks that hold a GNU longname or longlink member. siN(sNonesnameslinknamesbufstarinfossizescountsselfsfileobjsreads BLOCKSIZEsblocksoffsetstypesGNUTYPE_LONGNAMEsntssGNUTYPE_LONGLINKs _buftoinfo(sselfstarinfostypescountsnamesbufsblockslinkname((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _proc_gnulongÍs.         cCs»tƒ}d|_||_d|_t|ƒ|_|ii |i ƒƒ|ii |ƒt |it ƒ\}}|djo&|ii tt |ƒ|d7}n|i|t 7_dS(sÿWrite a GNU longname/longlink member to the TarFile. It consists of an extended tar header, with the length of the longname as size, followed by data blocks, which contain the longname as a null terminated string. s ././@LongLinkiiN(sTarInfostarinfosnamestypesmodeslenssizesselfsfileobjswrites getheadersdivmods BLOCKSIZEsblockss remaindersNULsoffset(sselfsnamestypesblockss remainderstarinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_create_gnulongés     c Csm|iƒ} tƒ}d}d}d}xÉtdƒD]»}y<t | ||d!dƒ} t | |d|d!dƒ}Wnt j oPnX| |jo|it|| |ƒƒn|it| ||ƒƒ||7}| |}|d7}q4Wt| dƒ} t | dd !dƒ}x| d jo|iitƒ} |i t7_ d }xÉtd ƒD]»}y<t | ||d!dƒ} t | |d|d!dƒ}Wnt j oPnX| |jo|it|| |ƒƒn|it| ||ƒƒ||7}| |}|d7}q]Wt| d ƒ} qW||jo|it|||ƒƒn||_|SdS(s8Analyze a GNU sparse header plus extra headers. i‚lii iiiâiãiïiiiiøN(starinfos getheadersbufs _ringbuffersspsposslastpossrealpossrangesisintsoffsetsnumbytess ValueErrorsappends_holes_datasords isextendedsorigsizesselfsfileobjsreads BLOCKSIZEssparse( sselfstarinfosorigsizesrealpossnumbytesslastpossspspossisoffsets isextendedsbuf((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _proc_sparseÿsX   "     "     cCs(||ijotii|ƒndS(N(slevelsselfsdebugssyssstdoutswritesmsg(sselfslevelsmsg((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_dbg3s()s__name__s __module__s__doc__sdebugsFalses dereferences ignore_zeross errorlevelsTruesposixsNones__init__sclosesnexts getmembers getmemberssgetnamess gettarinfoslistsaddsaddfiles extractfilesextracts_extract_members_makedirs _makefiles _makefifos_makedevs _makelinks_chowns_chmods_utimes _getmembers_loads_checks__iter__s _buftoinfos _proc_gnulongs_create_gnulongs _proc_sparses_dbg(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysTarFilesH 0  K  W 2 8 "  1        #   4sTarItercBs)tZdZd„Zd„Zd„ZRS(sMIterator Class. for tarinfo in TarFile(...): suite... cCs ||_dS(s&Construct a TarIter instance. N(starfilesself(sselfstarfile((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__init__?scCs|SdS(s Return iterator object. N(sself(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__iter__CscCs5|iiƒ}| ot|i_t‚n|SdS(s€Return the next item using TarFile's next() method. When all members have been read, set TarFile as _loaded. N(sselfstarfilesnextstarinfosTrues_loadeds StopIteration(sselfstarinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysnextGs   (s__name__s __module__s__doc__s__init__s__iter__snext(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysTarIter8s   s_sectioncBs tZdZd„Zd„ZRS(s$Base class for _data and _hole. cCs||_||_dS(N(soffsetsselfssize(sselfsoffsetssize((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__init__Vs cCs,|i|jo|i|ijnSdS(N(sselfsoffsetssize(sselfsoffset((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys __contains__Ys(s__name__s __module__s__doc__s__init__s __contains__(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_sectionSs  s_datacBstZdZd„ZRS(s/Represent a data section in a sparse file. cCs ti|||ƒ||_dS(N(s_sections__init__sselfsoffsetssizesrealpos(sselfsoffsetssizesrealpos((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__init___s(s__name__s __module__s__doc__s__init__(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_data\s s_holecBstZdZRS(s/Represent a hole section in a sparse file. (s__name__s __module__s__doc__(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_holecs s _ringbuffercBs tZdZd„Zd„ZRS(sMRingbuffer class which increases performance over a regular list. cCs d|_dS(Ni(sselfsidx(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__init__lscCs„|i}xgto_||}||joPn|d7}|t|ƒjo d}n||ijotSq q W||_|SdS(Nii(sselfsidxsTruesitemsoffsetslensNone(sselfsoffsetsidxsitem((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysfindns       (s__name__s __module__s__doc__s__init__sfind(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _ringbufferhs  s _FileObjectcBsktZdZd„Zdd„Zd„Zed„Zed„Zd„Z d„Z d d „Z d „Z RS( s‹File-like object for reading an archive member. Is returned by TarFile.extractfile(). Support for sparse files included. cCs|i|_|i|_d|_t|_|i|_ |i |_ d|_ d|_ |i ƒo|i|_|i|_n |i|_dS(Nsrls(starfilesfileobjsselfstarinfosnamesmodesFalsescloseds offset_datasoffsetssizesposs linebuffersissparsessparses _readsparsesreads _readnormal(sselfstarfilestarinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__init__ƒs          iÿÿÿÿcCsS|djo ti}n|iidƒ}|djot||ƒ}n¸|t|iƒ8}xz|djol|i t|dƒƒ}| oPn|i|7_|t|ƒ8}|djoPn|iidƒ}qbW|djo|i}d|_|Sn|i| }|i|d|_x |ddjo|d }q'W|dSdS( s•Read a line with approx. size. If size is negative, read a whole line. readline() and read() must not be mixed up (!). is idiÿÿÿÿsis N( ssizessyssmaxintsselfs linebuffersfindsnlsminslensreadsbufss(sselfssizesnlsssbuf((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysreadline’s6         cCsCg}x2to*|iƒ}| oPn|i|ƒq W|SdS(s2Return a list with all (following) lines. N(sresultsTruesselfsreadlineslinesappend(sselfslinesresult((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys readlines²s cCsŠ|io td‚n|ii|i|iƒ|i|i}|t jo |}nt ||ƒ}|i|7_|ii |ƒSdS(s*Read operation for regular files. sfile is closedN( sselfscloseds ValueErrorsfileobjsseeksoffsetsposssizes bytesleftsNones bytestoreadsminsread(sselfssizes byteslefts bytestoread((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _readnormal¼s    cCs‘|io td‚n|tjo|i|i}nd}xH|djo:|i|ƒ}| oPn|t |ƒ8}||7}qAW|SdS(s)Read operation for sparse files. sfile is closedsiN( sselfscloseds ValueErrorssizesNonespossdatas_readsparsesectionsbufslen(sselfssizesdatasbuf((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _readsparseÊs    cCsÆ|ii|iƒ}|tjodSnt||i|i|iƒ}t |t ƒoQ|i |i|i}|i|7_|i i|i|ƒ|i i|ƒSn|i|7_t|SdS(s0Read a single section of a sparse file. sN(sselfssparsesfindsposssectionsNonesminssizesoffsetstoreads isinstances_datasrealpossfileobjsseeksreadsNUL(sselfssizestoreadsrealposssection((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys_readsparsesectionÜs  cCs |iSdS(s*Return the current file position. N(sselfspos(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pystellîsicCsÉd|_|djo"tt|dƒ|iƒ|_n|djoJ|djot|i|dƒ|_qt|i||iƒ|_n|djo)tt|i||iƒdƒ|_ndS(s(Seek to a position in the file. siiiN(sselfs linebufferswhencesminsmaxsposssize(sselfsposswhence((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysseekós  "    cCs t|_dS(sClose the file object. N(sTruesselfsclosed(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pyscloses( s__name__s __module__s__doc__s__init__sreadlines readlinessNones _readnormals _readsparses_readsparsesectionstellsseeksclose(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys _FileObject}s       s TarFileCompatcBsttZdZded„Zd„Zd„Zd„Zd„Zd„Z d„Z e e d „Z d „Z d „ZRS( sRTarFile class compatible with standard module zipfile's ZipFile class. src Csbt|tdƒtdƒfƒ o t|dƒo|}d}nt}||_|tjot ||d|ƒ|_ n\|t joE|djot ||d|ƒ|_ qÖt ||d|ƒ|_ n td‚|dd!d jotdk}|i iƒ}xYtt|ƒƒD]A}||}|i|_|i|_|i|iƒd |_qWndS( Nsusreadsfileobjsasunknown compression constantiisri(s isinstancesfilestypeshasattrsfileobjsNones compressionsselfs TAR_PLAINsopensmodestarfiles TAR_GZIPPEDsgzopens ValueErrorstimes getmemberssmemberssrangeslensismsnamesfilenamessizes file_sizesgmtimesmtimes date_time( sselfsfilesmodes compressionsismsfileobjstimesmembers((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys__init__s*3          cCstd„|iƒƒSdS(NcCs|iS(N(smsname(sm((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys0s(smapsselfsinfolist(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysnamelist/scCstd„|iiƒƒSdS(NcCs |itjS(N(smstypes REGULAR_TYPES(sm((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys2s(sfiltersselfstarfiles getmembers(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysinfolist1s cCs|iiƒdS(N(sselfstarfileslist(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysprintdir4scCsdSdS(N((sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pystestzip6scCs|ii|ƒSdS(N(sselfstarfiles getmembersname(sselfsname((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysgetinfo8scCs&|ii|ii|ƒƒiƒSdS(N(sselfstarfiles extractfiles getmembersnamesread(sselfsname((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pysread:scCs|ii||ƒdS(N(sselfstarfilesaddsfilenamesarcname(sselfsfilenamesarcnames compress_type((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pyswrite<scCsVdk}|i|_|i|_|i|iƒ|_|i i |t i |ƒƒdS(N(scalendarszinfosfilenamesnames file_sizessizestimegms date_timesmtimesselfstarfilesaddfiles cStringIOsStringIOsbytes(sselfszinfosbytesscalendar((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pyswritestr>s    cCs|iiƒdS(N(sselfstarfilesclose(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pyscloseDs(s__name__s __module__s__doc__s TAR_PLAINs__init__snamelistsinfolistsprintdirstestzipsgetinfosreadsNoneswriteswritestrsclose(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys TarFileCompats        s__main__s? Usage: %s [options] [files] -h display this help message -c create a tarfile -r append to an existing archive -x extract archive -t list archive contents -f FILENAME use archive FILENAME, else STDOUT (-c) -z filter archive through gzip -C DIRNAME with opt -x: extract to directory DIRNAME with opt -c, -r: put files to archive under DIRNAME -v verbose output -q quiet --posix create a POSIX 1003.1-1990 compliant archive wildcards *, ?, [seq], [!seq] are accepted. s htcxrzjf:C:vqsposixsERROR:ss-ts-cs-rs-xs-fs-Cs-zsgzs-jsbz2s-vs-qs--posixs-hs%s:%sssys.stdout.tar(‡s__doc__s __version__sversions __author__s__date__s __cvsid__s __credits__ssyssoss __builtin__sshutilsstatserrnostimesstructsgrpspwds ImportErrorsNones_tarfilesmknodshasattrsmajorsminorsmakedevslchownsTruesFalses NameErrorsNULs BLOCKSIZEs RECORDSIZEsMAGICsVERSIONs LENGTH_NAMEs LENGTH_LINKs LENGTH_PREFIXsMAXSIZE_MEMBERsREGTYPEsAREGTYPEsLNKTYPEsSYMTYPEsCHRTYPEsBLKTYPEsDIRTYPEsFIFOTYPEsCONTTYPEsGNUTYPE_LONGNAMEsGNUTYPE_LONGLINKsGNUTYPE_SPARSEsSUPPORTED_TYPESs REGULAR_TYPESsS_IFLNKsS_IFREGsS_IFBLKsS_IFDIRsS_IFCHRsS_IFIFOsTSUIDsTSGIDsTSVTXsTUREADsTUWRITEsTUEXECsTGREADsTGWRITEsTGEXECsTOREADsTOWRITEsTOEXECsntss calc_chksums copyfileobjsfilemode_tablesfilemodessepsnormpathspaths ExceptionsTarErrors ReadErrorsCompressionErrors StreamErrorserrorsopenstaropensgzopensgzopenasbz2opens is_tarfiles _LowLevelFiles_StreamsTarInfosTarFilesTarIters_sections_datas_holeslists _ringbuffers _FileObjects cStringIOs TAR_PLAINs TAR_GZIPPEDs TarFileCompats__name__sargvsusagesgetoptsglobsoptssargss GetoptErrorsesexitsfilesmodesdirscompsdebugsposixsosasmsvcrtssetmodesO_BINARYsstdoutstarfilestarinfosextractsargsfilessfsaddsclose(os_sectionsCompressionErrorsstructs _LowLevelFilesS_IFDIRsTarFilesusagesgzopensMAGICs_StreamsVERSIONsREGTYPEs TarFileCompats REGULAR_TYPESsS_IFCHRsFalsesTUEXECs__date__sTUREADsCHRTYPEsdebugs StreamErrorsesdirs cStringIOsFIFOTYPEsTSGIDsTGREADsargsMAXSIZE_MEMBERs copyfileobjsTGEXECsS_IFBLKsLNKTYPEstarfilesmsvcrtsversionsTruesBLKTYPEs TAR_PLAINsargssGNUTYPE_LONGLINKscompsntssfilemodes calc_chksumsGNUTYPE_SPARSEsTGWRITEstaropens ReadErrorsfilemode_tables _ringbuffersostarinfos BLOCKSIZEsossTarErrorsTSUIDs __builtin__sSYMTYPEsS_IFLNKs_holesgzopenasoptssopens RECORDSIZEs __credits__sDIRTYPEserrnosNULsfilessS_IFREGsS_IFIFOs __author__sTarIterspwds LENGTH_LINKsbz2opensfs _FileObjectsCONTTYPEsposixserrorsTOREADsmodesfilesshutilsTUWRITEsgrps LENGTH_PREFIXsgetopts __version__s_tarfilesstats is_tarfilesglobs TAR_GZIPPEDssyssTSVTXs_datasSUPPORTED_TYPESs LENGTH_NAMEsasGNUTYPE_LONGNAMEsTOEXECsTOWRITEs __cvsid__snormpathsAREGTYPEstimesTarInfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/tarfile.pys?'sŒ            *  ®   <1( ¼]ÿÿÿ9  8 )                #