From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QtDBM-0002Js-ER for garchives@archives.gentoo.org; Tue, 16 Aug 2011 06:31:25 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 307C821C150; Tue, 16 Aug 2011 06:31:16 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id BDF8B21C150 for ; Tue, 16 Aug 2011 06:31:15 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id EBB0E1B4012 for ; Tue, 16 Aug 2011 06:31:14 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id F3CF080040 for ; Tue, 16 Aug 2011 06:31:13 +0000 (UTC) From: "Александр Берсенев" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Александр Берсенев" Message-ID: <35e1dc34db0539d6a6478209bdc8caf00d82bb7a.bay@gentoo> Subject: [gentoo-commits] proj/autodep:master commit in: docs/build/html/_sources/, docs/build/html/_modules/package_utils/, ... X-VCS-Repository: proj/autodep X-VCS-Files: docs/build/doctrees/api.doctree docs/build/doctrees/environment.pickle docs/build/html/_modules/index.html docs/build/html/_modules/logfs/fstracer.html docs/build/html/_modules/package_utils/portage_log_parser.html docs/build/html/_modules/package_utils/portage_misc_functions.html docs/build/html/_modules/package_utils/portage_utils.html docs/build/html/_sources/api.txt docs/build/html/api.html docs/build/html/genindex.html docs/build/html/index.html docs/build/html/objects.inv docs/build/html/py-modindex.html docs/build/html/search.html docs/build/html/searchindex.js docs/build/man/autodep.1 docs/source/api.rst src/autodep/autodep src/autodep/helpers/events_analysis.py src/autodep/package_utils/portage_misc_functions.py src/autodep/tests/all_tests.py X-VCS-Directories: docs/build/html/_sources/ docs/build/html/_modules/package_utils/ docs/build/html/ docs/source/ docs/build/man/ docs/build/html/_modules/logfs/ docs/build/html/_modules/ src/autodep/package_utils/ src/autodep/tests/ docs/build/doctrees/ src/autodep/helpers/ src/autodep/ X-VCS-Committer: bay X-VCS-Committer-Name: Александр Берсенев X-VCS-Revision: 35e1dc34db0539d6a6478209bdc8caf00d82bb7a Date: Tue, 16 Aug 2011 06:31:13 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: de76217f5ab52dbe02665111ce986e90 commit: 35e1dc34db0539d6a6478209bdc8caf00d82bb7a Author: Alexander Bersenev hackerdom ru> AuthorDate: Tue Aug 16 12:29:44 2011 +0000 Commit: =D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80 =D0=91= =D0=B5=D1=80=D1=81=D0=B5=D0=BD=D0=B5=D0=B2 hackerdom ru> CommitDate: Tue Aug 16 12:29:44 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/autodep.git;a= =3Dcommit;h=3D35e1dc34 changes in output --- docs/build/doctrees/api.doctree | Bin 45408 -> 46733= bytes docs/build/doctrees/environment.pickle | Bin 971389 -> 9713= 77 bytes docs/build/html/_modules/index.html | 2 +- docs/build/html/_modules/logfs/fstracer.html | 2 +- .../_modules/package_utils/portage_log_parser.html | 2 +- .../package_utils/portage_misc_functions.html | 2 +- .../html/_modules/package_utils/portage_utils.html | 2 +- docs/build/html/_sources/api.txt | 1 - docs/build/html/api.html | 20 +++- docs/build/html/genindex.html | 2 +- docs/build/html/index.html | 2 +- docs/build/html/objects.inv | Bin 502 -> 502 byt= es docs/build/html/py-modindex.html | 2 +- docs/build/html/search.html | 2 +- docs/build/html/searchindex.js | 2 +- docs/build/man/autodep.1 | 2 +- docs/source/api.rst | 1 - src/autodep/autodep | 123 +++++++++++++-= ------ src/autodep/helpers/events_analysis.py | 2 +- .../package_utils/portage_misc_functions.py | 54 +++++++-- src/autodep/tests/all_tests.py | 2 +- 21 files changed, 155 insertions(+), 70 deletions(-) diff --git a/docs/build/doctrees/api.doctree b/docs/build/doctrees/api.do= ctree index bfb5a6d..2516311 100644 Binary files a/docs/build/doctrees/api.doctree and b/docs/build/doctrees/= api.doctree differ diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees= /environment.pickle index 3f806c9..23e328c 100644 Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/do= ctrees/environment.pickle differ diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modul= es/index.html index a676437..cc23e30 100644 --- a/docs/build/html/_modules/index.html +++ b/docs/build/html/_modules/index.html @@ -86,7 +86,7 @@
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/_modules/logfs/fstracer.html b/docs/build/ht= ml/_modules/logfs/fstracer.html index 0214fa6..0abbd94 100644 --- a/docs/build/html/_modules/logfs/fstracer.html +++ b/docs/build/html/_modules/logfs/fstracer.html @@ -327,7 +327,7 @@
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/_modules/package_utils/portage_log_parser.ht= ml b/docs/build/html/_modules/package_utils/portage_log_parser.html index 2c02aa7..a468842 100644 --- a/docs/build/html/_modules/package_utils/portage_log_parser.html +++ b/docs/build/html/_modules/package_utils/portage_log_parser.html @@ -170,7 +170,7 @@
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/_modules/package_utils/portage_misc_function= s.html b/docs/build/html/_modules/package_utils/portage_misc_functions.ht= ml index 637694c..034ad24 100644 --- a/docs/build/html/_modules/package_utils/portage_misc_functions.html +++ b/docs/build/html/_modules/package_utils/portage_misc_functions.html @@ -188,7 +188,7 @@
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/_modules/package_utils/portage_utils.html b/= docs/build/html/_modules/package_utils/portage_utils.html index 58064e7..f7eba53 100644 --- a/docs/build/html/_modules/package_utils/portage_utils.html +++ b/docs/build/html/_modules/package_utils/portage_utils.html @@ -158,7 +158,7 @@
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/_sources/api.txt b/docs/build/html/_sources/= api.txt index 4a0a626..1397732 100644 --- a/docs/build/html/_sources/api.txt +++ b/docs/build/html/_sources/api.txt @@ -19,4 +19,3 @@ This package contains modules which works with the Port= age system :members: .. automodule:: package_utils.portage_misc_functions :members: - diff --git a/docs/build/html/api.html b/docs/build/html/api.html index c5963a3..bec16d7 100644 --- a/docs/build/html/api.html +++ b/docs/build/html/api.html @@ -56,7 +56,7 @@ handling dependency logic.

It can be used to launch a program and get all file events

-logfs.fstracer.g= etfsevents(prog_name, arguments, ap= proach=3D'hooklib', filterproc=3D<function defaultfilter at 0= x1dbdb90>)[sour= ce]=C2=B6
+logfs.fstracer.g= etfsevents(prog_name, arguments, ap= proach=3D'hooklib', filterproc=3D<function defaultfilter at 0= x1b2bc80>)[sour= ce]=C2=B6

Launches a program and gets file access events

@@ -165,6 +165,14 @@ package it not returned as key of this dictionary
get_best_visible_pkg(pkg= )=C2=B6

Gets best candidate on installing. Returns empty string if no fou= nd

+
+++ + + + +
Parameters:pkg – package name
=20
@@ -218,6 +226,14 @@ All dependencies must be installed<= /p>

Gets list of packages that emerge with emergeargs-arguments will = merge This function uses very internal functions of portage so=20 it may be unreliable in various portage versions

+ +++ + + + +
Parameters:emergeargs – list of raw args of emer= ge, for example, [‘-1’,’bash’]
=20
@@ -313,7 +329,7 @@ list)
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.htm= l index e44ab7a..3afc1ac 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -200,7 +200,7 @@
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/index.html b/docs/build/html/index.html index b56bed7..95f586e 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -136,7 +136,7 @@
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 20cf75f..72db0bb 100644 Binary files a/docs/build/html/objects.inv and b/docs/build/html/objects.= inv differ diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modind= ex.html index 42ac89a..e197fdc 100644 --- a/docs/build/html/py-modindex.html +++ b/docs/build/html/py-modindex.html @@ -132,7 +132,7 @@
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/search.html b/docs/build/html/search.html index 2da6a37..14597c1 100644 --- a/docs/build/html/search.html +++ b/docs/build/html/search.html @@ -96,7 +96,7 @@
© Copyright 2011, Alexander Bersenev. - Last updated on Aug 03, 2011. + Last updated on Aug 04, 2011. Created using Sphinx 1.0.= 7.
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex= .js index 8c5fbdb..fa12b7a 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{"":{"-v":[4,0,1],"-f":[4,0,1],"-C":[2,0,1],"-b= ":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"--blockpkgs":[4,0,1],"-= -nocolor":[4,0,1],"--help":[4,0,1]},"package_utils.portage_misc_functions= ":{portage_api:[1,4,1]},"package_utils.portage_log_parser":{get_list_of_m= erged_packages:[1,3,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_u= tils":{getfilesbypackage:[1,3,1],getpackagesbyfiles:[1,3,1],get_all_packa= ges_files:[1,3,1]},"logfs.fstracer":{getfsevents:[1,3,1]},"package_utils.= portage_misc_functions.portage_api":{get_dep:[1,2,1],get_system_packages_= list:[1,2,1],get_best_visible_pkg:[1,2,1],get_deps:[1,2,1],get_merge_list= :[1,2,1],parse_emerge_args:[1,2,1]},package_utils:{portage_misc_functions= :[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{oper:1= ,all:[1,2,3,4],code:3,help:[2,4],chain:1,show:[2,4],futher:[0,3],over:3,r= ootf:3,mnt:3,veri:1,pkg:1,accuraci:3,find:1,dynam:[2,3,4],paramet:1,xml:3= ,prog_nam:1,onli:[2,4],cut:3,depend:[1,2, 3,4],execut:3,field:3,activ:2,dep_typ:1,should:1,cowsai:2,ebuild:2,progr= am:[1,2,3,4],under:2,els:3,parse_emerge_arg:1,main:3,analys:3,getfsev:1,b= uild:[2,3,4],filterproc:1,deni:[2,3,4],sock_seqpacket:3,sourc:1,"return":= [1,3],string:1,variou:1,get:[1,2,4],fals:1,big:[2,4],overlai:2,util:[2,3,= 4],than:[2,4],candid:1,command:[2,4],"new":3,increas:3,potenti:[2,4],"0x1= 9e7b18":[],recurs:1,lib64:3,requir:[2,4],introduct:[0,2],tri:3,document:0= ,name:[1,3],success:1,level:1,proc:3,gnu:2,list:[1,3],nocolor:[2,4],examp= l:[0,2,4],phase:3,mode:[2,4],man:3,each:1,userspac:3,found:[1,2,3,4],shm:= 3,kernel:[2,4],domain:3,set:1,slower:[2,4],often:3,map:3,heurist:3,idea:3= ,packet:3,logf:[0,1],second:1,cost:3,sec:3,result:3,pass:1,fail:1,further= :3,successfulli:1,todo:2,event:[0,1,2,3,4],librari:[2,3,4],variabl:3,inde= x:2,statu:[0,2],servic:1,network:3,compar:3,bind:3,develop:2,unknown:[1,2= ,3,4],best:1,access:[0,1,2,3,4],version:1,exit:[2,4],between:1,got:3,hook= er:3,content:0,approach:[0,1,2,3,4],unus: 3,gpl:2,who:[2,4],run:[0,2,3],kei:1,arg:1,contain:1,get_all_packages_fil= :1,slow:[2,4],believ:3,starttim:1,x11:[2,4],releas:2,hooklib:[0,1,2,3,4],= portage_api:1,sinc:[1,3],bash:2,get_best_visible_pkg:1,both:1,search:[1,2= ],socket:3,thread:3,registar:3,libc:3,current:1,page:2,portage_log_pars:1= ,registrar:3,reliabl:[2,4],logic:1,action:1,mani:[2,4],chang:3,share:3,ls= of:2,other:3,block:[1,2,3,4],first:1,load:[2,3,4],via:3,dictionari:1,pack= agenam:1,color:[2,4],overview:[0,2],modul:[1,2,3],defaultfilt:1,misc:[2,4= ],get_merge_list:1,usual:[2,3,4],two:1,ld_preload:[2,3,4],ask:3,unix:3,ap= i:[0,1],non:[2,4],send:3,linux:3,instal:[0,1,2,3],desktop:3,open:[1,3],st= age:[1,2,3,4],merg:1,reciev:3,get_dep:1,most:[2,4],from:[1,2,3,4],log:[1,= 2,4],fusef:[0,1,2,3,4],memori:1,profil:3,modifi:3,licens:2,doesn:1,system= :[1,2,3,4],messag:[2,3,4],implicit:[1,3],verbos:[2,4],start:1,much:3,call= :[1,3],includ:3,handl:1,autodep:[0,2,4],overhead:[2,4],xchat:[2,4],type:[= 1,3],strict:[2,4],usr:3,fork:3,parser:1,e rrno:3,unexpect:3,fstracer:[0,1],tupl:1,tool:[2,4],copi:3,protect:3,dire= ct:[2,4],"var":3,postrm:3,pars:1,low:1,portag:[1,3],atom:1,filesystem:3,"= true":1,getfilesbypackag:1,origin:3,must:[1,2,4],also:[1,2,3,4],scheme:3,= portage_util:1,err:3,package_util:[0,1],"default":[1,2,4],mount:3,launch:= [1,2,3,4],intern:[0,1,3],dev:3,charact:3,showfsev:2,defin:[2,4],lib32:3,b= ridg:1,can:[1,2,3,4],behavior:3,error:3,about:3,more:[2,4],root:[2,4],del= imit:3,loggabl:3,connect:3,pre:[2,4],"function":[1,3],empti:1,creat:3,loo= k:1,descript:4,dure:[2,4],linker:3,filenam:1,argument:1,indic:[0,2],get_l= ist_of_merged_packag:1,high:1,packag:[1,2,3,4],inform:[1,3],unreli:1,file= :[0,1,2,3,4],tabl:[0,2],synopsi:4,"import":[2,4],work:[0,1,3],check:3,opt= ion:[1,2,4],filter:1,write:[1,3],chroot:3,emergearg:1,thei:1,output:[2,4]= ,perform:[2,3,4],anoth:3,make:2,belong:1,when:[2,3,4],detail:3,same:3,"wh= ile":[2,3,4],note:[2,3,4],how:[0,3],wai:3,read:[1,2,3,4],take:[1,2,3,4],w= hich:1,auto:[2,4],answer:3,instead:[1,3], tmp:3,simpl:3,prepar:3,enabl:[2,4],analysi:[0,2,3,4],getpackagesbyfil:1,= get_system_packages_list:1,extern:3,thi:[1,2,3,4],see:3,normal:[2,4],reco= mend:[2,4],after:3,what:[2,4],befor:3,buildtim:[2,4],fuse:[2,3,4],user:[2= ,4],blockpkg:[2,4],mai:1,end:[1,3],"class":1,"0x1dbdb90":1,don:[2,4],ani:= [1,2,3,4],syscal:[2,4],directori:3,macro:[2,4],builder:[2,4],acloc:3,port= age_misc_funct:1,rule:3,element:1,alwai:1,registr:3,depth:1,emerg:[1,2,4]= ,environ:3,runtim:[2,3,4],allow:[1,2,3,4],time:[1,2,3,4],format:3,endtim:= 1,stagenam:3,hungri:1,rdepend:1},objtypes:{"0":"std:option","1":"py:modul= e","2":"py:method","3":"py:function","4":"py:class"},titles:["AutodepR= 17;s documentation","API","Introduction","Internals","USER COMMANDS"],obj= names:{"0":"option","1":"Python module","2":"Python method","3":"Python f= unction","4":"Python class"},filenames:["index","api","intro","architectu= re","man"]}) \ No newline at end of file +Search.setIndex({objects:{"":{"-v":[4,0,1],"-f":[4,0,1],"-C":[2,0,1],"-b= ":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"--blockpkgs":[4,0,1],"-= -nocolor":[4,0,1],"--help":[4,0,1]},"package_utils.portage_misc_functions= ":{portage_api:[1,4,1]},"package_utils.portage_log_parser":{get_list_of_m= erged_packages:[1,3,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_u= tils":{getfilesbypackage:[1,3,1],getpackagesbyfiles:[1,3,1],get_all_packa= ges_files:[1,3,1]},"logfs.fstracer":{getfsevents:[1,3,1]},"package_utils.= portage_misc_functions.portage_api":{get_dep:[1,2,1],get_system_packages_= list:[1,2,1],get_best_visible_pkg:[1,2,1],get_deps:[1,2,1],get_merge_list= :[1,2,1],parse_emerge_args:[1,2,1]},package_utils:{portage_misc_functions= :[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{all:[1= ,2,3,4],code:3,chain:1,mnt:3,prog_nam:1,showfsev:2,depend:[1,2,3,4],send:= 3,ebuild:2,program:[1,2,3,4],under:2,sourc:1,string:1,fals:1,util:[2,3,4]= ,candid:1,veri:1,hooker:3,tri:3,level:1,l ist:[1,3],mount:3,defaultfilt:1,slower:[2,4],direct:[2,4],second:1,cost:= 3,pass:1,further:3,index:2,what:[2,4],compar:3,access:[0,1,2,3,4],version= :1,"new":3,modifi:3,sinc:[1,3],search:[1,2],action:1,chang:3,via:3,packag= enam:1,modul:[1,2,3],filenam:1,unix:3,api:[0,1],heurist:3,instal:[0,1,2,3= ],get_dep:1,from:[1,2,3,4],memori:1,two:1,call:[1,3],usr:3,type:[1,3],mor= e:[2,4],ld_preload:[2,3,4],endtim:1,getfilesbypackag:1,must:[1,2,4],lib32= :3,err:3,package_util:[0,1],prepar:3,registar:3,dev:3,can:[1,2,3,4],"0x1d= bdb90":[],root:[2,4],registr:3,share:3,indic:[0,2],high:1,unreli:1,portag= e_log_pars:1,chroot:3,end:[1,3],anoth:3,write:[1,3],how:[0,3],answer:3,in= stead:[1,3],simpl:3,map:3,alwai:1,after:3,befor:3,blockpkg:[2,4],mai:1,ma= n:3,syscal:[2,4],bind:3,element:1,inform:[1,3],environ:3,allow:[1,2,3,4],= rdepend:1,origin:3,help:[2,4],over:3,rootf:3,dynam:[2,3,4],paramet:1,get_= best_visible_pkg:1,cowsai:2,main:3,sock_seqpacket:3,"return":[1,3],thei:1= ,handl:1,auto:[2,4],"0x19e7b18":[],introd uct:[0,2],name:[1,3],mode:[2,4],each:1,found:[1,2,3,4],domain:3,idea:3,l= ogf:[0,1],connect:3,todo:2,event:[0,1,2,3,4],variabl:3,network:3,content:= 0,got:3,lib64:3,believ:3,dictionari:1,ask:3,bash:[1,2],thread:3,launch:[1= ,2,3,4],get_list_of_merged_packag:1,filter:1,registrar:3,getfsev:1,first:= 1,oper:1,misc:[2,4],open:[1,3],gpl:2,start:1,unknown:[1,2,3,4],licens:2,s= ystem:[1,2,3,4],messag:[2,3,4],scheme:3,low:1,option:[1,2,4],tool:[2,4],c= opi:3,postrm:3,pars:1,than:[2,4],portage_util:1,get_merge_list:1,charact:= 3,bridg:1,pre:[2,4],"function":[1,3],linker:3,argument:1,raw:1,tabl:[0,2]= ,packag:[1,2,3,4],accuraci:3,note:[2,3,4],also:[1,2,3,4],build:[2,3,4],wh= ich:1,analysi:[0,2,3,4],loggabl:3,normal:[2,4],who:[2,4],most:[2,4],build= tim:[2,4],hooklib:[0,1,2,3,4],phase:3,"class":1,don:[2,4],portage_misc_fu= nct:1,deni:[2,3,4],runtim:[2,3,4],hungri:1,show:[2,4],verbos:[2,4],pkg:1,= find:1,xml:3,current:1,onli:[2,4],slow:[2,4],activ:2,dep_typ:1,should:1,p= arse_emerge_arg:1,analys:3,unus:3,variou: 1,get:[1,2,4],increas:3,requir:[2,4],enabl:[2,4],contain:1,userspac:3,sh= m:3,kernel:[2,4],set:1,packet:3,see:3,sec:3,result:3,arg:1,fail:1,best:1,= statu:[0,2],between:1,"import":[2,4],approach:[0,1,2,3,4],kei:1,get_all_p= ackages_fil:1,xchat:[2,4],both:1,fstracer:[0,1],delimit:3,logic:1,futher:= [0,3],mani:[2,4],lsof:2,load:[2,3,4],color:[2,4],overview:[0,2],linux:3,r= eciev:3,fusef:[0,1,2,3,4],empti:1,implicit:[1,3],much:3,recomend:[2,4],pr= otect:3,ani:[1,2,3,4],look:1,stagenam:3,gnu:2,servic:1,defin:[2,4],"while= ":[2,3,4],behavior:3,error:3,non:[2,4],synopsi:4,develop:2,perform:[2,3,4= ],make:2,belong:1,same:3,read:[1,2,3,4],document:0,fuse:[2,3,4],user:[2,4= ],extern:3,portag:[1,3],macro:[2,4],builder:[2,4],exampl:[0,1,2,4],comman= d:[2,4],thi:[1,2,3,4],filesystem:3,usual:[2,3,4],execut:3,cut:3,"0x1b2bc8= 0":1,desktop:3,els:3,take:[1,2,3,4],filterproc:1,format:3,libc:3,big:[2,4= ],recurs:1,success:1,nocolor:[2,4],output:[2,4],page:2,often:3,intern:[0,= 1,3],successfulli:1,librari:[2,3,4],tmp:3 ,autodep:[0,2,4],exit:[2,4],overlai:2,proc:3,run:[0,2,3],starttim:1,x11:= [2,4],portage_api:1,stage:[1,2,3,4],about:3,socket:3,block:[1,2,3,4],merg= :1,log:[1,2,4],wai:3,errno:3,strict:[2,4],includ:3,"var":3,overhead:[2,4]= ,fork:3,unexpect:3,tupl:1,atom:1,"true":1,"default":[1,2,4],creat:3,dure:= [2,4],parser:1,doesn:1,file:[0,1,2,3,4],work:[0,1,3],check:3,emergearg:1,= acloc:3,when:[2,3,4],detail:3,field:3,other:3,getpackagesbyfil:1,get_syst= em_packages_list:1,releas:2,directori:3,reliabl:[2,4],descript:4,rule:3,d= epth:1,emerg:[1,2,4],potenti:[2,4],time:[1,2,3,4],profil:3},objtypes:{"0"= :"std:option","1":"py:module","2":"py:method","3":"py:function","4":"py:c= lass"},titles:["Autodep’s documentation","API","Introduction","Inte= rnals","USER COMMANDS"],objnames:{"0":"option","1":"Python module","2":"P= ython method","3":"Python function","4":"Python class"},filenames:["index= ","api","intro","architecture","man"]}) \ No newline at end of file diff --git a/docs/build/man/autodep.1 b/docs/build/man/autodep.1 index da9aa10..b338c58 100644 --- a/docs/build/man/autodep.1 +++ b/docs/build/man/autodep.1 @@ -1,4 +1,4 @@ -.TH "AUTODEP" "1" "August 03, 2011" "0.1" "Autodep" +.TH "AUTODEP" "1" "August 04, 2011" "0.1" "Autodep" .SH NAME autodep \- auto dependency builder for Gentoo . diff --git a/docs/source/api.rst b/docs/source/api.rst index 4a0a626..1397732 100644 --- a/docs/source/api.rst +++ b/docs/source/api.rst @@ -19,4 +19,3 @@ This package contains modules which works with the Port= age system :members: .. automodule:: package_utils.portage_misc_functions :members: - diff --git a/src/autodep/autodep b/src/autodep/autodep index 751dca7..1152180 100755 --- a/src/autodep/autodep +++ b/src/autodep/autodep @@ -41,7 +41,8 @@ def parse_args(): const=3D"fusefs", help=3D"use fuse logging approach(slow, but reliable)= ") args_parser.set_defaults(approach=3D"hooklib") =20 - args_parser.epilog=3D"Example: %s -b lsof,cowsay emerge bash" % (os.pa= th.basename(sys.argv[0])) + args_parser.epilog=3D"Example: %s -blockpkgs lsof,cowsay emerge bash" = % ( + os.path.basename(sys.argv[0])) args_parser.disable_interspersed_args() (options, args) =3D args_parser.parse_args() if len(args)=3D=3D0: @@ -56,20 +57,27 @@ def init_environment(): =20 return portage_api, system_packages =20 -def init_runtime_vars(options,args): +def init_runtime_vars(portage_api, options,args): runtime_vars=3D{} # This is here mainly for grouping. We are trying to= =20 # get as much data about an environment as possible =20 runtime_vars["starttime"]=3Dint(time.time()) =20 # trivial check for emerge proccess - if args[0]=3D=3D"emerge": + if os.path.basename(args[0])=3D=3D"emerge": runtime_vars["is_emerge"]=3DTrue emergeaction ,emergeopts, emergefiles=3Dportage_api.parse_emerge_args(a= rgs[1:]) runtime_vars["raw_emerge_parameters"]=3Dargs[1:]=09 runtime_vars["emerge_parameters"]=3D(emergeaction ,emergeopts, emergefi= les) + runtime_vars["mergelist"]=3Dportage_api.get_merge_list( + runtime_vars["raw_emerge_parameters"]) + if len(emergefiles)>1: print "Please, install packages one by one to get more accurate repor= ts" + + if len(runtime_vars["mergelist"])=3D=3D0: + print "No packages will be installed or there is an error with counti= ng" + else: runtime_vars["is_emerge"]=3DFalse =20 @@ -94,9 +102,9 @@ def get_filter_function(options,system_packages,portag= e_api): def filter(eventname,filename,stage): return not filename in files_to_block return filter - elif options.strict_block and options.packages: - print "You can't use --block and --blockpkgs options togeter\n" - exit(1) + #elif options.strict_block and options.packages: + #print "You can't use --block and --blockpkgs options togeter\n" + #exit(1) elif options.strict_block: # this option is very strict # because blocking logic is complex print "Building a list of files to block. This may take some time" @@ -111,16 +119,15 @@ def get_filter_function(options,system_packages,por= tage_api): if len(emergefiles)>1: print "You can't install several packages with option -b" exit(1) - mergelist=3Dportage_api.get_merge_list(runtime_vars["raw_emerge_param= eters"]) - if len(mergelist)!=3D1: - print "You can't install several packages with option -b" - print "Emerge tried to install several packages: %s" % mergelist - print "You can force emerge to merge a package without any other " \ - "packages with emerge --nodeps option or you can install these " \ + if len(runtime_vars["mergelist"])!=3D1: + print "You can't install several packages with option -b." + print "Emerge tried to install several packages: %s. " % runtime_vars[= "mergelist"] + print "You can force emerge to merge a package wit hout any other "\ + "packages with emerge --nodeps option or you can install these "\ "packages first" =20 exit(1) - pkg=3Dmergelist[0] + pkg=3Druntime_vars["mergelist"][0] depslist=3Dlist(portage_api.get_deps(pkg)) allowedpkgs+=3Ddepslist else: @@ -155,7 +162,7 @@ def get_filter_function(options,system_packages,porta= ge_api): =09 portage_api, system_packages=3Dinit_environment() options,args=3Dparse_args() -runtime_vars=3Dinit_runtime_vars(options,args) +runtime_vars=3Dinit_runtime_vars(portage_api,options,args) =20 color_printer=3Dcolorize_output.color_printer(not options.nocolor) =20 @@ -168,24 +175,35 @@ print "Program finished, analyzing dependencies" =20 if runtime_vars["is_emerge"]: # try to get information about packages merged sucessfully - try: - pkgs=3Dportage_log_parser.get_list_of_merged_packages( - runtime_vars["starttime"],runtime_vars["endtime"] - ) - if len(pkgs) > 1: - print "Several packages were installed. The report will be inaccurate= " - elif len(pkgs)=3D=3D0: - print "None packages have been installed sucessfully. The report will= be inaccurate" - runtime_vars["pkgs_installed"]=3Dpkgs - runtime_vars["deps_buildtime"]=3D[] - runtime_vars["deps_all"]=3D[] - for pkg in pkgs: - runtime_vars["deps_buildtime"]+=3Dportage_api.get_deps(pkg,["DEPEND"]= ) - runtime_vars["deps_all"]+=3Dportage_api.get_deps(pkg,["DEPEND","RDEPE= ND"]) - except: - print "Non-critical error while parsing logfile of emerge" - runtime_vars["is_emerge"]=3DFalse # shutting down all emerge handling l= ogic - pass + #try: + runtime_vars["deps_all"]=3Dset([]) + runtime_vars["deps_buildtime"]=3Dset([]) + for pkg in runtime_vars["mergelist"]: + runtime_vars["deps_all"]=3Druntime_vars["deps_all"].union( + portage_api.get_deps(pkg,["DEPEND", "RDEPEND"])) + runtime_vars["deps_buildtime"]=3Druntime_vars["deps_buildtime"].union( + portage_api.get_dep(pkg,["DEPEND"])) + =20 + runtime_vars["deps_portage"]=3Dportage_api.get_deps('portage',["DEPEND= ", "RDEPEND"]) + =20 + =20 + #pkgs=3Dportage_log_parser.get_list_of_merged_packages( + # runtime_vars["starttime"],runtime_vars["endtime"] + # ) + #if len(pkgs) > 1: + # print "Several packages were installed. The report will be inaccurat= e" + #elif len(pkgs)=3D=3D0: + # print "None packages have been installed sucessfully. The report wil= l be inaccurate" + #runtime_vars["pkgs_installed"]=3Dpkgs + #runtime_vars["deps_buildtime"]=3D[] + #runtime_vars["deps_all"]=3D[] + #for pkg in pkgs: + # runtime_vars["deps_buildtime"]+=3Dportage_api.get_deps(pkg,["DEPEND"= ]) + # runtime_vars["deps_all"]+=3Dportage_api.get_deps(pkg,["DEPEND","RDEP= END"]) + #except: + #print "Non-critical error while parsing logfile of emerge" + #runtime_vars["is_emerge"]=3DFalse # shutting down all emerge handling = logic + #pass =20 # get unique filenames filenames=3Dset() @@ -259,8 +277,9 @@ for package in sorted(packagesinfo): if package in system_packages and not options.verbose: continue =20 - is_attention_pkg=3Druntime_vars["is_emerge"] and package not in runtim= e_vars["deps_all"] - =20 + is_pkg_in_dep=3Druntime_vars["is_emerge"] and package in runtime_vars[= "deps_all"] + is_pkg_in_portage_dep=3Druntime_vars["is_emerge"] and package in runti= me_vars["deps_portage"] + is_pkg_python=3D"dev-lang/python" in package =20 stages=3D[] for stage in sorted(packagesinfo[package].keys(), key=3Dstagesorder.ge= t): @@ -274,13 +293,29 @@ for package in sorted(packagesinfo): if len(packagesinfo[package][stage][filename]["found"])!=3D0: was_readed,was_writed=3Dpackagesinfo[package][stage][filename]["foun= d"] if not filename in filenames: - filenames[filename]=3D[was_readed,was_writed] + filenames[filename]=3D['ok',was_readed,was_writed] + else: + status, old_was_readed, old_was_writed=3Dfilenames[filename] + filenames[filename]=3D[ + 'ok',old_was_readed | was_readed, old_was_writed | was_writed=20 + ] + if len(packagesinfo[package][stage][filename]["notfound"])!=3D0: + was_notfound,was_blocked=3Dpackagesinfo[package][stage][filename]["n= otfound"] + if not filename in filenames: + filenames[filename]=3D['err',was_notfound,was_blocked] else: - old_was_readed, old_was_writed=3Dfilenames[filename] - filenames[filename]=3D[old_was_readed | was_readed, old_was_writed | = was_writed ] + status, old_was_notfound, old_was_blocked=3Dfilenames[filename] + filenames[filename]=3D[ + 'err',old_was_notfound | was_notfound, old_was_blocked | was_blocke= d=20 + ] + =20 =20 - if not is_attention_pkg: + if not runtime_vars["is_emerge"] or is_pkg_in_dep: color_printer.printmsg("text","[OK]") + elif is_pkg_in_portage_dep: + color_printer.printmsg("text","[PORTAGE DEP]") =20 + elif is_pkg_python: + color_printer.printmsg("text","[INTERPRETER]") =20 elif not events_analysis.is_package_useful(package,stages,filenames.key= s()): color_printer.printmsg("text","[LIKELY OK]") else: @@ -292,10 +327,14 @@ for package in sorted(packagesinfo): =20 # this is here for readability action=3D{ - (False,False):"accessed", - (True,False):"readed", - (False,True):"writed", - (True,True):"readed and writed" + ('ok',False,False):"accessed", + ('ok',True,False):"readed", + ('ok',False,True):"writed", + ('ok',True,True):"readed and writed", + ('err',False,False):"other error", + ('err',True,False):"not found", + ('err',False,True):"blocked", + ('err',True,True):"not found and blocked" } =09 filescounter=3D0 diff --git a/src/autodep/helpers/events_analysis.py b/src/autodep/helpers= /events_analysis.py index ed5792b..eba903a 100644 --- a/src/autodep/helpers/events_analysis.py +++ b/src/autodep/helpers/events_analysis.py @@ -32,7 +32,7 @@ def is_package_useful(pkg,stages,files): continue =09 # test 1: package is not useful if all files are *.desktop or *.xml or = *.m4 =09 - if not (f.endswith(".desktop") or f.endswith(".xml") or f.endswith(".m4= ")): + if not (f.endswith(".desktop") or f.endswith(".xml") or f.endswith(".m4= ") or f.endswith(".pc")): break else: return False # we get here if cycle ends not with break diff --git a/src/autodep/package_utils/portage_misc_functions.py b/src/au= todep/package_utils/portage_misc_functions.py index 6afe2c3..95c4ce4 100644 --- a/src/autodep/package_utils/portage_misc_functions.py +++ b/src/autodep/package_utils/portage_misc_functions.py @@ -10,9 +10,9 @@ from _emerge.main import parse_opts =20 # TODO: check if actions always here try: - from _emerge import actions + from _emerge import actions, Package from _emerge.create_depgraph_params import create_depgraph_params - from _emerge.depgraph import backtrack_depgraph, depgraph + from _emerge.depgraph import backtrack_depgraph, resume_depgraph, depg= raph except ImportError, Err: # non-critical, just print warning(TODO: strerr= ) print "Error while loading modules: %s" % Err.message =20 @@ -20,8 +20,13 @@ class portage_api: """ class for accessing the portage api """ def __init__(self): """ test """ - self.settings=3Dportage.config(clone=3Dportage.settings) - self.vartree=3Dportage.db[portage.root]['vartree'] + settings,trees,mtimedb=3Dactions.load_emerge_config() + + #import pdb; pdb.set_trace() + self.settings=3Dsettings + self.trees=3Dtrees + self.mtimedb=3Dmtimedb + self.vartree=3Dtrees[portage.root]['vartree'] self.vardb=3Dself.vartree.dbapi self.portdb=3Dportage.portdb self.metadata_keys =3D [k for k in portage.auxdbkeys if not k.startswit= h("UNUSED_")] @@ -39,6 +44,7 @@ class portage_api: except: return '' =20 + # trying to repeat action_build(...) logic in _emerge/actions.py def get_merge_list(self,emergeargs): """ Gets list of packages that emerge with emergeargs-arguments will merge @@ -48,20 +54,46 @@ class portage_api: :param emergeargs: list of raw args of emerge, for example, ['-1','bash= '] =09 """ -=09 + try: - settings,trees,mtimedb=3Dactions.load_emerge_config() action, opts, files =3D parse_opts(emergeargs, silent=3DTrue) + + resume =3D False + if "--resume" in opts and \ + ("resume" in self.mtimedb or "resume_backup" in self.mtimedb): + resume =3D True + if "resume" not in self.mtimedb: + self.mtimedb["resume"] =3D self.mtimedb["resume_backup"] + # "opts" is a list for backward compatibility. + resume_opts =3D self.mtimedb["resume"].get("myopts", []) + if isinstance(resume_opts, list): + resume_opts =3D dict((k,True) for k in resume_opts) + for opt in ("--ask", "--color", "--skipfirst", "--tree"): + resume_opts.pop(opt, None) + + # Current options always override resume_opts. + resume_opts.update(opts) + opts.clear() + opts.update(resume_opts) + =20 + =20 params=3Dcreate_depgraph_params(opts,action) =20 - success, mydepgraph, favorites =3D backtrack_depgraph( - settings, trees, opts, params, action, files, None) - if not success: - return [] + if resume: + success, mydepgraph, dropped_tasks =3D resume_depgraph( + self.settings, self.trees, self.mtimedb, opts, params, None) + if not success: + return [] + else: + success, mydepgraph, favorites =3D backtrack_depgraph( + self.settings, self.trees, opts, params, action, files, None) + if not success: + return [] =20 ret=3D[] for pkg in mydepgraph.altlist(): - ret.append(pkg.cpv) + if type(pkg) is Package.Package: + ret.append(pkg.cpv) return ret =20 except: diff --git a/src/autodep/tests/all_tests.py b/src/autodep/tests/all_tests= .py index 3542ca8..0d52de7 100644 --- a/src/autodep/tests/all_tests.py +++ b/src/autodep/tests/all_tests.py @@ -2,7 +2,7 @@ import glob import unittest =20 # change it if you don't want get all tests runned -testsglob=3D'tests/test_*.py' +testsglob=3D'tests/test_p*.py' =20 def create_test_suite(): test_file_strings =3D glob.glob(testsglob)