Lines 39-79
Link Here
|
39 |
"regen", "rsync", "search", "sync", "system", "unmerge", "world" |
39 |
"regen", "rsync", "search", "sync", "system", "unmerge", "world" |
40 |
] |
40 |
] |
41 |
options=[ |
41 |
options=[ |
42 |
"--buildpkg", "--buildpkgonly", |
42 |
"--build-package", "--build-package-only", |
43 |
"--changelog", "--columns", |
43 |
"--changelog", "--columns", |
44 |
"--debug", "--deep", |
44 |
"--debug", "--deep", |
45 |
"--digest", |
45 |
"--digest", |
46 |
"--emptytree", "--fetchonly", |
46 |
"--empty-tree", "--fetch-only", |
47 |
"--getbinpkg", "--getbinpkgonly", |
47 |
"--get-binary-package", "--get-binary-package-only", |
48 |
"--help", "--noconfmem", |
48 |
"--help", "--forget-configuration", |
49 |
"--nodeps", "--noreplace", |
49 |
"--no-dependencies", "--no-replace", |
50 |
"--nospinner", "--oneshot", |
50 |
"--no-spinner", "--once-only", |
51 |
"--onlydeps", "--pretend", |
51 |
"--dependencies-only", "--pretend", |
52 |
"--quiet", "--resume", |
52 |
"--quiet", "--resume", |
53 |
"--searchdesc", "--selective", |
53 |
"--search-description", "--selective", |
54 |
"--skipfirst", |
54 |
"--skip-first", |
55 |
"--update", "--upgradeonly", |
55 |
"--update", "--upgrade-only", |
56 |
"--usepkg", "--usepkgonly", |
56 |
"--use-package", "--use-package-only", |
57 |
"--verbose", "--version" |
57 |
"--verbose", "--version" |
58 |
] |
58 |
] |
59 |
|
59 |
|
60 |
shortmapping={ |
60 |
shortmapping={ |
61 |
"b":"--buildpkg", "B":"--buildpkgonly", |
61 |
"b":"--build-package", "B":"--build-package-only", |
62 |
"c":"--clean", "C":"--unmerge", |
62 |
"c":"--clean", "C":"--unmerge", |
63 |
"d":"--debug", "D":"--deep", |
63 |
"d":"--debug", "D":"--deep", |
64 |
"e":"--emptytree", |
64 |
"e":"--empty-tree", |
65 |
"f":"--fetchonly", |
65 |
"f":"--fetch-only", |
66 |
"g":"--getbinpkg", "G":"--getbinpkgonly", |
66 |
"g":"--get-binary-package", "G":"--get-binary-package-only", |
67 |
"h":"--help", |
67 |
"h":"--help", |
68 |
"i":"--inject", |
68 |
"i":"--inject", |
69 |
"k":"--usepkg", "K":"--usepkgonly", |
69 |
"k":"--use-package", "K":"--use-package-only", |
70 |
"l":"--changelog", |
70 |
"l":"--changelog", |
71 |
"n":"--noreplace", |
71 |
"n":"--no-replace", |
72 |
"o":"--onlydeps", "O":"--nodeps", |
72 |
"o":"--dependencies-only", "O":"--no-dependencies", |
73 |
"p":"--pretend", "P":"--prune", |
73 |
"p":"--pretend", "P":"--prune", |
74 |
"q":"--quiet", |
74 |
"q":"--quiet", |
75 |
"s":"--search", "S":"--searchdesc", |
75 |
"s":"--search", "S":"--search-description", |
76 |
"u":"--update", "U":"--upgradeonly", |
76 |
"u":"--update", "U":"--upgrade-only", |
77 |
"v":"--verbose", "V":"--version" |
77 |
"v":"--verbose", "V":"--version" |
78 |
} |
78 |
} |
79 |
|
79 |
|
Lines 153-183
Link Here
|
153 |
sys.exit(1) |
153 |
sys.exit(1) |
154 |
|
154 |
|
155 |
# Always create packages if FEATURES=buildpkg |
155 |
# Always create packages if FEATURES=buildpkg |
156 |
# Imply --buildpkg if --buildpkgonly |
156 |
# Imply --build-package if --build-package-only |
157 |
if ("buildpkg" in portage.features) or ("--buildpkgonly" in myopts): |
157 |
if ("buildpkg" in portage.features) or ("--build-package-only" in myopts): |
158 |
if "--buildpkg" not in myopts: |
158 |
if "--build-package" not in myopts: |
159 |
myopts.append("--buildpkg") |
159 |
myopts.append("--build-package") |
160 |
|
160 |
|
161 |
# Also allow -S to invoke search action (-sS) |
161 |
# Also allow -S to invoke search action (-sS) |
162 |
if ("--searchdesc" in myopts) and (not myaction): |
162 |
if ("--search-description" in myopts) and (not myaction): |
163 |
myaction = "search" |
163 |
myaction = "search" |
164 |
|
164 |
|
165 |
if ("--getbinpkgonly" in myopts) and not ("--usepkgonly" in myopts): |
165 |
if ("--get-binary-package-only" in myopts) and not ("--use-package-only" in myopts): |
166 |
myopts.append("--usepkgonly") |
166 |
myopts.append("--use-package-only") |
167 |
|
167 |
|
168 |
if ("--getbinpkgonly" in myopts) and not ("--getbinpkg" in myopts): |
168 |
if ("--get-binary-package-only" in myopts) and not ("--get-binary-package" in myopts): |
169 |
myopts.append("--getbinpkg") |
169 |
myopts.append("--get-binary-package") |
170 |
|
170 |
|
171 |
if ("--getbinpkg" in myopts) and not ("--usepkg" in myopts): |
171 |
if ("--get-binary-package" in myopts) and not ("--use-package" in myopts): |
172 |
myopts.append("--usepkg") |
172 |
myopts.append("--use-package") |
173 |
|
173 |
|
174 |
# Also allow -K to apply --usepkg/-k |
174 |
# Also allow -K to apply --use-package/-k |
175 |
if ("--usepkgonly" in myopts) and not ("--usepkg" in myopts): |
175 |
if ("--use-package-only" in myopts) and not ("--use-package" in myopts): |
176 |
myopts.append("--usepkg") |
176 |
myopts.append("--use-package") |
177 |
|
177 |
|
178 |
# Also allow -U to apply --update/-u |
178 |
# Also allow -U to apply --update/-u |
179 |
if ("--upgradeonly" in myopts) and not ("--update" in myopts): |
179 |
if ("--upgrade-only" in myopts) and not ("--update" in myopts): |
180 |
print ">>> --upgradeonly implies --update... adding --update to options." |
180 |
print ">>> --upgrade-only implies --update... adding --update to options." |
181 |
myopts.append("--update") |
181 |
myopts.append("--update") |
182 |
|
182 |
|
183 |
# Also allow -l to apply --pretend/-p |
183 |
# Also allow -l to apply --pretend/-p |
Lines 186-192
Link Here
|
186 |
myopts.append("--pretend") |
186 |
myopts.append("--pretend") |
187 |
|
187 |
|
188 |
# Set so that configs will be merged regardless of remembered status |
188 |
# Set so that configs will be merged regardless of remembered status |
189 |
if ("--noconfmem" in myopts): |
189 |
if ("--forget-configuration" in myopts): |
190 |
portage.settings["NOCONFMEM"]="1" |
190 |
portage.settings["NOCONFMEM"]="1" |
191 |
|
191 |
|
192 |
# Set various debug markers... They should be merged somehow. |
192 |
# Set various debug markers... They should be merged somehow. |
Lines 317-328
Link Here
|
317 |
sub=[] |
317 |
sub=[] |
318 |
if "--update" in myopts: |
318 |
if "--update" in myopts: |
319 |
add.extend(["selective","empty"]) |
319 |
add.extend(["selective","empty"]) |
320 |
if "--emptytree" in myopts: |
320 |
if "--empty-tree" in myopts: |
321 |
add.extend(["empty"]) |
321 |
add.extend(["empty"]) |
322 |
sub.extend(["selective"]) |
322 |
sub.extend(["selective"]) |
323 |
if "--nodeps" in myopts: |
323 |
if "--no-dependencies" in myopts: |
324 |
sub.extend(["recurse"]) |
324 |
sub.extend(["recurse"]) |
325 |
if "--noreplace" in myopts: |
325 |
if "--no-replace" in myopts: |
326 |
add.extend(["selective"]) |
326 |
add.extend(["selective"]) |
327 |
if "--deep" in myopts: |
327 |
if "--deep" in myopts: |
328 |
add.extend(["deep"]) |
328 |
add.extend(["deep"]) |
Lines 342-348
Link Here
|
342 |
|
342 |
|
343 |
def update_spinner(): |
343 |
def update_spinner(): |
344 |
global spinner, spinpos |
344 |
global spinner, spinpos |
345 |
if sys.stdout.isatty() and not ("--nospinner" in myopts): |
345 |
if sys.stdout.isatty() and not ("--no-spinner" in myopts): |
346 |
sys.stdout.write("\b"+spinner[spinpos]) |
346 |
sys.stdout.write("\b"+spinner[spinpos]) |
347 |
spinpos=(spinpos+1)%8 |
347 |
spinpos=(spinpos+1)%8 |
348 |
sys.stdout.flush() |
348 |
sys.stdout.flush() |
Lines 370-376
Link Here
|
370 |
global myopts |
370 |
global myopts |
371 |
self.searchkey=searchkey |
371 |
self.searchkey=searchkey |
372 |
self.packagematches = [] |
372 |
self.packagematches = [] |
373 |
if "--searchdesc" in myopts: |
373 |
if "--search-description" in myopts: |
374 |
self.searchdesc=1 |
374 |
self.searchdesc=1 |
375 |
self.matches = {"pkg":[], "desc":[]} |
375 |
self.matches = {"pkg":[], "desc":[]} |
376 |
else: |
376 |
else: |
Lines 563-571
Link Here
|
563 |
else: |
563 |
else: |
564 |
self.mydbapi[portage.root]=portage.db[portage.root]["vartree"].dbapi |
564 |
self.mydbapi[portage.root]=portage.db[portage.root]["vartree"].dbapi |
565 |
|
565 |
|
566 |
if "--usepkg" in myopts: |
566 |
if "--use-package" in myopts: |
567 |
try: |
567 |
try: |
568 |
portage.db["/"]["bintree"].populate(("--getbinpkg" in myopts), ("--getbinpkgonly" in myopts)) |
568 |
portage.db["/"]["bintree"].populate(("--get-binary-package" in myopts), ("--get-binary-package-only" in myopts)) |
569 |
except ValueError, e: |
569 |
except ValueError, e: |
570 |
sys.stderr.write(red("!!! Failed to get all metadata: "+str(e)+"\n")) |
570 |
sys.stderr.write(red("!!! Failed to get all metadata: "+str(e)+"\n")) |
571 |
sys.exit(1) |
571 |
sys.exit(1) |
Lines 573-579
Link Here
|
573 |
def create(self,mybigkey,myparent=None,addme=1): |
573 |
def create(self,mybigkey,myparent=None,addme=1): |
574 |
"""creates the actual digraph of packages to merge. return 1 on success, 0 on failure |
574 |
"""creates the actual digraph of packages to merge. return 1 on success, 0 on failure |
575 |
mybigkey = specification of package to merge; myparent = parent package (one depending on me); |
575 |
mybigkey = specification of package to merge; myparent = parent package (one depending on me); |
576 |
addme = should I be added to the tree? (for the --onlydeps mode)""" |
576 |
addme = should I be added to the tree? (for the --dependencies-only mode)""" |
577 |
#stuff to add: |
577 |
#stuff to add: |
578 |
#SLOT-aware emerge |
578 |
#SLOT-aware emerge |
579 |
#IUSE-aware emerge |
579 |
#IUSE-aware emerge |
Lines 715-729
Link Here
|
715 |
sys.exit(1) |
715 |
sys.exit(1) |
716 |
mytbz2=xpak.tbz2(x) |
716 |
mytbz2=xpak.tbz2(x) |
717 |
mykey=mytbz2.getelements("CATEGORY")[0]+"/"+os.path.basename(x)[:-5] |
717 |
mykey=mytbz2.getelements("CATEGORY")[0]+"/"+os.path.basename(x)[:-5] |
718 |
if not self.create(["binary",portage.root,mykey],None,"--onlydeps" not in myopts): |
718 |
if not self.create(["binary",portage.root,mykey],None,"--dependencies-only" not in myopts): |
719 |
return (0,myfavorites) |
719 |
return (0,myfavorites) |
720 |
elif not "--oneshot" in myopts: |
720 |
elif not "--once-only" in myopts: |
721 |
myfavorites.append(mykey) |
721 |
myfavorites.append(mykey) |
722 |
elif x[-7:]==".ebuild": |
722 |
elif x[-7:]==".ebuild": |
723 |
mykey=os.path.basename(os.path.abspath(x+"/../.."))+"/"+os.path.basename(x)[:-7] |
723 |
mykey=os.path.basename(os.path.abspath(x+"/../.."))+"/"+os.path.basename(x)[:-7] |
724 |
if not self.create(["ebuild",portage.root,mykey],None,"--onlydeps" not in myopts): |
724 |
if not self.create(["ebuild",portage.root,mykey],None,"--dependencies-only" not in myopts): |
725 |
return (0,myfavorites) |
725 |
return (0,myfavorites) |
726 |
elif not "--oneshot" in myopts: |
726 |
elif not "--once-only" in myopts: |
727 |
myfavorites.append(mykey) |
727 |
myfavorites.append(mykey) |
728 |
else: |
728 |
else: |
729 |
mykey=portage.dep_expand(x,portage.portdb) |
729 |
mykey=portage.dep_expand(x,portage.portdb) |
Lines 737-747
Link Here
|
737 |
|
737 |
|
738 |
if not self.mysd: |
738 |
if not self.mysd: |
739 |
return (0,myfavorites) |
739 |
return (0,myfavorites) |
740 |
elif not "--oneshot" in myopts: |
740 |
elif not "--once-only" in myopts: |
741 |
myfavorites.append(mykey) |
741 |
myfavorites.append(mykey) |
742 |
|
742 |
|
743 |
self.missingbins=0 |
743 |
self.missingbins=0 |
744 |
if "--usepkgonly" in myopts: |
744 |
if "--use-package-only" in myopts: |
745 |
for x in self.digraph.dict.keys(): |
745 |
for x in self.digraph.dict.keys(): |
746 |
xs=string.split(x," ") |
746 |
xs=string.split(x," ") |
747 |
if (xs[0] != "binary") and (xs[3]=="merge"): |
747 |
if (xs[0] != "binary") and (xs[3]=="merge"): |
Lines 795-805
Link Here
|
795 |
else: |
795 |
else: |
796 |
#We are not processing a blocker but a normal dependency |
796 |
#We are not processing a blocker but a normal dependency |
797 |
myeb_pkg=None |
797 |
myeb_pkg=None |
798 |
if ("--usepkg" in myopts): |
798 |
if ("--use-package" in myopts): |
799 |
myeb_pkg=portage.db[portage.root]["bintree"].dep_bestmatch(x) |
799 |
myeb_pkg=portage.db[portage.root]["bintree"].dep_bestmatch(x) |
800 |
|
800 |
|
801 |
myeb=None |
801 |
myeb=None |
802 |
if ("--usepkgonly" not in myopts): |
802 |
if ("--use-package-only" not in myopts): |
803 |
myeb=portage.portdb.xmatch("bestmatch-visible",x) |
803 |
myeb=portage.portdb.xmatch("bestmatch-visible",x) |
804 |
|
804 |
|
805 |
if (not myeb) and (not myeb_pkg): |
805 |
if (not myeb) and (not myeb_pkg): |
Lines 811-817
Link Here
|
811 |
xfrom = '(dependency required by '+green('"'+myparent.split()[2]+'"')+red(' ['+myparent.split()[0]+"])") |
811 |
xfrom = '(dependency required by '+green('"'+myparent.split()[2]+'"')+red(' ['+myparent.split()[0]+"])") |
812 |
alleb=portage.portdb.xmatch("match-all",x) |
812 |
alleb=portage.portdb.xmatch("match-all",x) |
813 |
if alleb: |
813 |
if alleb: |
814 |
if "--usepkgonly" not in myopts: |
814 |
if "--use-package-only" not in myopts: |
815 |
print "\n!!! "+red("all ebuilds that could satisfy ")+green(xinfo)+red(" have been masked.") |
815 |
print "\n!!! "+red("all ebuilds that could satisfy ")+green(xinfo)+red(" have been masked.") |
816 |
if myparent: |
816 |
if myparent: |
817 |
print "!!! "+red(xfrom) |
817 |
print "!!! "+red(xfrom) |
Lines 837-843
Link Here
|
837 |
else: |
837 |
else: |
838 |
myeb = None |
838 |
myeb = None |
839 |
|
839 |
|
840 |
if "--upgradeonly" in myopts: |
840 |
if "--upgrade-only" in myopts: |
841 |
# Check that there isn't a newer version of this package already installed |
841 |
# Check that there isn't a newer version of this package already installed |
842 |
cand=self.is_newer_ver_installed(myroot,x,myeb) |
842 |
cand=self.is_newer_ver_installed(myroot,x,myeb) |
843 |
if cand: |
843 |
if cand: |
Lines 851-857
Link Here
|
851 |
sys.stderr.write("!!! Confused... Don't know what I'm using for dependency info. :(\n") |
851 |
sys.stderr.write("!!! Confused... Don't know what I'm using for dependency info. :(\n") |
852 |
sys.exit(1) |
852 |
sys.exit(1) |
853 |
|
853 |
|
854 |
#if "--usepkg" in myopts: |
854 |
#if "--use-package" in myopts: |
855 |
# #If we want to use packages, see if we have a pre-built one... |
855 |
# #If we want to use packages, see if we have a pre-built one... |
856 |
# mypk=portage.db["/"]["bintree"].dbapi.match(x) |
856 |
# mypk=portage.db["/"]["bintree"].dbapi.match(x) |
857 |
# if myeb in mypk: |
857 |
# if myeb in mypk: |
Lines 867-874
Link Here
|
867 |
return 0 |
867 |
return 0 |
868 |
else: |
868 |
else: |
869 |
#if mysource is not set, then we are a command-line dependency and should not be added |
869 |
#if mysource is not set, then we are a command-line dependency and should not be added |
870 |
#if --onlydeps is specified. |
870 |
#if --dependencies-only is specified. |
871 |
if not self.create(myk,myparent,"--onlydeps" not in myopts): |
871 |
if not self.create(myk,myparent,"--dependencies-only" not in myopts): |
872 |
return 0 |
872 |
return 0 |
873 |
|
873 |
|
874 |
if "--debug" in myopts: |
874 |
if "--debug" in myopts: |
Lines 940-957
Link Here
|
940 |
#this is an unavailable world entry; just continue |
940 |
#this is an unavailable world entry; just continue |
941 |
continue |
941 |
continue |
942 |
|
942 |
|
943 |
if "--upgradeonly" in myopts: |
943 |
if "--upgrade-only" in myopts: |
944 |
cand=self.is_newer_ver_installed(portage.root,mydep,myeb) |
944 |
cand=self.is_newer_ver_installed(portage.root,mydep,myeb) |
945 |
if cand: |
945 |
if cand: |
946 |
myeb=cand |
946 |
myeb=cand |
947 |
|
947 |
|
948 |
#THIS NEXT BUNCH OF CODE NEEDS TO BE REPLACED TO SUPPORT WORLD ANTI-DEPS |
948 |
#THIS NEXT BUNCH OF CODE NEEDS TO BE REPLACED TO SUPPORT WORLD ANTI-DEPS |
949 |
#if mydep2[0]=="!":, etc. |
949 |
#if mydep2[0]=="!":, etc. |
950 |
if "--usepkg" in myopts: |
950 |
if "--use-package" in myopts: |
951 |
mypk=portage.db[portage.root]["bintree"].dep_bestmatch(mydep) |
951 |
mypk=portage.db[portage.root]["bintree"].dep_bestmatch(mydep) |
952 |
if myeb==mypk: |
952 |
if myeb==mypk: |
953 |
myk=["binary",portage.root,mypk] |
953 |
myk=["binary",portage.root,mypk] |
954 |
elif "--usepkgonly" in myopts: |
954 |
elif "--use-package-only" in myopts: |
955 |
self.missingbins += [myeb] |
955 |
self.missingbins += [myeb] |
956 |
myk=["binary",portage.root,myeb] |
956 |
myk=["binary",portage.root,myeb] |
957 |
#print "mypk:",mypk |
957 |
#print "mypk:",mypk |
Lines 987-993
Link Here
|
987 |
print |
987 |
print |
988 |
sys.exit(1) |
988 |
sys.exit(1) |
989 |
|
989 |
|
990 |
if "--usepkg" in myopts: |
990 |
if "--use-package" in myopts: |
991 |
mypk=portage.db[portage.root]["bintree"].dep_bestmatch(mydep) |
991 |
mypk=portage.db[portage.root]["bintree"].dep_bestmatch(mydep) |
992 |
if myeb==mypk: |
992 |
if myeb==mypk: |
993 |
myk="binary "+portage.root+" "+mypk |
993 |
myk="binary "+portage.root+" "+mypk |
Lines 1028-1036
Link Here
|
1028 |
#we need to use "--emptrytree" testing here rather than "empty" param testing because "empty" |
1028 |
#we need to use "--emptrytree" testing here rather than "empty" param testing because "empty" |
1029 |
#param is used for -u, where you still *do* want to see when something is being upgraded. |
1029 |
#param is used for -u, where you still *do* want to see when something is being upgraded. |
1030 |
myoldbest="" |
1030 |
myoldbest="" |
1031 |
if (not "--emptytree" in myopts) and portage.db[x[1]]["vartree"].exists_specific(x[2]): |
1031 |
if (not "--empty-tree" in myopts) and portage.db[x[1]]["vartree"].exists_specific(x[2]): |
1032 |
addl=" "+yellow("R")+fetch+" " |
1032 |
addl=" "+yellow("R")+fetch+" " |
1033 |
elif (not "--emptytree" in myopts) and portage.db[x[1]]["vartree"].exists_specific_cat(x[2]): |
1033 |
elif (not "--empty-tree" in myopts) and portage.db[x[1]]["vartree"].exists_specific_cat(x[2]): |
1034 |
myoldbest=portage.best(portage.db[x[1]]["vartree"].dbapi.match(portage.pkgsplit(x[2])[0])) |
1034 |
myoldbest=portage.best(portage.db[x[1]]["vartree"].dbapi.match(portage.pkgsplit(x[2])[0])) |
1035 |
|
1035 |
|
1036 |
try: |
1036 |
try: |
Lines 1113-1119
Link Here
|
1113 |
mysplit=portage.pkgsplit(x[2]) |
1113 |
mysplit=portage.pkgsplit(x[2]) |
1114 |
# XXX mysplit _can_ be None.... Why? |
1114 |
# XXX mysplit _can_ be None.... Why? |
1115 |
if mysplit and (len(mysplit)==3): |
1115 |
if mysplit and (len(mysplit)==3): |
1116 |
if "--emptytree" not in myopts: |
1116 |
if "--empty-tree" not in myopts: |
1117 |
if mysplit[0]=="sys-apps/portage": |
1117 |
if mysplit[0]=="sys-apps/portage": |
1118 |
if mysplit[1]+mysplit[2]!=portage.VERSION: |
1118 |
if mysplit[1]+mysplit[2]!=portage.VERSION: |
1119 |
if mylist.index(x)<len(mylist)-1: |
1119 |
if mylist.index(x)<len(mylist)-1: |
Lines 1123-1129
Link Here
|
1123 |
print darkgreen(" You may avoid the remerging of packages by updating portage on its own.") |
1123 |
print darkgreen(" You may avoid the remerging of packages by updating portage on its own.") |
1124 |
print |
1124 |
print |
1125 |
else: |
1125 |
else: |
1126 |
if mysplit[0]=="sys-apps/portage" and ("--emptytree" in myopts): |
1126 |
if mysplit[0]=="sys-apps/portage" and ("--empty-tree" in myopts): |
1127 |
if mysplit[1]+mysplit[2]!=portage.VERSION: |
1127 |
if mysplit[1]+mysplit[2]!=portage.VERSION: |
1128 |
print red("***")+" Please update portage to the above version before proceeding." |
1128 |
print red("***")+" Please update portage to the above version before proceeding." |
1129 |
print " Failure to do so may result in failed or improper merges." |
1129 |
print " Failure to do so may result in failed or improper merges." |
Lines 1191-1197
Link Here
|
1191 |
mymergelist=[] |
1191 |
mymergelist=[] |
1192 |
|
1192 |
|
1193 |
#check for blocking dependencies |
1193 |
#check for blocking dependencies |
1194 |
if ("--fetchonly" not in myopts) and ("--buildpkgonly" not in myopts): |
1194 |
if ("--fetch-only" not in myopts) and ("--build-package-only" not in myopts): |
1195 |
for x in mylist: |
1195 |
for x in mylist: |
1196 |
if x[0]=="blocks": |
1196 |
if x[0]=="blocks": |
1197 |
print "\n!!! Error: the "+x[2]+" package conflicts with another package." |
1197 |
print "\n!!! Error: the "+x[2]+" package conflicts with another package." |
Lines 1206-1212
Link Here
|
1206 |
print green("*** Resuming merge...") |
1206 |
print green("*** Resuming merge...") |
1207 |
emergelog(" *** Resuming merge...") |
1207 |
emergelog(" *** Resuming merge...") |
1208 |
mymergelist=portage.mtimedb["resume"]["mergelist"][:] |
1208 |
mymergelist=portage.mtimedb["resume"]["mergelist"][:] |
1209 |
if ("--skipfirst" in myopts) and mymergelist: |
1209 |
if ("--skip-first" in myopts) and mymergelist: |
1210 |
del mymergelist[0] |
1210 |
del mymergelist[0] |
1211 |
else: |
1211 |
else: |
1212 |
myfavs=portage.grabfile(portage.root+"var/cache/edb/world") |
1212 |
myfavs=portage.grabfile(portage.root+"var/cache/edb/world") |
Lines 1219-1231
Link Here
|
1219 |
else: |
1219 |
else: |
1220 |
# Add to the world file. Since we won't be able to later. |
1220 |
# Add to the world file. Since we won't be able to later. |
1221 |
myfavkey=portage.cpv_getkey(mylist[x][2]) |
1221 |
myfavkey=portage.cpv_getkey(mylist[x][2]) |
1222 |
if (not "--fetchonly" in myopts) and (myfavkey in favorites): |
1222 |
if (not "--fetch-only" in myopts) and (myfavkey in favorites): |
1223 |
#don't record if already in system profile or already recorded |
1223 |
#don't record if already in system profile or already recorded |
1224 |
if (not mysysdict.has_key(myfavkey)) and (not myfavdict.has_key(myfavkey)): |
1224 |
if (not mysysdict.has_key(myfavkey)) and (not myfavdict.has_key(myfavkey)): |
1225 |
#we don't have a favorites entry for this package yet; add one |
1225 |
#we don't have a favorites entry for this package yet; add one |
1226 |
myfavdict[myfavkey]=myfavkey |
1226 |
myfavdict[myfavkey]=myfavkey |
1227 |
print ">>> Recording",myfavkey,"in \"world\" favorites file..." |
1227 |
print ">>> Recording",myfavkey,"in \"world\" favorites file..." |
1228 |
if not "--fetchonly" in myopts: |
1228 |
if not "--fetch-only" in myopts: |
1229 |
portage.writedict(myfavdict,portage.root+"var/cache/edb/world",writekey=0) |
1229 |
portage.writedict(myfavdict,portage.root+"var/cache/edb/world",writekey=0) |
1230 |
|
1230 |
|
1231 |
portage.mtimedb["resume"]["mergelist"]=mymergelist[:] |
1231 |
portage.mtimedb["resume"]["mergelist"]=mymergelist[:] |
Lines 1251-1257
Link Here
|
1251 |
print ">>> emerge ("+str(mergecount)+" of "+str(len(mymergelist))+")",x[pkgindex],"to",x[1] |
1251 |
print ">>> emerge ("+str(mergecount)+" of "+str(len(mymergelist))+")",x[pkgindex],"to",x[1] |
1252 |
emergelog(" >>> emerge ("+str(mergecount)+" of "+str(len(mymergelist))+") "+x[pkgindex]+" to "+x[1]) |
1252 |
emergelog(" >>> emerge ("+str(mergecount)+" of "+str(len(mymergelist))+") "+x[pkgindex]+" to "+x[1]) |
1253 |
if x[0] in ["ebuild","blocks"]: |
1253 |
if x[0] in ["ebuild","blocks"]: |
1254 |
if ("--fetchonly" in myopts) or (x[0]=="blocks"): |
1254 |
if ("--fetch-only" in myopts) or (x[0]=="blocks"): |
1255 |
retval=portage.doebuild(y,"fetch",myroot,edebug,("--pretend" in myopts),fetchonly=1) |
1255 |
retval=portage.doebuild(y,"fetch",myroot,edebug,("--pretend" in myopts),fetchonly=1) |
1256 |
if retval: |
1256 |
if retval: |
1257 |
print |
1257 |
print |
Lines 1259-1265
Link Here
|
1259 |
print |
1259 |
print |
1260 |
returnme=1 |
1260 |
returnme=1 |
1261 |
continue |
1261 |
continue |
1262 |
elif "--buildpkg" in myopts: |
1262 |
elif "--build-package" in myopts: |
1263 |
#create pkg, then merge pkg |
1263 |
#create pkg, then merge pkg |
1264 |
emergelog(" === ("+str(mergecount)+" of "+str(len(mymergelist))+") Cleaning ("+y+")") |
1264 |
emergelog(" === ("+str(mergecount)+" of "+str(len(mymergelist))+") Cleaning ("+y+")") |
1265 |
retval=portage.doebuild(y,"clean",myroot,edebug) |
1265 |
retval=portage.doebuild(y,"clean",myroot,edebug) |
Lines 1271-1277
Link Here
|
1271 |
if retval: |
1271 |
if retval: |
1272 |
sys.exit(1) |
1272 |
sys.exit(1) |
1273 |
#dynamically update our database |
1273 |
#dynamically update our database |
1274 |
if "--buildpkgonly" not in myopts: |
1274 |
if "--build-package-only" not in myopts: |
1275 |
portage.db[portage.root]["bintree"].inject(x[2]) |
1275 |
portage.db[portage.root]["bintree"].inject(x[2]) |
1276 |
mytbz2=portage.db[portage.root]["bintree"].getname(x[2]) |
1276 |
mytbz2=portage.db[portage.root]["bintree"].getname(x[2]) |
1277 |
emergelog(" === ("+str(mergecount)+" of "+str(len(mymergelist))+") Merging ("+y+")") |
1277 |
emergelog(" === ("+str(mergecount)+" of "+str(len(mymergelist))+") Merging ("+y+")") |
Lines 1297-1306
Link Here
|
1297 |
if retval==None: |
1297 |
if retval==None: |
1298 |
sys.exit(1) |
1298 |
sys.exit(1) |
1299 |
#need to check for errors |
1299 |
#need to check for errors |
1300 |
if "--buildpkgonly" not in myopts: |
1300 |
if "--build-package-only" not in myopts: |
1301 |
portage.db[x[1]]["vartree"].inject(x[2]) |
1301 |
portage.db[x[1]]["vartree"].inject(x[2]) |
1302 |
myfavkey=portage.cpv_getkey(x[2]) |
1302 |
myfavkey=portage.cpv_getkey(x[2]) |
1303 |
if (not "--fetchonly" in myopts) and (myfavkey in favorites): |
1303 |
if (not "--fetch-only" in myopts) and (myfavkey in favorites): |
1304 |
myfavs=portage.grabfile(myroot+"var/cache/edb/world") |
1304 |
myfavs=portage.grabfile(myroot+"var/cache/edb/world") |
1305 |
myfavdict=genericdict(myfavs) |
1305 |
myfavdict=genericdict(myfavs) |
1306 |
mysysdict=genericdict(syslist) |
1306 |
mysysdict=genericdict(syslist) |
Lines 1318-1324
Link Here
|
1318 |
if retval: |
1318 |
if retval: |
1319 |
sys.exit(1) |
1319 |
sys.exit(1) |
1320 |
|
1320 |
|
1321 |
if ("--pretend" not in myopts) and ("--fetchonly" not in myopts): |
1321 |
if ("--pretend" not in myopts) and ("--fetch-only" not in myopts): |
1322 |
# Clean the old package that we have merged over top of it. |
1322 |
# Clean the old package that we have merged over top of it. |
1323 |
if portage.settings.has_key("AUTOCLEAN") and (portage.settings["AUTOCLEAN"]=="yes"): |
1323 |
if portage.settings.has_key("AUTOCLEAN") and (portage.settings["AUTOCLEAN"]=="yes"): |
1324 |
xsplit=portage.pkgsplit(x[2]) |
1324 |
xsplit=portage.pkgsplit(x[2]) |
Lines 1348-1354
Link Here
|
1348 |
portage.portageexit() |
1348 |
portage.portageexit() |
1349 |
os.execv("/usr/lib/portage/bin/emerge", myargv) |
1349 |
os.execv("/usr/lib/portage/bin/emerge", myargv) |
1350 |
|
1350 |
|
1351 |
if ("--pretend" not in myopts) and ("--fetchonly" not in myopts): |
1351 |
if ("--pretend" not in myopts) and ("--fetch-only" not in myopts): |
1352 |
emergelog(" ::: completed emerge ("+str(mergecount)+" of "+str(len(mymergelist))+") "+x[2]+" to "+x[1]) |
1352 |
emergelog(" ::: completed emerge ("+str(mergecount)+" of "+str(len(mymergelist))+") "+x[2]+" to "+x[1]) |
1353 |
|
1353 |
|
1354 |
# Unsafe for parallel merges |
1354 |
# Unsafe for parallel merges |
Lines 1361-1373
Link Here
|
1361 |
del portage.mtimedb["resume"] |
1361 |
del portage.mtimedb["resume"] |
1362 |
|
1362 |
|
1363 |
if ("--pretend" not in myopts): |
1363 |
if ("--pretend" not in myopts): |
1364 |
if ("--fetchonly" not in myopts): |
1364 |
if ("--fetch-only" not in myopts): |
1365 |
if (mergecount>0): |
1365 |
if (mergecount>0): |
1366 |
portage.env_update() |
1366 |
portage.env_update() |
1367 |
|
1367 |
|
1368 |
#by doing an exit this way, --fetchonly can continue to try to |
1368 |
#by doing an exit this way, --fetch-only can continue to try to |
1369 |
#fetch everything even if a particular download fails. |
1369 |
#fetch everything even if a particular download fails. |
1370 |
if "--fetchonly" in myopts: |
1370 |
if "--fetch-only" in myopts: |
1371 |
if returnme: |
1371 |
if returnme: |
1372 |
print "\n\n!!! Some fetch errors were encountered. Please see above for details.\n\n" |
1372 |
print "\n\n!!! Some fetch errors were encountered. Please see above for details.\n\n" |
1373 |
sys.exit(returnme) |
1373 |
sys.exit(returnme) |
Lines 1913-1923
Link Here
|
1913 |
sys.exit(1) |
1913 |
sys.exit(1) |
1914 |
print "\b\b ... done!" |
1914 |
print "\b\b ... done!" |
1915 |
|
1915 |
|
1916 |
if ("--usepkgonly" in myopts) and mydepgraph.missingbins: |
1916 |
if ("--use-package-only" in myopts) and mydepgraph.missingbins: |
1917 |
sys.stderr.write(red("The following binaries are not available for merging...\n")) |
1917 |
sys.stderr.write(red("The following binaries are not available for merging...\n")) |
1918 |
for x in mydepgraph.missingbins: |
1918 |
for x in mydepgraph.missingbins: |
1919 |
sys.stderr.write(" "+str(x)+"\n") |
1919 |
sys.stderr.write(" "+str(x)+"\n") |
1920 |
sys.stderr.write("\nThese are required by '--usepkgonly' -- Terminating.\n\n") |
1920 |
sys.stderr.write("\nThese are required by '--use-package-only' -- Terminating.\n\n") |
1921 |
sys.exit(1) |
1921 |
sys.exit(1) |
1922 |
|
1922 |
|
1923 |
alldeps=mydepgraph.digraph.allnodes() |
1923 |
alldeps=mydepgraph.digraph.allnodes() |
Lines 1997-2003
Link Here
|
1997 |
else: |
1997 |
else: |
1998 |
favorites=[] |
1998 |
favorites=[] |
1999 |
syslist=getlist("system") |
1999 |
syslist=getlist("system") |
2000 |
if ("--pretend" in myopts) and not ("--fetchonly" in myopts): |
2000 |
if ("--pretend" in myopts) and not ("--fetch-only" in myopts): |
2001 |
print |
2001 |
print |
2002 |
print darkgreen("These are the packages that I would merge, in order:") |
2002 |
print darkgreen("These are the packages that I would merge, in order:") |
2003 |
print |
2003 |
print |
Lines 2036-2059
Link Here
|
2036 |
sys.exit(1) |
2036 |
sys.exit(1) |
2037 |
print "\b\b ...done!" |
2037 |
print "\b\b ...done!" |
2038 |
|
2038 |
|
2039 |
if ("--usepkgonly" in myopts) and mydepgraph.missingbins: |
2039 |
if ("--use-package-only" in myopts) and mydepgraph.missingbins: |
2040 |
sys.stderr.write(red("The following binaries are not available for merging...\n")) |
2040 |
sys.stderr.write(red("The following binaries are not available for merging...\n")) |
2041 |
|
2041 |
|
2042 |
if mydepgraph.missingbins: |
2042 |
if mydepgraph.missingbins: |
2043 |
for x in mydepgraph.missingbins: |
2043 |
for x in mydepgraph.missingbins: |
2044 |
sys.stderr.write(" "+str(x)+"\n") |
2044 |
sys.stderr.write(" "+str(x)+"\n") |
2045 |
sys.stderr.write("\nThese are required by '--usepkgonly' -- Terminating.\n\n") |
2045 |
sys.stderr.write("\nThese are required by '--use-package-only' -- Terminating.\n\n") |
2046 |
sys.exit(1) |
2046 |
sys.exit(1) |
2047 |
|
2047 |
|
2048 |
if ("--pretend" in myopts) and ("--fetchonly" not in myopts): |
2048 |
if ("--pretend" in myopts) and ("--fetch-only" not in myopts): |
2049 |
if ("--resume" in myopts): |
2049 |
if ("--resume" in myopts): |
2050 |
mydepgraph.display(portage.mtimedb["resume"]["mergelist"]) |
2050 |
mydepgraph.display(portage.mtimedb["resume"]["mergelist"]) |
2051 |
else: |
2051 |
else: |
2052 |
mydepgraph.display(mydepgraph.altlist()) |
2052 |
mydepgraph.display(mydepgraph.altlist()) |
2053 |
else: |
2053 |
else: |
2054 |
if ("--buildpkgonly" in myopts): |
2054 |
if ("--build-package-only" in myopts): |
2055 |
if not mydepgraph.digraph.hasallzeros(): |
2055 |
if not mydepgraph.digraph.hasallzeros(): |
2056 |
print "\n!!! --buildpkgonly requires all dependencies to be merged." |
2056 |
print "\n!!! --build-package-only requires all dependencies to be merged." |
2057 |
print "!!! Cannot merge requested packages. Merge deps and try again.\n" |
2057 |
print "!!! Cannot merge requested packages. Merge deps and try again.\n" |
2058 |
sys.exit(1) |
2058 |
sys.exit(1) |
2059 |
|
2059 |
|
Lines 2064-2070
Link Here
|
2064 |
portage.mtimedb["resume"]={} |
2064 |
portage.mtimedb["resume"]={} |
2065 |
portage.mtimedb["resume"]["myopts"]=myopts |
2065 |
portage.mtimedb["resume"]["myopts"]=myopts |
2066 |
portage.mtimedb["resume"]["favorites"]=favorites |
2066 |
portage.mtimedb["resume"]["favorites"]=favorites |
2067 |
if ("--digest" in myopts) and not ("--fetchonly" in myopts): |
2067 |
if ("--digest" in myopts) and not ("--fetch-only" in myopts): |
2068 |
for pkgline in mydepgraph.altlist(): |
2068 |
for pkgline in mydepgraph.altlist(): |
2069 |
if pkgline[0]=="ebuild" and pkgline[3]=="merge": |
2069 |
if pkgline[0]=="ebuild" and pkgline[3]=="merge": |
2070 |
y=portage.portdb.findname(pkgline[2]) |
2070 |
y=portage.portdb.findname(pkgline[2]) |