Fix emerge --sync PORTDIR creation.
authorZac Medico <zmedico@gentoo.org>
Fri, 19 Nov 2010 18:57:35 +0000 (10:57 -0800)
committerZac Medico <zmedico@gentoo.org>
Wed, 24 Nov 2010 02:04:42 +0000 (18:04 -0800)
pym/_emerge/actions.py
pym/_emerge/main.py

index 1d334bde7d969a6a7a1f92ce9e362feba0a2e5c0..fc2048ab36a8c1adcaca48fb7f6ba00e004a156e 100644 (file)
@@ -1888,6 +1888,12 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
        emergelog(xterm_titles, " === sync")
        portdb = trees[settings["ROOT"]]["porttree"].dbapi
        myportdir = portdb.porttree_root
+       if not myportdir:
+               myportdir = settings.get('PORTDIR', '')
+               if myportdir and myportdir.strip():
+                       myportdir = os.path.realpath(myportdir)
+               else:
+                       myportdir = None
        out = portage.output.EOutput()
        global_config_path = GLOBAL_CONFIG_PATH
        if settings['EPREFIX']:
@@ -1905,7 +1911,7 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
                st = None
        if st is None:
                print(">>>",myportdir,"not found, creating it.")
-               os.makedirs(myportdir,0o755)
+               portage.util.ensure_dirs(myportdir, mode=0o755)
                st = os.stat(myportdir)
 
        usersync_uid = None
index dc15719ec50e52f22ffa027528f1eb85c00d156f..4e70ea69d746a00c370856c3d2368ce5fffcbb58 100644 (file)
@@ -1511,8 +1511,7 @@ def emerge_main():
                                'prune', 'unmerge') or not \
                                (fetchonly or \
                                (buildpkgonly and secpass >= 1) or \
-                               myaction in ("metadata", "regen") or \
-                               (myaction == "sync" and os.access(settings["PORTDIR"], os.W_OK)))
+                               myaction in ("metadata", "regen", "sync"))
                        if portage.secpass < 1 or \
                                need_superuser:
                                if need_superuser: