-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 12/13/2013 10:07 PM, Brian Dolbec wrote:
> Migrate more hardcoded paths to use settings variables instead.
> ---
>  catalyst                        |  3 ++
>  modules/generic_stage_target.py | 80 
> ++++++++++++++++++++---------------------
>  2 files changed, 43 insertions(+), 40 deletions(-)
> 
> diff --git a/catalyst b/catalyst
> index 19ec77e..60cea3e 100755
> --- a/catalyst
> +++ b/catalyst
> @@ -62,8 +62,11 @@ def parse_config(myconfig):
>       config_file=""
>  
>       confdefaults={
> +             "distdir": "/usr/portage/distfiles",
>               "hash_function": "crc32",
> +             "packagedir": "/usr/portage/packages",
>               "portdir": "/usr/portage",
> +             "port_tmpdir": "/var/tmp/portage",
>               "repo_name": "portage",
>               "sharedir": "/usr/lib/catalyst",
>               "snapshot_name": "portage-",
> diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
> index c2888b6..342c65b 100644
> --- a/modules/generic_stage_target.py
> +++ b/modules/generic_stage_target.py
> @@ -179,11 +179,11 @@ class generic_stage_target(generic_target):
>                               
> "/usr/portage":self.settings["snapshot_cache_path"]+"/portage",\
>                               
> "/usr/portage/distfiles":self.settings["distdir"],"/var/tmp/portage":"tmpfs"}
>               else:
> -                     
> self.mounts=["/proc","/dev","/usr/portage/distfiles","/var/tmp/portage"]
> -                     
> self.mountmap={"/proc":"/proc","/dev":"/dev","/dev/pts":"/dev/pts",\
> -                             
> "/usr/portage/distfiles":self.settings["distdir"],"/var/tmp/portage":"tmpfs"}
> +                     self.mounts=["proc","dev", "distdir", "port_tmpdir"]
> +                     self.mountmap={"proc":"/proc", "dev":"/dev", 
> "pts":"/dev/pts",
> +                             "distdir":self.settings["distdir"], 
> "port_tmpdir":"tmpfs"}
>               if os.uname()[0] == "Linux":
> -                     self.mounts.append("/dev/pts")
> +                     self.mounts.append("pts")
this should be "devpts" since that's how it is named in mounts anyway.

