When setting up the portage_confdir, we should make sure it exists,
and that we rsync it properly (regardless of the settings given by
the user).

Bugzilla: https://bugs.gentoo.org/538652
Reported-by: Joshua Kinard <[email protected]>
---
 catalyst/base/stagebase.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 4a0b482..740e05d 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -893,8 +893,12 @@ class StageBase(TargetBase, ClearBase, GenBase):
                else:
                        if "portage_confdir" in self.settings:
                                log.info('Configuring %s...', 
self.settings['port_conf'])
-                               cmd("rsync -a " + 
self.settings["portage_confdir"] + "/ " +
-                                       self.settings["chroot_path"] + 
self.settings["port_conf"],
+                               dest = normpath(self.settings['chroot_path'] + 
'/' + self.settings['port_conf'])
+                               ensure_dirs(dest)
+                               # The trailing slashes on both paths are 
important:
+                               # We want to make sure rsync copies the dirs 
into each
+                               # other and not as subdirs.
+                               cmd('rsync -a %s/ %s/' % 
(self.settings['portage_confdir'], dest),
                                        "Error copying %s" % 
self.settings["port_conf"],
                                        env=self.env)
                                self.resume.enable("setup_confdir")
-- 
2.5.2


Reply via email to