mò ©ËŽGc@sŠdkTdkZdkZdkZdkZd„Zdefd„ƒYZdefd„ƒYZdefd„ƒYZd efd „ƒYZ d efd „ƒYZ dS( (t*NcCsåd}tiitiittdƒƒp5yättiittdƒdƒ}|i dƒ|i dƒ|i dƒ|i ƒt i dtiittƒd ƒ}|iƒo*t i dtiittƒd ƒ}nttiittd ƒtiittdƒƒWq`ttfj o8ttiittd ƒtiittdƒƒq`Xnyettiittdƒd ƒ}|iƒ}|i ƒt|ƒd joti|d ƒ}nWnttfj onX|S(Ntt glibcversionsglibcversion.ctws#include s#include s=int main (void) { puts (gnu_get_libc_version()); return 0; } scd s; gcc glibcversion.cs; ./a.out > glibcversionsa.outtriiÿÿÿÿ(tvtostpathtexiststjoint pac_anchort pacmanDirtopentftwritetcloset ExecutiontexecuteRtokt removeFilestIOErrortOSErrortreadlinetlinetlentstringtstrip(R RRR((tf/home/faculty/youssef/public_html/pacman/sample_cache/tarballs/pre/tmp/pacman-3.29/src/GlibcVersion.pyRs.%!    & *5:!  t GlibcVersioncBsMtZdZdZdZeƒd„Zd„Zd„Zd„Z d„Z RS(Ns glibc versionsGlibc VersionscCs ||_dS(N(tvaluetself(RR((Rt__init__%scCsd|idtƒdS(Nsmust be equal to [s ], actually [s].(RRR(R((Rtstr(scCsotƒ}|djotdƒ}n3tdtƒd|idtƒ|ij ƒ}|i|iƒƒ|S(NRs"gcc is not available in your path.sglibc version is [s]. It must be [s].(RtpvtReasonRRRtsatsetR(RRR!((Rt satisfied*s   2cCs#|iƒ}|i|iƒƒ|S(N(RR$RR#R(RR((Rtacquire4s cCstƒS(N(R"(R((Rtretract8s( t__name__t __module__ttypettitletactionRRR R$R%R&(((RR s  tGlibcVersionLEcBs,tZdZdZdZd„Zd„ZRS(Nsglibc version <=sglibc version <=scCsd|idtƒdS(Nt[s ], actually [s].(RRR(R((RR ?scCsotƒ}|djotdƒ}n3tdtƒd|idtƒ|ij ƒ}|i|iƒƒ|S(NRs"gcc is not available in your path.sglibc version [s] must be <= [s].(RR!R"RRRR#R(RRR!((RR$@s   2(R'R(R)R*R+R R$(((RR,:s  tGlibcVersionLTcBs,tZdZdZdZd„Zd„ZRS(Nsglibc version =sglibc version >=scCsd|idtƒdS(NR-s ], actually [s].(RRR(R((RR ]scCsotƒ}|djotdƒ}n3tdtƒd|idtƒ|ij ƒ}|i|iƒƒ|S(NRs"gcc is not available in your path.sglibc version [s] must be >= [s].(RR!R"RRRR#R(RRR!((RR$^s   2(R'R(R)R*R+R R$(((RR/Xs  tGlibcVersionGTcBs,tZdZdZdZd„Zd„ZRS(Nsglibc version >sglibc version >scCsd|idtƒdS(NR-s ], actually [s].(RRR(R((RR lscCsotƒ}|djotdƒ}n3tdtƒd|idtƒ|ij ƒ}|i|iƒƒ|S(NRs"gcc is not available in your path.sglibc version [s ] must be > [s].(RR!R"RRRR#R(RRR!((RR$ms   2(R'R(R)R*R+R R$(((RR0gs  ( t StringAttrRtcommandsRRRRR,R.R/R0( R2R.RR0R,R/RRRR((Rt?s