replace existing "restarting emerge via exec()" functionality with a new approach...
authorZac Medico <zmedico@gentoo.org>
Sun, 5 Feb 2006 19:22:00 +0000 (19:22 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 5 Feb 2006 19:22:00 +0000 (19:22 -0000)
svn path=/main/trunk/; revision=2667

bin/emerge

index 5ee4bc23f486c50b53ef7f77f610056020b76886..6885cef58b8e73b6d434f24735e6886b2da911cf 100755 (executable)
@@ -1783,7 +1783,7 @@ class depgraph:
                                                           ("livecvsportage" not in portage.settings.features):
                                                                if mylist.index(x)<len(mylist)-1:
                                                                        p.append(red("*** Portage will stop merging at this point and reload itself,"))
-                                                                       p.append(red("    recalculate dependencies, and complete the merge."))
+                                                                       p.append(red("    then resume the merge."))
                                                                        if "--update" not in myopts:
                                                                                p.append(darkgreen("    You may avoid the remerging of packages by updating portage on its own."))
                                                                        print
@@ -2119,36 +2119,16 @@ class depgraph:
                                                if (myver != portage.VERSION) and \
                                                   ("livecvsportage" not in portage.settings.features):
                                                        if len(mymergelist) > mergecount:
-                                                               myargv=sys.argv
-                                                               myr=0
-                                                               for myra in range(len(myargv)):
-                                                                       if myargv[myr][0:len("portage")]=="portage":
-                                                                               del myargv[myr]
-                                                                               myr-=1
-                                                                       if myargv[myr][0:len("sys-apps/portage")]=="sys-apps/portage":
-                                                                               del myargv[myr]
-                                                                               myr-=1
-                                                                       myr+=1
                                                                emergelog(" *** RESTARTING emerge via exec() after change of portage version.")
+                                                               del portage.mtimedb["resume"]["mergelist"][0]
                                                                portage.portageexit()
-                                                               # Remove --ask from options before restarting
                                                                mynewargv=[]
-                                                               badlongopts = ["--ask","--tree","--changelog"]
-                                                               badshortopts = ["a","t","l"]
-                                                               for arg in myargv:
-                                                                       if arg[0:2] == "--":
-                                                                               if arg in badlongopts:
-                                                                                       continue
-                                                                               mynewargv += [arg]
-                                                                       elif arg[0] == "-":
-                                                                               myarg = "-"
-                                                                               for ch in arg[1:]:
-                                                                                       if ch in badshortopts:
-                                                                                               continue
-                                                                                       myarg += ch
-                                                                               mynewargv += [myarg]
-                                                                       else:
-                                                                               mynewargv += [arg]
+                                                               badlongopts = ("--ask","--tree","--changelog","--skipfirst","--resume")
+                                                               for arg in myopts:
+                                                                       if arg in badlongopts:
+                                                                               continue
+                                                                       mynewargv.append(arg)
+                                                               mynewargv.append("--resume")
                                                                os.execv("/usr/lib/portage/bin/emerge", mynewargv)
 
                        if ("--pretend" not in myopts) and ("--fetchonly" not in myopts) and ("--fetch-all-uri" not in myopts):