- -Zero
>  
>               self.set_mounts()
>  
> @@ -195,16 +195,15 @@ class generic_stage_target(generic_target):
>                       self.set_pkgcache_path()
>                       print "Location of the package cache is "+\
>                               self.settings["pkgcache_path"]
> -                     self.mounts.append("/usr/portage/packages")
> -                     self.mountmap["/usr/portage/packages"]=\
> -                             self.settings["pkgcache_path"]
> +                     self.mounts.append("packagedir")
> +                     self.mountmap["packagedir"] = 
> self.settings["pkgcache_path"]
>  
>               if "KERNCACHE" in self.settings:
>                       self.set_kerncache_path()
>                       print "Location of the kerncache is "+\
>                               self.settings["kerncache_path"]
> -                     self.mounts.append("/tmp/kerncache")
> -                     
> self.mountmap["/tmp/kerncache"]=self.settings["kerncache_path"]
> +                     self.mounts.append("kerncache")
> +                     
> self.mountmap["kerncache"]=self.settings["kerncache_path"]
>  
>               if "CCACHE" in self.settings:
>                       if "CCACHE_DIR" in os.environ:
> @@ -216,8 +215,8 @@ class generic_stage_target(generic_target):
>                               raise CatalystError,\
>                                       "Compiler cache support can't be 
> enabled (can't find "+\
>                                       ccdir+")"
> -                     self.mounts.append("/var/tmp/ccache")
> -                     self.mountmap["/var/tmp/ccache"]=ccdir
> +                     self.mounts.append("ccache")
> +                     self.mountmap["ccache"]=ccdir
>                       """ for the chroot: """
>                       self.env["CCACHE_DIR"]="/var/tmp/ccache"
>  
> @@ -406,7 +405,7 @@ class generic_stage_target(generic_target):
>  
>       def set_cleanables(self):
>               
> self.settings["cleanables"]=["/etc/resolv.conf","/var/tmp/*","/tmp/*",\
> -                     "/root/*","/usr/portage"]
> +                     "/root/*", self.settings["portdir"]]
>  
>       def set_snapshot_path(self):
>               
> self.settings["snapshot_path"]=normpath(self.settings["storedir"]+\
> @@ -615,21 +614,21 @@ class generic_stage_target(generic_target):
>                       return
>  
>               for x in self.mounts:
> -                     if not os.path.exists(mypath+x):
> +                     if not os.path.exists(mypath + self.mountmap[x]):
>                               continue
>  
> -                     if ismount(mypath+x):
> +                     if ismount(mypath +self.mountmap[x]):
>                               """ Something is still mounted "" """
>                               try:
> -                                     print x+" is still mounted; performing 
> auto-bind-umount...",
> +                                     print self.mountmap[x] + " is still 
> mounted; performing auto-bind-umount...",
>                                       """ Try to umount stuff ourselves """
>                                       self.unbind()
> -                                     if ismount(mypath+x):
> -                                             raise CatalystError, 
> "Auto-unbind failed for "+x
> +                                     if ismount(mypath + self.mountmap[x]):
> +                                             raise CatalystError, 
> "Auto-unbind failed for " + self.mountmap[x]
>                                       else:
>                                               print "Auto-unbind 
> successful..."
>                               except CatalystError:
> -                                     raise CatalystError, "Unable to 
> auto-unbind "+x
> +                                     raise CatalystError, "Unable to 
> auto-unbind " + self.mountmap[x]
>  
>       def unpack(self):
>               unpack=True
> @@ -787,7 +786,7 @@ class generic_stage_target(generic_target):
>                               print "Valid snapshot cache, skipping unpack of 
> portage tree..."
>                               unpack=False
>               else:
> -                     
> destdir=normpath(self.settings["chroot_path"]+"/usr/portage")
> +                     destdir=normpath(self.settings["chroot_path"] + 
> self.settings["portdir"])
>                       cleanup_errmsg="Error removing existing snapshot 
> directory."
>                       cleanup_msg=\
>                               "Cleaning up existing portage tree (This can 
> take a long time)..."
> @@ -801,7 +800,7 @@ class generic_stage_target(generic_target):
>  
>                       if "AUTORESUME" in self.settings \
>                               and 
> os.path.exists(self.settings["chroot_path"]+\
> -                                     "/usr/portage/") \
> +                                     self.settings["portdir"]) \
>                               and 
> os.path.exists(self.settings["autoresume_path"]\
>                                       +"unpack_portage") \
>                               and self.settings["snapshot_path_hash"] == 
> snapshot_hash:
> @@ -848,7 +847,7 @@ class generic_stage_target(generic_target):
>                       cmd("rm -f 
> "+self.settings["chroot_path"]+"/etc/portage/make.profile",\
>                                       "Error zapping profile 
> link",env=self.env)
>                       cmd("mkdir -p 
> "+self.settings["chroot_path"]+"/etc/portage/")
> -                     cmd("ln -sf ../../usr/portage/profiles/"+\
> +                     cmd("ln -sf ../.." + self.settings["portdir"] + 
> "/profiles/"+\
>                               self.settings["target_profile"]+" "+\
>                               
> self.settings["chroot_path"]+"/etc/portage/make.profile",\
>                               "Error creating profile link",env=self.env)
> @@ -874,10 +873,10 @@ class generic_stage_target(generic_target):
>                               if os.path.exists(x):
>                                       print "Copying overlay dir " +x
>                                       cmd("mkdir -p 
> "+self.settings["chroot_path"]+\
> -                                             "/usr/local/portage",\
> +                                             self.settings["local_overlay"],\
>                                               "Could not make portage_overlay 
> dir",env=self.env)
>                                       cmd("cp -R "+x+"/* 
> "+self.settings["chroot_path"]+\
> -                                             "/usr/local/portage",\
> +                                             self.settings["local_overlay"],\
>                                               "Could not copy 
> portage_overlay",env=self.env)
>  
>       def root_overlay(self):
> @@ -897,7 +896,7 @@ class generic_stage_target(generic_target):
>  
>       def bind(self):
>               for x in self.mounts:
> -                     if not os.path.exists(self.settings["chroot_path"]+x):
> +                     if not os.path.exists(self.settings["chroot_path"] + 
> self.mountmap[x]):
>                               os.makedirs(self.settings["chroot_path"]+x,0755)
>  
>                       if not os.path.exists(self.mountmap[x]):
> @@ -909,11 +908,11 @@ class generic_stage_target(generic_target):
>                               self.snapshot_lock_object.read_lock()
>                       if os.uname()[0] == "FreeBSD":
>                               if src == "/dev":
> -                                     retval=os.system("mount -t devfs none 
> "+\
> -                                             self.settings["chroot_path"]+x)
> +                                     retval=os.system("mount -t devfs none " 
> +
> +                                             self.settings["chroot_path"] + 
> src)
>                               else:
> -                                     retval=os.system("mount_nullfs "+src+" 
> "+\
> -                                             self.settings["chroot_path"]+x)
> +                                     retval=os.system("mount_nullfs " + src 
> + " " +
> +                                             self.settings["chroot_path"] + 
> src)
>                       else:
>                               if src == "tmpfs":
>                                       if "var_tmpfs_portage" in self.settings:
> @@ -921,11 +920,11 @@ class generic_stage_target(generic_target):
>                                                       
> self.settings["var_tmpfs_portage"]+"G "+src+" "+\
>                                                       
> self.settings["chroot_path"]+x)
>                               else:
> -                                     retval=os.system("mount --bind "+src+" 
> "+\
> -                                             self.settings["chroot_path"]+x)
> +                                     retval=os.system("mount --bind " + src 
> + " " +
> +                                             self.settings["chroot_path"] + 
> src)
>                       if retval!=0:
>                               self.unbind()
> -                             raise CatalystError,"Couldn't bind mount "+src
> +                             raise CatalystError,"Couldn't bind mount " + src
>  
>       def unbind(self):
>               ouch=0
> @@ -934,25 +933,26 @@ class generic_stage_target(generic_target):
>               myrevmounts.reverse()
>               """ Unmount in reverse order for nested bind-mounts """
>               for x in myrevmounts:
> -                     if not os.path.exists(mypath+x):
> +                     if not os.path.exists(mypath + self.mountmap[x]):
>                               continue
>  
> -                     if not ismount(mypath+x):
> +                     if not ismount(mypath + self.mountmap[x]):
>                               continue
>  
>                       retval=os.system("umount "+\
> -                             os.path.join(mypath,x.lstrip(os.path.sep)))
> +                             os.path.join(mypath, 
> self.mountmap[x].lstrip(os.path.sep)))
>  
>                       if retval!=0:
> -                             warn("First attempt to unmount: "+mypath+x+" 
> failed.")
> +                             warn("First attempt to unmount: " + mypath +
> +                                     self.mountmap[x] +" failed.")
>                               warn("Killing any pids still running in the 
> chroot")
>  
>                               self.kill_chroot_pids()
>  
> -                             retval2=os.system("umount "+mypath+x)
> +                             retval2=os.system("umount " + mypath + 
> self.mountmap[x])
>                               if retval2!=0:
>                                       ouch=1
> -                                     warn("Couldn't umount bind mount: 
> "+mypath+x)
> +                                     warn("Couldn't umount bind mount: " + 
> mypath + self.mountmap[x])
>  
>                       if "SNAPCACHE" in self.settings and x == "/usr/portage":
>                               try:
> @@ -1118,9 +1118,9 @@ class generic_stage_target(generic_target):
>                               "Could not replace /etc/hosts",env=self.env)
>  
>               """ Remove our overlay """
> -             if 
> os.path.exists(self.settings["chroot_path"]+"/usr/local/portage"):
> -                     cmd("rm -rf 
> "+self.settings["chroot_path"]+"/usr/local/portage",\
> -                             "Could not remove 
> /usr/local/portage",env=self.env)
> +             if os.path.exists(self.settings["chroot_path"] + 
> self.settings["local_overlay"]):
> +                     cmd("rm -rf " + self.settings["chroot_path"] + 
> self.settings["local_overlay"],
> +                             "Could not remove " + 
> self.settings["local_overlay"], env=self.env)
>                       cmd("sed -i '/^PORTDIR_OVERLAY/d' 
> "+self.settings["chroot_path"]+\
>                               "/etc/portage/make.conf",\
>                               "Could not remove PORTDIR_OVERLAY from 
> make.conf",env=self.env)
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJSq93wAAoJEKXdFCfdEflKSkgQAKZROZEkF40YRVInP9T2eGVQ
S7C4BjXL0Qos74azrlOJooZO43v2N4tkEmYg8rt/Wq44eGWHjku6If1+tnwKNx4m
nhzHQlT6tE+M8ZMSKMEu5H+pWIPH8d2YKy40ljpPNlTFBty0q64KRMTHNs0ysuQA
DiuqbY2L/CKOV4rcNrflMQPyf77D8arBULUOufBDs/D5M7O3wdiOaqAGr0GOqUbm
JG438VtaJLm4OHr8bOtJU4fk9I5yWp2igZAL3bhN9HUqfh+mTJkzjDsdSDpx6+hu
SZHe8CSnCpe4SVSKCppUzXdbSCLuLsF/dYAt06wnYWDZ68IiZDwOLu/AXLIjfzjV
f/6WCZlK2MHiFfgHC4BE+3xIKvMSOVvS72cM8BHD2gIvSsXibzWX6VG/DvZRpqHK
3uCDlR4JUc1Yenx842C2S9DjG6vRD6ISLKRML8DvvK0NjbmHR1BUNrm2WpB6jGD3
Lsx3hK62bKcWWT4e9exwKiqVIfqzGEZRNaWuHIimxNto9T8xoz7ss0Vvl9w9f2Ml
cF6FSic8tUuJFWdG/itna75ddALYbNqH4wRHMnOC0mOPAU79sKDxuUPo3P2bK4q4
di3oKlOflry9LxV1jpyK6tRFSR1rogg3NN6yGvijKSpbT04zozJm2dNo62o2k9EC
dnft0lEhKkksRngGU9VZ
=eYhc
-----END PGP SIGNATURE-----

Reply via email to