* [gentoo-catalyst] Patches to fix rebased patches already applied to current master
@ 2013-12-29 1:57 Brian Dolbec
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: USE portdir, distdir,... instead of paths for keys Brian Dolbec
` (7 more replies)
0 siblings, 8 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 1:57 UTC (permalink / raw
To: gentoo-catalyst
The following patches complete the mounts and mountmap changes already applied.
Some of them fix rebase errors introduced in the split,
others were commits that were later in my rewrite.
After this set of patches, all test runs of catalyst up to and including stage3
process without error.
^ permalink raw reply [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: USE portdir, distdir,... instead of paths for keys
2013-12-29 1:57 [gentoo-catalyst] Patches to fix rebased patches already applied to current master Brian Dolbec
@ 2013-12-29 1:57 ` Brian Dolbec
2013-12-29 2:16 ` W. Trevor King
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
` (6 subsequent siblings)
7 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 1:57 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
If snapcache is enabled, self.mounts and self.mountmap had not been modified
like they were if it was not enabled.
---
modules/generic_stage_target.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 3e60f72..d7cffa9 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -174,10 +174,10 @@ class generic_stage_target(generic_target):
""" Setup our mount points """
if "SNAPCACHE" in self.settings:
- self.mounts=["/proc","/dev","/usr/portage","/usr/portage/distfiles","/var/tmp/portage"]
- self.mountmap={"/proc":"/proc","/dev":"/dev","devpts":"/dev/pts",
- "/usr/portage":self.settings["snapshot_cache_path"]+"/portage",\
- "/usr/portage/distfiles":self.settings["distdir"],"/var/tmp/portage":"tmpfs"}
+ self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
+ self.mountmap={"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
+ "portdir":self.settings["snapshot_cache_path"]+"/portage",\
+ "distdir":self.settings["distdir"],"port_tmpdir":"tmpfs"}
else:
self.mounts = ["proc", "dev", "distdir", "port_tmpdir"]
self.mountmap = {"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration
2013-12-29 1:57 [gentoo-catalyst] Patches to fix rebased patches already applied to current master Brian Dolbec
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: USE portdir, distdir,... instead of paths for keys Brian Dolbec
@ 2013-12-29 1:57 ` Brian Dolbec
2013-12-29 2:19 ` W. Trevor King
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 3/6] Add "local_overlay" to configdefaults Brian Dolbec
` (5 subsequent siblings)
7 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 1:57 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Use normpath() on it as well.
---
modules/generic_stage_target.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index d7cffa9..f881ca0 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -176,7 +176,8 @@ class generic_stage_target(generic_target):
if "SNAPCACHE" in self.settings:
self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
self.mountmap={"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
- "portdir":self.settings["snapshot_cache_path"]+"/portage",\
+ "portdir": normpath(self.settings["snapshot_cache_path"] + "/" +
+ self.settings["repo_name"]),
"distdir":self.settings["distdir"],"port_tmpdir":"tmpfs"}
else:
self.mounts = ["proc", "dev", "distdir", "port_tmpdir"]
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 3/6] Add "local_overlay" to configdefaults.
2013-12-29 1:57 [gentoo-catalyst] Patches to fix rebased patches already applied to current master Brian Dolbec
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: USE portdir, distdir,... instead of paths for keys Brian Dolbec
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
@ 2013-12-29 1:57 ` Brian Dolbec
2013-12-29 2:24 ` W. Trevor King
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 4/6] Fix a missed self.mounts key change from a path as key Brian Dolbec
` (4 subsequent siblings)
7 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 1:57 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Fixes commit 463d98fe94041313e0cb4497081858ab5d9121f3
---
catalyst | 1 +
1 file changed, 1 insertion(+)
diff --git a/catalyst b/catalyst
index 4ea4248..82b0942 100755
--- a/catalyst
+++ b/catalyst
@@ -66,6 +66,7 @@ def parse_config(myconfig):
confdefaults = {
"distdir": "/usr/portage/distfiles",
"hash_function": "crc32",
+ "local_overlay": "/usr/local/portage",
"options": "",
"packagedir": "/usr/portage/packages",
"portdir": "/usr/portage",
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 4/6] Fix a missed self.mounts key change from a path as key.
2013-12-29 1:57 [gentoo-catalyst] Patches to fix rebased patches already applied to current master Brian Dolbec
` (2 preceding siblings ...)
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 3/6] Add "local_overlay" to configdefaults Brian Dolbec
@ 2013-12-29 1:57 ` Brian Dolbec
2013-12-29 2:30 ` W. Trevor King
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
` (3 subsequent siblings)
7 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 1:57 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
original patch: 27b751ffd9594e0128a3d70f83c7af18dab03838
---
modules/generic_stage_target.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index f881ca0..ce28ab8 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -905,7 +905,8 @@ class generic_stage_target(generic_target):
os.makedirs(self.mountmap[x],0755)
src=self.mountmap[x]
- if "SNAPCACHE" in self.settings and x == "/usr/portage":
+ #print "bind(); src =", src
+ if "SNAPCACHE" in self.settings and x == "portdir":
self.snapshot_lock_object.read_lock()
if os.uname()[0] == "FreeBSD":
if src == "/dev":
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-29 1:57 [gentoo-catalyst] Patches to fix rebased patches already applied to current master Brian Dolbec
` (3 preceding siblings ...)
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 4/6] Fix a missed self.mounts key change from a path as key Brian Dolbec
@ 2013-12-29 1:57 ` Brian Dolbec
2013-12-29 2:49 ` W. Trevor King
2013-12-29 5:26 ` Alec Warner
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
` (2 subsequent siblings)
7 siblings, 2 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 1:57 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Cleans up all self.mounts, self.mountmap usage.
Replace multiple path additions with one instance at the beginning of the function, reuse the result multiple times.
Add some extra debug prints (to be converted to logging later)
---
modules/generic_stage_target.py | 94 ++++++++++++++++++++++++++---------------
modules/stage1_target.py | 5 ++-
2 files changed, 63 insertions(+), 36 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index ce28ab8..c8d31e1 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -4,6 +4,23 @@ from generic_target import *
from stat import *
import catalyst_lock
+# temporary location. It will be moved to a
+# new defaults file in a later comit
+TARGET_MOUNTS_DEFAULTS = {
+ "proc": "/proc",
+ "dev": "/dev",
+ "devpts": "/dev/pts",
+ "portdir": "/usr/portage",
+ "distdir": "/usr/portage/distfiles",
+ "packagedir": "/usr/portage/packages",
+ "port_tmpdir": "/var/tmp/portage",
+ "kerncache": "/tmp/kerncache",
+ "ccache": "/var/tmp/ccache",
+ "icecream": "/usr/lib/icecc/bin",
+ "port_logdir": "/var/log/portage",
+ }
+
+
class generic_stage_target(generic_target):
"""
This class does all of the chroot setup, copying of files, etc. It is
@@ -173,6 +190,10 @@ class generic_stage_target(generic_target):
file_locate(self.settings,["portage_confdir"],expand=0)
""" Setup our mount points """
+ # initialize our target mounts.
+ # later I plan to make these configurable so the
+ # defaults can be easily overridden if desired.
+ self.target_mounts = TARGET_MOUNTS_DEFAULTS.copy()
if "SNAPCACHE" in self.settings:
self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
self.mountmap={"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
@@ -219,17 +240,18 @@ class generic_stage_target(generic_target):
self.mounts.append("ccache")
self.mountmap["ccache"] = ccdir
""" for the chroot: """
- self.env["CCACHE_DIR"]="/var/tmp/ccache"
+ self.env["CCACHE_DIR"] = self.target_mounts["ccache"]
if "ICECREAM" in self.settings:
self.mounts.append("/var/cache/icecream")
self.mountmap["/var/cache/icecream"]="/var/cache/icecream"
- self.env["PATH"]="/usr/lib/icecc/bin:"+self.env["PATH"]
+ self.env["PATH"] = self.target_mounts["icecream"] + ":" + \
+ self.env["PATH"]
if "port_logdir" in self.settings:
- self.mounts.append("/var/log/portage")
- self.mountmap["/var/log/portage"]=self.settings["port_logdir"]
- self.env["PORT_LOGDIR"]="/var/log/portage"
+ self.mounts.append("port_logdir")
+ self.mountmap["port_logdir"]=self.settings["port_logdir"]
+ self.env["PORT_LOGDIR"]=self.target_mounts["port_logdir"]
self.env["PORT_LOGDIR_CLEAN"]='find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
def override_cbuild(self):
@@ -603,33 +625,34 @@ class generic_stage_target(generic_target):
"kill-chroot-pids script failed.",env=self.env)
def mount_safety_check(self):
- mypath=self.settings["chroot_path"]
-
"""
Check and verify that none of our paths in mypath are mounted. We don't
want to clean up with things still mounted, and this allows us to check.
Returns 1 on ok, 0 on "something is still mounted" case.
"""
- if not os.path.exists(mypath):
+ if not os.path.exists(self.settings["chroot_path"]):
return
+ print "self.mounts =", self.mounts
for x in self.mounts:
- if not os.path.exists(mypath + self.mountmap[x]):
+ target = normpath(self.settings["chroot_path"] + self.target_mounts[x])
+ print "mount_safety_check() x =", x, target
+ if not os.path.exists(target):
continue
- if ismount(mypath + self.mountmap[x]):
+ if ismount(target):
""" Something is still mounted "" """
try:
- print self.mountmap[x] + " is still mounted; performing auto-bind-umount...",
+ print target + " is still mounted; performing auto-bind-umount...",
""" Try to umount stuff ourselves """
self.unbind()
- if ismount(mypath + self.mountmap[x]):
- raise CatalystError, "Auto-unbind failed for " + self.mountmap[x]
+ if ismount(target):
+ raise CatalystError, "Auto-unbind failed for " + target
else:
print "Auto-unbind successful..."
except CatalystError:
- raise CatalystError, "Unable to auto-unbind " + self.mountmap[x]
+ raise CatalystError, "Unable to auto-unbind " + target
def unpack(self):
unpack=True
@@ -897,12 +920,14 @@ class generic_stage_target(generic_target):
def bind(self):
for x in self.mounts:
- if not os.path.exists(self.settings["chroot_path"] + self.mountmap[x]):
- os.makedirs(self.settings["chroot_path"]+x,0755)
+ #print "bind(); x =", x
+ target = normpath(self.settings["chroot_path"] + self.target_mounts[x])
+ if not os.path.exists(target):
+ os.makedirs(target, 0755)
if not os.path.exists(self.mountmap[x]):
if not self.mountmap[x] == "tmpfs":
- os.makedirs(self.mountmap[x],0755)
+ os.makedirs(self.mountmap[x], 0755)
src=self.mountmap[x]
#print "bind(); src =", src
@@ -910,20 +935,22 @@ 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"] + src)
+ cmd = "mount -t devfs none " + target
+ retval=os.system(cmd)
else:
- retval = os.system("mount_nullfs " + src + " " +
- self.settings["chroot_path"] + src)
+ cmd = "mount_nullfs " + src + " " + target
+ retval=os.system(cmd)
else:
if src == "tmpfs":
if "var_tmpfs_portage" in self.settings:
- retval=os.system("mount -t tmpfs -o size="+\
- self.settings["var_tmpfs_portage"]+"G "+src+" "+\
- self.settings["chroot_path"]+x)
+ cmd = "mount -t tmpfs -o size=" + \
+ self.settings["var_tmpfs_portage"] + "G " + \
+ src + " " + target
+ retval=os.system(cmd)
else:
- retval = os.system("mount --bind " + src + " " +
- self.settings["chroot_path"] + src)
+ cmd = "mount --bind " + src + " " + target
+ #print "bind(); cmd =", cmd
+ retval=os.system(cmd)
if retval!=0:
self.unbind()
raise CatalystError,"Couldn't bind mount " + src
@@ -935,26 +962,25 @@ 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 + self.mountmap[x]):
+ target = normpath(mypath + self.target_mounts[x])
+ if not os.path.exists(target):
continue
- if not ismount(mypath + self.mountmap[x]):
+ if not ismount(target):
continue
- retval=os.system("umount "+\
- os.path.join(mypath, self.mountmap[x].lstrip(os.path.sep)))
+ retval=os.system("umount " + target)
if retval!=0:
- warn("First attempt to unmount: " + mypath +
- self.mountmap[x] +" failed.")
+ warn("First attempt to unmount: " + target + " failed.")
warn("Killing any pids still running in the chroot")
self.kill_chroot_pids()
- retval2 = os.system("umount " + mypath + self.mountmap[x])
+ retval2 = os.system("umount " + target)
if retval2!=0:
ouch=1
- warn("Couldn't umount bind mount: " + mypath + self.mountmap[x])
+ warn("Couldn't umount bind mount: " + target)
if "SNAPCACHE" in self.settings and x == "/usr/portage":
try:
diff --git a/modules/stage1_target.py b/modules/stage1_target.py
index aa43926..1e0d874 100644
--- a/modules/stage1_target.py
+++ b/modules/stage1_target.py
@@ -88,8 +88,9 @@ class stage1_target(generic_stage_target):
os.makedirs(self.settings["stage_path"]+"/proc")
# alter the mount mappings to bind mount proc onto it
- self.mounts.append("/tmp/stage1root/proc")
- self.mountmap["/tmp/stage1root/proc"]="/proc"
+ self.mounts.append("stage1root/proc")
+ self.target_mounts["stage1root/proc"] = "/tmp/stage1root/proc"
+ self.mountmap["stage1root/proc"]="/proc"
def register(foo):
foo.update({"stage1":stage1_target})
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now.
2013-12-29 1:57 [gentoo-catalyst] Patches to fix rebased patches already applied to current master Brian Dolbec
` (4 preceding siblings ...)
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
@ 2013-12-29 1:57 ` Brian Dolbec
2013-12-29 2:53 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
2014-01-03 4:16 ` [PATCH v3 0/6] "Re: " Brian Dolbec
7 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 1:57 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
mounts and mountmap are source paths.
I plan to add a source_mounts to settings later to compliment the target_mounts paths.
---
catalyst | 1 +
modules/generic_stage_target.py | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/catalyst b/catalyst
index 82b0942..cb6c022 100755
--- a/catalyst
+++ b/catalyst
@@ -66,6 +66,7 @@ def parse_config(myconfig):
confdefaults = {
"distdir": "/usr/portage/distfiles",
"hash_function": "crc32",
+ "icecream": "/var/cache/icecream",
"local_overlay": "/usr/local/portage",
"options": "",
"packagedir": "/usr/portage/packages",
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index c8d31e1..43df545 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -243,8 +243,8 @@ class generic_stage_target(generic_target):
self.env["CCACHE_DIR"] = self.target_mounts["ccache"]
if "ICECREAM" in self.settings:
- self.mounts.append("/var/cache/icecream")
- self.mountmap["/var/cache/icecream"]="/var/cache/icecream"
+ self.mounts.append("icecream")
+ self.mountmap["icecream"] = self.settings["icecream"]
self.env["PATH"] = self.target_mounts["icecream"] + ":" + \
self.env["PATH"]
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: USE portdir, distdir,... instead of paths for keys
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: USE portdir, distdir,... instead of paths for keys Brian Dolbec
@ 2013-12-29 2:16 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-29 2:16 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1208 bytes --]
On Sat, Dec 28, 2013 at 05:57:05PM -0800, Brian Dolbec wrote:
> Subject: Re: [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py:
> USE portdir, distdir,... instead of paths for keys
I'd prefer “: Use” instead of “: USE”.
> - self.mounts=["/proc","/dev","/usr/portage","/usr/portage/distfiles","/var/tmp/portage"]
> - self.mountmap={"/proc":"/proc","/dev":"/dev","devpts":"/dev/pts",
> - "/usr/portage":self.settings["snapshot_cache_path"]+"/portage",\
> - "/usr/portage/distfiles":self.settings["distdir"],"/var/tmp/portage":"tmpfs"}
> + self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
> + self.mountmap={"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
> + "portdir":self.settings["snapshot_cache_path"]+"/portage",\
> + "distdir":self.settings["distdir"],"port_tmpdir":"tmpfs"}
No need for the backslash after “"/portage",”. There should also
probably be a space before “"port_tmpdir"”. Style issues asside, the
content looks good to me.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
@ 2013-12-29 2:19 ` W. Trevor King
2013-12-29 5:08 ` Brian Dolbec
0 siblings, 1 reply; 61+ messages in thread
From: W. Trevor King @ 2013-12-29 2:19 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 707 bytes --]
On Sat, Dec 28, 2013 at 05:57:06PM -0800, Brian Dolbec wrote:
> - "portdir":self.settings["snapshot_cache_path"]+"/portage",\
> + "portdir": normpath(self.settings["snapshot_cache_path"] + "/" +
> + self.settings["repo_name"]),
> "distdir":self.settings["distdir"],"port_tmpdir":"tmpfs"}
Ah, this is getting rid of that trailing backslash, so I'm fine if it
stays in the previous commit. We're still missing the space before
“"port_tmpdir"”. The use of normpath and the repo_name setting look
good.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 3/6] Add "local_overlay" to configdefaults.
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 3/6] Add "local_overlay" to configdefaults Brian Dolbec
@ 2013-12-29 2:24 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-29 2:24 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1056 bytes --]
On Sat, Dec 28, 2013 at 05:57:07PM -0800, Brian Dolbec wrote:
> Fixes commit 463d98fe94041313e0cb4497081858ab5d9121f3
In the Git history (git://github.com/gitster/git.git) the convention
seems to be:
${SHORT_HASH} (${SUBJECT}, ${AUTHOR_DATE})
so:
Fixes commit 463d98f (modules/generic_stage_target.py: Use a
'local_overlay' setting instead of hard-coding '/usr/local/portage',
2012-12-19).
The benefits of including human-readable content are:
* Folks don't have to look up the hash to get an idea about the
referenced commit's changes.
* If this commit is cherry-picked into an alternate history, the
subject and author-date will be preserved, but the hash changes.
> confdefaults = {
> "distdir": "/usr/portage/distfiles",
> "hash_function": "crc32",
> + "local_overlay": "/usr/local/portage",
Oops :p. Looks good to me.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 4/6] Fix a missed self.mounts key change from a path as key.
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 4/6] Fix a missed self.mounts key change from a path as key Brian Dolbec
@ 2013-12-29 2:30 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-29 2:30 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 946 bytes --]
On Sat, Dec 28, 2013 at 05:57:08PM -0800, Brian Dolbec wrote:
> original patch: 27b751ffd9594e0128a3d70f83c7af18dab03838
Actually, I don't think this is related to 27b751f
(modules/generic_stage_target.py: Use 'portdir' instead of hard-coding
'/usr/portage', 2012-12-19), which was only about
self.settings["portdir"].
> ---
> src=self.mountmap[x]
> - if "SNAPCACHE" in self.settings and x == "/usr/portage":
> + #print "bind(); src =", src
> + if "SNAPCACHE" in self.settings and x == "portdir":
> self.snapshot_lock_object.read_lock()
Maybe squash this into patch #1 (modules/generic_stage_target.py: USE
portdir, distdir,... instead of paths for keys, 2013-12-15), because
it's fixing the currently-broken SNAPCACHE mountmap keys.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
@ 2013-12-29 2:49 ` W. Trevor King
2013-12-29 3:52 ` W. Trevor King
2013-12-29 5:02 ` [gentoo-catalyst] " Brian Dolbec
2013-12-29 5:26 ` Alec Warner
1 sibling, 2 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-29 2:49 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 2126 bytes --]
On Sat, Dec 28, 2013 at 05:57:09PM -0800, Brian Dolbec wrote:
> +# temporary location. It will be moved to a
> +# new defaults file in a later comit
Hopefully those later commits will land, but maybe they won't. I'd
rather comment on future goals in the Git commit instead of in the
source code.
> + # initialize our target mounts.
> + # later I plan to make these configurable so the
> + # defaults can be easily overridden if desired.
> + self.target_mounts = TARGET_MOUNTS_DEFAULTS.copy()
See above about future goals in the Git commit.
> - self.mounts.append("/var/log/portage")
> - self.mountmap["/var/log/portage"]=self.settings["port_logdir"]
> - self.env["PORT_LOGDIR"]="/var/log/portage"
> + self.mounts.append("port_logdir")
> + self.mountmap["port_logdir"]=self.settings["port_logdir"]
> + self.env["PORT_LOGDIR"]=self.target_mounts["port_logdir"]
Looks good. The mounts/mountmap changes are orthogonal to the
target_mounts addition, but it's probably not worth splitting them out
into a separate fixup.
> def mount_safety_check(self):
> …
> def bind(self):
> …
> @@ -935,26 +962,25 @@ class generic_stage_target(generic_target):
> myrevmounts.reverse()
> """ Unmount in reverse order for nested bind-mounts """
> …
Hooray, sanity :).
> - self.mounts.append("/tmp/stage1root/proc")
> - self.mountmap["/tmp/stage1root/proc"]="/proc"
> + self.mounts.append("stage1root/proc")
> + self.target_mounts["stage1root/proc"] = "/tmp/stage1root/proc"
> + self.mountmap["stage1root/proc"]="/proc"
Hmm. I'm not how this is handled at the moment, but don't we want:
mount -t proc none /tmp/stage1root/proc
instead of:
mount --bind /proc /tmp/stage1root/proc
The handbook is currently using --rbind as well [1].
Maybe food for a future series :p.
Cheers,
Trevor
[1]: http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=6#doc_chap1_sect3
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now.
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
@ 2013-12-29 2:53 ` W. Trevor King
2013-12-29 3:00 ` W. Trevor King
0 siblings, 1 reply; 61+ messages in thread
From: W. Trevor King @ 2013-12-29 2:53 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 877 bytes --]
On Sat, Dec 28, 2013 at 05:57:10PM -0800, Brian Dolbec wrote:
> mounts and mountmap are source paths.
“mountmap” is for source paths. “mounts” is for path-agnostic keys.
> - self.mounts.append("/var/cache/icecream")
> - self.mountmap["/var/cache/icecream"]="/var/cache/icecream"
> + self.mounts.append("icecream")
> + self.mountmap["icecream"] = self.settings["icecream"]
Looks good to me.
I haven't actually tested this series, but I did test two commits
further along in Brian's “pending” branch (8dfe5c7, Remove an extra
slash in the path, 2013-12-17). Everything worked well there. I'll
retest this series once we've worked the style kinks out of v1 ;).
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now.
2013-12-29 2:53 ` W. Trevor King
@ 2013-12-29 3:00 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-29 3:00 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 804 bytes --]
On Sat, Dec 28, 2013 at 06:53:16PM -0800, W. Trevor King wrote:
> I haven't actually tested this series, but I did test two commits
> further along in Brian's “pending” branch (8dfe5c7, Remove an extra
> slash in the path, 2013-12-17). Everything worked well there. I'll
> retest this series once we've worked the style kinks out of v1 ;).
Oops, I actually tested five commits further along (8066333, chmod +x
targets/stage1/build.py, 2013-12-17), building trough stage3. If
we're retesting after this series settles down, I suppose my earlier
testing may not matter much, but I thought I'd clarify anyway ;).
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-29 2:49 ` W. Trevor King
@ 2013-12-29 3:52 ` W. Trevor King
2013-12-29 4:58 ` Brian Dolbec
2013-12-31 2:54 ` [gentoo-catalyst] mounts changes was: " Brian Dolbec
2013-12-29 5:02 ` [gentoo-catalyst] " Brian Dolbec
1 sibling, 2 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-29 3:52 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Douglas Freed
[-- Attachment #1: Type: text/plain, Size: 1476 bytes --]
On Sat, Dec 28, 2013 at 06:49:11PM -0800, W. Trevor King wrote:
> On Sat, Dec 28, 2013 at 05:57:09PM -0800, Brian Dolbec wrote:
> > - self.mounts.append("/tmp/stage1root/proc")
> > - self.mountmap["/tmp/stage1root/proc"]="/proc"
> > + self.mounts.append("stage1root/proc")
> > + self.target_mounts["stage1root/proc"] = "/tmp/stage1root/proc"
> > + self.mountmap["stage1root/proc"]="/proc"
>
> Hmm. I'm not how this is handled at the moment, but don't we want:
>
> mount -t proc none /tmp/stage1root/proc
>
> instead of:
>
> mount --bind /proc /tmp/stage1root/proc
>
> The handbook is currently using --rbind as well [1].
>
> Maybe food for a future series :p.
After Douglas Freed talked me off the devtmpfs ledge on
#gentoo-releng, my current suggested mount changes are:
-t:
proc
--rbind:
sys
dev
portdir
port_logdir
port_tmpdir
kerncache
ccache
icecream
drop:
devpts (now that we --rbind /dev)
distdir (now that we --rbind portdir)
packagedir (now that we --rbind portdir)
For distdir/packagedir, I'd be find if the source defaulted to None
(meaning “don't mount anything”) but could be configured to a path
(meaning “--rbind this after you've --rbind-mounted portdir”).
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-29 3:52 ` W. Trevor King
@ 2013-12-29 4:58 ` Brian Dolbec
2013-12-31 2:54 ` [gentoo-catalyst] mounts changes was: " Brian Dolbec
1 sibling, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 4:58 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1810 bytes --]
On Sat, 2013-12-28 at 19:52 -0800, W. Trevor King wrote:
> On Sat, Dec 28, 2013 at 06:49:11PM -0800, W. Trevor King wrote:
> > On Sat, Dec 28, 2013 at 05:57:09PM -0800, Brian Dolbec wrote:
> > > - self.mounts.append("/tmp/stage1root/proc")
> > > - self.mountmap["/tmp/stage1root/proc"]="/proc"
> > > + self.mounts.append("stage1root/proc")
> > > + self.target_mounts["stage1root/proc"] = "/tmp/stage1root/proc"
> > > + self.mountmap["stage1root/proc"]="/proc"
> >
> > Hmm. I'm not how this is handled at the moment, but don't we want:
> >
> > mount -t proc none /tmp/stage1root/proc
> >
> > instead of:
> >
> > mount --bind /proc /tmp/stage1root/proc
> >
> > The handbook is currently using --rbind as well [1].
> >
> > Maybe food for a future series :p.
>
> After Douglas Freed talked me off the devtmpfs ledge on
> #gentoo-releng, my current suggested mount changes are:
>
> -t:
> proc
> --rbind:
> sys
> dev
> portdir
> port_logdir
> port_tmpdir
> kerncache
> ccache
> icecream
> drop:
> devpts (now that we --rbind /dev)
> distdir (now that we --rbind portdir)
> packagedir (now that we --rbind portdir)
>
> For distdir/packagedir, I'd be find if the source defaulted to None
> (meaning “don't mount anything”) but could be configured to a path
> (meaning “--rbind this after you've --rbind-mounted portdir”).
>
> Cheers,
> Trevor
>
This series of patches was to just fix the migration from hard coded
paths to centrally configurable ones. These mount changes should be
commits unto themselves. Please don't confuse the issues... we have
lots more changes to get through. I'm not saying anything against your
proposed changes, just they're not for this commit.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-29 2:49 ` W. Trevor King
2013-12-29 3:52 ` W. Trevor King
@ 2013-12-29 5:02 ` Brian Dolbec
1 sibling, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 5:02 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1350 bytes --]
On Sat, 2013-12-28 at 18:49 -0800, W. Trevor King wrote:
> On Sat, Dec 28, 2013 at 05:57:09PM -0800, Brian Dolbec wrote:
> > +# temporary location. It will be moved to a
> > +# new defaults file in a later comit
>
> Hopefully those later commits will land, but maybe they won't. I'd
> rather comment on future goals in the Git commit instead of in the
> source code.
Fair enough...
>
> > + # initialize our target mounts.
> > + # later I plan to make these configurable so the
> > + # defaults can be easily overridden if desired.
> > + self.target_mounts = TARGET_MOUNTS_DEFAULTS.copy()
>
> See above about future goals in the Git commit.
>
> > - self.mounts.append("/var/log/portage")
> > - self.mountmap["/var/log/portage"]=self.settings["port_logdir"]
> > - self.env["PORT_LOGDIR"]="/var/log/portage"
> > + self.mounts.append("port_logdir")
> > + self.mountmap["port_logdir"]=self.settings["port_logdir"]
> > + self.env["PORT_LOGDIR"]=self.target_mounts["port_logdir"]
>
> Looks good. The mounts/mountmap changes are orthogonal to the
> target_mounts addition, but it's probably not worth splitting them out
> into a separate fixup.
Yeah, I missed separating some of that. Looks like I have to rebase the
hell out of these again anyway, so, maybe I will...
> Cheers,
> Trevor
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration
2013-12-29 2:19 ` W. Trevor King
@ 2013-12-29 5:08 ` Brian Dolbec
0 siblings, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 5:08 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 818 bytes --]
On Sat, 2013-12-28 at 18:19 -0800, W. Trevor King wrote:
> On Sat, Dec 28, 2013 at 05:57:06PM -0800, Brian Dolbec wrote:
> > - "portdir":self.settings["snapshot_cache_path"]+"/portage",\
> > + "portdir": normpath(self.settings["snapshot_cache_path"] + "/" +
> > + self.settings["repo_name"]),
> > "distdir":self.settings["distdir"],"port_tmpdir":"tmpfs"}
>
> Ah, this is getting rid of that trailing backslash, so I'm fine if it
> stays in the previous commit. We're still missing the space before
> “"port_tmpdir"”. The use of normpath and the repo_name setting look
> good.
>
> Cheers,
> Trevor
>
That too is not part of what this commit is changing. That line is a
context line. This commit is touching the previous line. This commit
is also not a whitespace cleanup.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
2013-12-29 2:49 ` W. Trevor King
@ 2013-12-29 5:26 ` Alec Warner
2013-12-29 6:01 ` Brian Dolbec
1 sibling, 1 reply; 61+ messages in thread
From: Alec Warner @ 2013-12-29 5:26 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
[-- Attachment #1: Type: text/plain, Size: 12747 bytes --]
On Sat, Dec 28, 2013 at 5:57 PM, Brian Dolbec <dolsen@gentoo.org> wrote:
> Cleans up all self.mounts, self.mountmap usage.
> Replace multiple path additions with one instance at the beginning of the
> function, reuse the result multiple times.
> Add some extra debug prints (to be converted to logging later)
> ---
> modules/generic_stage_target.py | 94
> ++++++++++++++++++++++++++---------------
> modules/stage1_target.py | 5 ++-
> 2 files changed, 63 insertions(+), 36 deletions(-)
>
> diff --git a/modules/generic_stage_target.py
> b/modules/generic_stage_target.py
> index ce28ab8..c8d31e1 100644
> --- a/modules/generic_stage_target.py
> +++ b/modules/generic_stage_target.py
> @@ -4,6 +4,23 @@ from generic_target import *
> from stat import *
> import catalyst_lock
>
> +# temporary location. It will be moved to a
> +# new defaults file in a later comit
> +TARGET_MOUNTS_DEFAULTS = {
> + "proc": "/proc",
> + "dev": "/dev",
> + "devpts": "/dev/pts",
> + "portdir": "/usr/portage",
> + "distdir": "/usr/portage/distfiles",
> + "packagedir": "/usr/portage/packages",
> + "port_tmpdir": "/var/tmp/portage",
> + "kerncache": "/tmp/kerncache",
> + "ccache": "/var/tmp/ccache",
> + "icecream": "/usr/lib/icecc/bin",
> + "port_logdir": "/var/log/portage",
> + }
> +
> +
> class generic_stage_target(generic_target):
> """
> This class does all of the chroot setup, copying of files, etc. It
> is
> @@ -173,6 +190,10 @@ class generic_stage_target(generic_target):
>
> file_locate(self.settings,["portage_confdir"],expand=0)
>
> """ Setup our mount points """
> + # initialize our target mounts.
> + # later I plan to make these configurable so the
> + # defaults can be easily overridden if desired.
> + self.target_mounts = TARGET_MOUNTS_DEFAULTS.copy()
> if "SNAPCACHE" in self.settings:
> self.mounts=["proc", "dev", "portdir", "distdir",
> "port_tmpdir"]
> self.mountmap={"proc":"/proc", "dev":"/dev",
> "devpts":"/dev/pts",
> @@ -219,17 +240,18 @@ class generic_stage_target(generic_target):
> self.mounts.append("ccache")
> self.mountmap["ccache"] = ccdir
> """ for the chroot: """
> - self.env["CCACHE_DIR"]="/var/tmp/ccache"
> + self.env["CCACHE_DIR"] =
> self.target_mounts["ccache"]
>
> if "ICECREAM" in self.settings:
> self.mounts.append("/var/cache/icecream")
>
> self.mountmap["/var/cache/icecream"]="/var/cache/icecream"
> -
> self.env["PATH"]="/usr/lib/icecc/bin:"+self.env["PATH"]
> + self.env["PATH"] = self.target_mounts["icecream"]
> + ":" + \
> + self.env["PATH"]
>
if "port_logdir" in self.settings:
> - self.mounts.append("/var/log/portage")
> -
> self.mountmap["/var/log/portage"]=self.settings["port_logdir"]
> - self.env["PORT_LOGDIR"]="/var/log/portage"
> + self.mounts.append("port_logdir")
> +
> self.mountmap["port_logdir"]=self.settings["port_logdir"]
> +
> self.env["PORT_LOGDIR"]=self.target_mounts["port_logdir"]
> self.env["PORT_LOGDIR_CLEAN"]='find
> "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
>
I've avoided commenting on + in strings, as my understanding was that we
were not doing style fixups in these CLs. I would argue that in general,
any time you use string + string in python, you are doing it wrong (e.g.
your code is not 'pythonic')
You can use
"%s:%s" % (string1, string2) or ":".join(string1, string2)
Either are fine, and are nominally better than string + string + string.
>
> def override_cbuild(self):
> @@ -603,33 +625,34 @@ class generic_stage_target(generic_target):
> "kill-chroot-pids script
> failed.",env=self.env)
>
> def mount_safety_check(self):
> - mypath=self.settings["chroot_path"]
> -
> """
> Check and verify that none of our paths in mypath are
> mounted. We don't
> want to clean up with things still mounted, and this
> allows us to check.
> Returns 1 on ok, 0 on "something is still mounted" case.
> """
>
> - if not os.path.exists(mypath):
> + if not os.path.exists(self.settings["chroot_path"]):
> return
>
> + print "self.mounts =", self.mounts
> for x in self.mounts:
> - if not os.path.exists(mypath + self.mountmap[x]):
> + target = normpath(self.settings["chroot_path"] +
> self.target_mounts[x])
> + print "mount_safety_check() x =", x, target
> + if not os.path.exists(target):
> continue
>
> - if ismount(mypath + self.mountmap[x]):
> + if ismount(target):
> """ Something is still mounted "" """
> try:
> - print self.mountmap[x] + " is
> still mounted; performing auto-bind-umount...",
> + print target + " is still mounted;
> performing auto-bind-umount...",
> """ Try to umount stuff ourselves
> """
> self.unbind()
> - if ismount(mypath +
> self.mountmap[x]):
> - raise CatalystError,
> "Auto-unbind failed for " + self.mountmap[x]
> + if ismount(target):
> + raise CatalystError,
> "Auto-unbind failed for " + target
> else:
> print "Auto-unbind
> successful..."
> except CatalystError:
> - raise CatalystError, "Unable to
> auto-unbind " + self.mountmap[x]
> + raise CatalystError, "Unable to
> auto-unbind " + target
>
> def unpack(self):
> unpack=True
> @@ -897,12 +920,14 @@ class generic_stage_target(generic_target):
>
> def bind(self):
> for x in self.mounts:
> - if not os.path.exists(self.settings["chroot_path"]
> + self.mountmap[x]):
> -
> os.makedirs(self.settings["chroot_path"]+x,0755)
> + #print "bind(); x =", x
> + target = normpath(self.settings["chroot_path"] +
> self.target_mounts[x])
> + if not os.path.exists(target):
> + os.makedirs(target, 0755)
>
> if not os.path.exists(self.mountmap[x]):
> if not self.mountmap[x] == "tmpfs":
> - os.makedirs(self.mountmap[x],0755)
> + os.makedirs(self.mountmap[x], 0755)
>
> src=self.mountmap[x]
> #print "bind(); src =", src
> @@ -910,20 +935,22 @@ 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"] + src)
> + cmd = "mount -t devfs none " +
> target
> + retval=os.system(cmd)
>
"because the code use to do it" aside, is there some compelling reason to
not use subprocess.Popen here? os.system is probably the worst syscall you
can use. It spawns a shell, it will select things like './mount' over
'/usr/bin/mount' because you failed to specify the full path to the binary,
its not clear what environment the shell is using.
Even something like:
import subprocess
retval = subprocess.call(cmd.split())
would likely avoid these problems unless you are relying on shell expansion
in cmd?
> else:
> - retval = os.system("mount_nullfs "
> + src + " " +
> -
> self.settings["chroot_path"] + src)
> + cmd = "mount_nullfs " + src + " "
> + target
> + retval=os.system(cmd)
> else:
> if src == "tmpfs":
> if "var_tmpfs_portage" in
> self.settings:
> - retval=os.system("mount -t
> tmpfs -o size="+\
> -
> self.settings["var_tmpfs_portage"]+"G "+src+" "+\
> -
> self.settings["chroot_path"]+x)
> + cmd = "mount -t tmpfs -o
> size=" + \
> +
> self.settings["var_tmpfs_portage"] + "G " + \
> + src + " " + target
> + retval=os.system(cmd)
> else:
> - retval = os.system("mount --bind "
> + src + " " +
> -
> self.settings["chroot_path"] + src)
> + cmd = "mount --bind " + src + " "
> + target
> + #print "bind(); cmd =", cmd
> + retval=os.system(cmd)
> if retval!=0:
> self.unbind()
> raise CatalystError,"Couldn't bind mount "
> + src
> @@ -935,26 +962,25 @@ 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 + self.mountmap[x]):
> + target = normpath(mypath + self.target_mounts[x])
> + if not os.path.exists(target):
> continue
>
> - if not ismount(mypath + self.mountmap[x]):
> + if not ismount(target):
> continue
>
> - retval=os.system("umount "+\
> - os.path.join(mypath,
> self.mountmap[x].lstrip(os.path.sep)))
> + retval=os.system("umount " + target)
>
> if retval!=0:
> - warn("First attempt to unmount: " + mypath
> +
> - self.mountmap[x] +" failed.")
> + warn("First attempt to unmount: " + target
> + " failed.")
> warn("Killing any pids still running in
> the chroot")
>
> self.kill_chroot_pids()
>
> - retval2 = os.system("umount " + mypath +
> self.mountmap[x])
> + retval2 = os.system("umount " + target)
> if retval2!=0:
> ouch=1
> - warn("Couldn't umount bind mount:
> " + mypath + self.mountmap[x])
> + warn("Couldn't umount bind mount:
> " + target)
>
> if "SNAPCACHE" in self.settings and x ==
> "/usr/portage":
> try:
> diff --git a/modules/stage1_target.py b/modules/stage1_target.py
> index aa43926..1e0d874 100644
> --- a/modules/stage1_target.py
> +++ b/modules/stage1_target.py
> @@ -88,8 +88,9 @@ class stage1_target(generic_stage_target):
> os.makedirs(self.settings["stage_path"]+"/proc")
>
> # alter the mount mappings to bind mount proc onto it
> - self.mounts.append("/tmp/stage1root/proc")
> - self.mountmap["/tmp/stage1root/proc"]="/proc"
> + self.mounts.append("stage1root/proc")
> + self.target_mounts["stage1root/proc"] =
> "/tmp/stage1root/proc"
> + self.mountmap["stage1root/proc"]="/proc"
>
> def register(foo):
> foo.update({"stage1":stage1_target})
> --
> 1.8.3.2
>
>
>
[-- Attachment #2: Type: text/html, Size: 18467 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-29 5:26 ` Alec Warner
@ 2013-12-29 6:01 ` Brian Dolbec
0 siblings, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-29 6:01 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 7657 bytes --]
On Sat, 2013-12-28 at 21:26 -0800, Alec Warner wrote:
> On Sat, Dec 28, 2013 at 5:57 PM, Brian Dolbec <dolsen@gentoo.org>
>
>
> I've avoided commenting on + in strings, as my understanding was that
> we were not doing style fixups in these CLs. I would argue that in
> general, any time you use string + string in python, you are doing it
> wrong (e.g. your code is not 'pythonic')
>
>
> You can use
>
>
> "%s:%s" % (string1, string2) or ":".join(string1, string2)
>
>
> Either are fine, and are nominally better than string + string +
> string.
>
>
Actually string + string is faster than "%s%s" %(string1, string2) for
simple string adition like this example. However %s substitution
performs better for larger multiples which occur many, many times
throughout the code. So, yes we should clean this up after the current
rewrite code is merged in one form or another.
>
>
>
> 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"] + src)
> + cmd = "mount -t devfs
> none " + target
> + retval=os.system(cmd)
>
>
> "because the code use to do it" aside, is there some compelling reason
> to not use subprocess.Popen here? os.system is probably the worst
> syscall you can use. It spawns a shell, it will select things like
> './mount' over '/usr/bin/mount' because you failed to specify the full
> path to the binary, its not clear what environment the shell is using.
>
>
> Even something like:
>
>
> import subprocess
> retval = subprocess.call(cmd.split())
>
>
> would likely avoid these problems unless you are relying on shell
> expansion in cmd?
>
>
>
Yes, I have changed the primary chroot run from the old cloned portage
spawn()'s to using subprocess.Popen. Coming to you in a future commit
waiting it's turn here. I have not yet tackled these os.system() calls.
These changes just moved the string addition out of the function call as
a preparation for it's replacement.
There is no shortage of things that need fixing...
There are lots more uses of os.system() below...
>
>
> else:
> - retval =
> os.system("mount_nullfs " + src + " " +
> -
> self.settings["chroot_path"] + src)
> + cmd = "mount_nullfs "
> + src + " " + target
> + retval=os.system(cmd)
> else:
> if src == "tmpfs":
> if "var_tmpfs_portage"
> in self.settings:
> -
> retval=os.system("mount -t tmpfs -o size="+\
> -
> self.settings["var_tmpfs_portage"]+"G "+src+" "+\
> -
> self.settings["chroot_path"]+x)
> + cmd = "mount
> -t tmpfs -o size=" + \
> +
> self.settings["var_tmpfs_portage"] + "G " + \
> + src +
> " " + target
> +
> retval=os.system(cmd)
> else:
> - retval =
> os.system("mount --bind " + src + " " +
> -
> self.settings["chroot_path"] + src)
> + cmd = "mount --bind "
> + src + " " + target
> + #print "bind(); cmd
> =", cmd
> + retval=os.system(cmd)
> if retval!=0:
> self.unbind()
> raise CatalystError,"Couldn't
> bind mount " + src
> @@ -935,26 +962,25 @@ 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 +
> self.mountmap[x]):
> + target = normpath(mypath +
> self.target_mounts[x])
> + if not os.path.exists(target):
> continue
>
> - if not ismount(mypath +
> self.mountmap[x]):
> + if not ismount(target):
> continue
>
> - retval=os.system("umount "+\
> - os.path.join(mypath,
> self.mountmap[x].lstrip(os.path.sep)))
> + retval=os.system("umount " + target)
>
> if retval!=0:
> - warn("First attempt to
> unmount: " + mypath +
> - self.mountmap[x] +"
> failed.")
> + warn("First attempt to
> unmount: " + target + " failed.")
> warn("Killing any pids still
> running in the chroot")
>
> self.kill_chroot_pids()
>
> - retval2 = os.system("umount "
> + mypath + self.mountmap[x])
> + retval2 = os.system("umount "
> + target)
> if retval2!=0:
> ouch=1
> - warn("Couldn't umount
> bind mount: " + mypath + self.mountmap[x])
> + warn("Couldn't umount
> bind mount: " + target)
>
> if "SNAPCACHE" in self.settings and x
> == "/usr/portage":
> try:
> diff --git a/modules/stage1_target.py
> b/modules/stage1_target.py
> index aa43926..1e0d874 100644
> --- a/modules/stage1_target.py
> +++ b/modules/stage1_target.py
> @@ -88,8 +88,9 @@ class stage1_target(generic_stage_target):
>
> os.makedirs(self.settings["stage_path"]+"/proc")
>
> # alter the mount mappings to bind mount proc
> onto it
> - self.mounts.append("/tmp/stage1root/proc")
> - self.mountmap["/tmp/stage1root/proc"]="/proc"
> + self.mounts.append("stage1root/proc")
> + self.target_mounts["stage1root/proc"] =
> "/tmp/stage1root/proc"
> + self.mountmap["stage1root/proc"]="/proc"
>
> def register(foo):
> foo.update({"stage1":stage1_target})
> --
> 1.8.3.2
>
>
>
>
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2
2013-12-29 1:57 [gentoo-catalyst] Patches to fix rebased patches already applied to current master Brian Dolbec
` (5 preceding siblings ...)
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
@ 2013-12-30 1:50 ` Brian Dolbec
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: Use portdir, distdir,... instead of paths for keys Brian Dolbec
` (6 more replies)
2014-01-03 4:16 ` [PATCH v3 0/6] "Re: " Brian Dolbec
7 siblings, 7 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 1:50 UTC (permalink / raw
To: gentoo-catalyst
These patches have all previous review suggestions applied.
They also now have _ALL_ style considerations appplied if the line has been touched.
Patch numbers do not necessarily correspond to the previous ones.
The prevoius patch #4 has been sqaushed into patch #1.
There is a new patch #4, which has been split out of patch #5
^ permalink raw reply [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: Use portdir, distdir,... instead of paths for keys
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
@ 2013-12-30 1:50 ` Brian Dolbec
2013-12-30 3:54 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
` (5 subsequent siblings)
6 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 1:50 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
If snapcache is enabled, self.mounts and self.mountmap had not been modified
like they were if it was not enabled.
Fix a missed self.mounts key change from a path as key.
original patch: 27b751ffd9594e0128a3d70f83c7af18dab03838
Added a print statement for debugging to be converted to logging in the future.
---
modules/generic_stage_target.py | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 3e60f72..6c8cdbc 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -174,10 +174,10 @@ class generic_stage_target(generic_target):
""" Setup our mount points """
if "SNAPCACHE" in self.settings:
- self.mounts=["/proc","/dev","/usr/portage","/usr/portage/distfiles","/var/tmp/portage"]
- self.mountmap={"/proc":"/proc","/dev":"/dev","devpts":"/dev/pts",
- "/usr/portage":self.settings["snapshot_cache_path"]+"/portage",\
- "/usr/portage/distfiles":self.settings["distdir"],"/var/tmp/portage":"tmpfs"}
+ self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
+ self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
+ "portdir": self.settings["snapshot_cache_path"] + "/portage",
+ "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
else:
self.mounts = ["proc", "dev", "distdir", "port_tmpdir"]
self.mountmap = {"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
@@ -904,7 +904,8 @@ class generic_stage_target(generic_target):
os.makedirs(self.mountmap[x],0755)
src=self.mountmap[x]
- if "SNAPCACHE" in self.settings and x == "/usr/portage":
+ #print "bind(); src =", src
+ if "SNAPCACHE" in self.settings and x == "portdir":
self.snapshot_lock_object.read_lock()
if os.uname()[0] == "FreeBSD":
if src == "/dev":
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: Use portdir, distdir,... instead of paths for keys Brian Dolbec
@ 2013-12-30 1:50 ` Brian Dolbec
2013-12-30 3:58 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 3/6] Fixes commit 463d98f (modules/generic_stage_target.py: Use a 'local_overlay' setting instead of hard-coding '/usr/local/portage', 2012-12-19).Add "local_overlay" to configdefaults Brian Dolbec
` (4 subsequent siblings)
6 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 1:50 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Use normpath() on it as well.
Fix the coding style in the lines touched.
---
modules/generic_stage_target.py | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 6c8cdbc..51375c0 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -174,10 +174,17 @@ class generic_stage_target(generic_target):
""" Setup our mount points """
if "SNAPCACHE" in self.settings:
- self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
- self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
- "portdir": self.settings["snapshot_cache_path"] + "/portage",
- "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
+ self.mounts = ["proc", "dev", "portdir", "distdir", "port_tmpdir"]
+ self.mountmap = {
+ "proc": "/proc",
+ "dev": "/dev",
+ "devpts": "/dev/pts",
+ "portdir": normpath("/".join([
+ self.settings["snapshot_cache_path"],
+ self.settings["repo_name"],
+ ])),
+ "distdir": self.settings["distdir"],
+ "port_tmpdir": "tmpfs"}
else:
self.mounts = ["proc", "dev", "distdir", "port_tmpdir"]
self.mountmap = {"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 3/6] Fixes commit 463d98f (modules/generic_stage_target.py: Use a 'local_overlay' setting instead of hard-coding '/usr/local/portage', 2012-12-19).Add "local_overlay" to configdefaults.
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: Use portdir, distdir,... instead of paths for keys Brian Dolbec
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
@ 2013-12-30 1:50 ` Brian Dolbec
2013-12-30 4:02 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 4/6] Fix mounts and mountmap port_logdir code block Brian Dolbec
` (3 subsequent siblings)
6 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 1:50 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
---
catalyst | 1 +
1 file changed, 1 insertion(+)
diff --git a/catalyst b/catalyst
index 4ea4248..82b0942 100755
--- a/catalyst
+++ b/catalyst
@@ -66,6 +66,7 @@ def parse_config(myconfig):
confdefaults = {
"distdir": "/usr/portage/distfiles",
"hash_function": "crc32",
+ "local_overlay": "/usr/local/portage",
"options": "",
"packagedir": "/usr/portage/packages",
"portdir": "/usr/portage",
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 4/6] Fix mounts and mountmap port_logdir code block.
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
` (2 preceding siblings ...)
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 3/6] Fixes commit 463d98f (modules/generic_stage_target.py: Use a 'local_overlay' setting instead of hard-coding '/usr/local/portage', 2012-12-19).Add "local_overlay" to configdefaults Brian Dolbec
@ 2013-12-30 1:50 ` Brian Dolbec
2013-12-30 4:09 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
` (2 subsequent siblings)
6 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 1:50 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
---
modules/generic_stage_target.py | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 51375c0..8f7654e 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -4,6 +4,11 @@ from generic_target import *
from stat import *
import catalyst_lock
+
+PORT_LOGDIR_CLEAN = \
+ 'find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
+
+
class generic_stage_target(generic_target):
"""
This class does all of the chroot setup, copying of files, etc. It is
@@ -233,10 +238,10 @@ class generic_stage_target(generic_target):
self.env["PATH"]="/usr/lib/icecc/bin:"+self.env["PATH"]
if "port_logdir" in self.settings:
- self.mounts.append("/var/log/portage")
- self.mountmap["/var/log/portage"]=self.settings["port_logdir"]
- self.env["PORT_LOGDIR"]="/var/log/portage"
- self.env["PORT_LOGDIR_CLEAN"]='find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
+ self.mounts.append("port_logdir")
+ self.mountmap["port_logdir"] = self.settings["port_logdir"]
+ self.env["PORT_LOGDIR"] = self.settings["port_logdir"]
+ self.env["PORT_LOGDIR_CLEAN"] = PORT_LOGDIR_CLEAN
def override_cbuild(self):
if "CBUILD" in self.makeconf:
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
` (3 preceding siblings ...)
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 4/6] Fix mounts and mountmap port_logdir code block Brian Dolbec
@ 2013-12-30 1:50 ` Brian Dolbec
2013-12-30 4:16 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
2013-12-30 3:33 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 W. Trevor King
6 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 1:50 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Temporary location to define TARGET_MOUNTS, IT will be moved to a new defaults.py file in a later commit.
I also plan to make them configurable.
Cleans up all self.mounts, self.mountmap usage.
Replace multiple path additions with one instance at the beginning of the function, reuse the result multiple times.
Add some extra debug prints (to be converted to logging later)
---
modules/generic_stage_target.py | 83 ++++++++++++++++++++++++++---------------
modules/stage1_target.py | 5 ++-
2 files changed, 55 insertions(+), 33 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 8f7654e..8d98e58 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -8,6 +8,20 @@ import catalyst_lock
PORT_LOGDIR_CLEAN = \
'find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
+TARGET_MOUNTS_DEFAULTS = {
+ "ccache": "/var/tmp/ccache",
+ "dev": "/dev",
+ "devpts": "/dev/pts",
+ "distdir": "/usr/portage/distfiles",
+ "icecream": "/usr/lib/icecc/bin",
+ "kerncache": "/tmp/kerncache",
+ "packagedir": "/usr/portage/packages",
+ "portdir": "/usr/portage",
+ "port_tmpdir": "/var/tmp/portage",
+ "port_logdir": "/var/log/portage",
+ "proc": "/proc",
+ }
+
class generic_stage_target(generic_target):
"""
@@ -178,6 +192,8 @@ class generic_stage_target(generic_target):
file_locate(self.settings,["portage_confdir"],expand=0)
""" Setup our mount points """
+ # initialize our target mounts.
+ self.target_mounts = TARGET_MOUNTS_DEFAULTS.copy()
if "SNAPCACHE" in self.settings:
self.mounts = ["proc", "dev", "portdir", "distdir", "port_tmpdir"]
self.mountmap = {
@@ -230,12 +246,13 @@ class generic_stage_target(generic_target):
self.mounts.append("ccache")
self.mountmap["ccache"] = ccdir
""" for the chroot: """
- self.env["CCACHE_DIR"]="/var/tmp/ccache"
+ self.env["CCACHE_DIR"] = self.target_mounts["ccache"]
if "ICECREAM" in self.settings:
self.mounts.append("/var/cache/icecream")
self.mountmap["/var/cache/icecream"]="/var/cache/icecream"
- self.env["PATH"]="/usr/lib/icecc/bin:"+self.env["PATH"]
+ self.env["PATH"] = self.target_mounts["icecream"] + ":" + \
+ self.env["PATH"]
if "port_logdir" in self.settings:
self.mounts.append("port_logdir")
@@ -614,33 +631,34 @@ class generic_stage_target(generic_target):
"kill-chroot-pids script failed.",env=self.env)
def mount_safety_check(self):
- mypath=self.settings["chroot_path"]
-
"""
Check and verify that none of our paths in mypath are mounted. We don't
want to clean up with things still mounted, and this allows us to check.
Returns 1 on ok, 0 on "something is still mounted" case.
"""
- if not os.path.exists(mypath):
+ if not os.path.exists(self.settings["chroot_path"]):
return
+ print "self.mounts =", self.mounts
for x in self.mounts:
- if not os.path.exists(mypath + self.mountmap[x]):
+ target = normpath(self.settings["chroot_path"] + self.target_mounts[x])
+ print "mount_safety_check() x =", x, target
+ if not os.path.exists(target):
continue
- if ismount(mypath + self.mountmap[x]):
+ if ismount(target):
""" Something is still mounted "" """
try:
- print self.mountmap[x] + " is still mounted; performing auto-bind-umount...",
+ print target + " is still mounted; performing auto-bind-umount...",
""" Try to umount stuff ourselves """
self.unbind()
- if ismount(mypath + self.mountmap[x]):
- raise CatalystError, "Auto-unbind failed for " + self.mountmap[x]
+ if ismount(target):
+ raise CatalystError, "Auto-unbind failed for " + target
else:
print "Auto-unbind successful..."
except CatalystError:
- raise CatalystError, "Unable to auto-unbind " + self.mountmap[x]
+ raise CatalystError, "Unable to auto-unbind " + target
def unpack(self):
unpack=True
@@ -908,12 +926,14 @@ class generic_stage_target(generic_target):
def bind(self):
for x in self.mounts:
- if not os.path.exists(self.settings["chroot_path"] + self.mountmap[x]):
- os.makedirs(self.settings["chroot_path"]+x,0755)
+ #print "bind(); x =", x
+ target = normpath(self.settings["chroot_path"] + self.target_mounts[x])
+ if not os.path.exists(target):
+ os.makedirs(target, 0755)
if not os.path.exists(self.mountmap[x]):
if not self.mountmap[x] == "tmpfs":
- os.makedirs(self.mountmap[x],0755)
+ os.makedirs(self.mountmap[x], 0755)
src=self.mountmap[x]
#print "bind(); src =", src
@@ -921,20 +941,22 @@ 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"] + src)
+ cmd = "mount -t devfs none " + target
+ retval=os.system(cmd)
else:
- retval = os.system("mount_nullfs " + src + " " +
- self.settings["chroot_path"] + src)
+ cmd = "mount_nullfs " + src + " " + target
+ retval=os.system(cmd)
else:
if src == "tmpfs":
if "var_tmpfs_portage" in self.settings:
- retval=os.system("mount -t tmpfs -o size="+\
- self.settings["var_tmpfs_portage"]+"G "+src+" "+\
- self.settings["chroot_path"]+x)
+ cmd = "mount -t tmpfs -o size=" + \
+ self.settings["var_tmpfs_portage"] + "G " + \
+ src + " " + target
+ retval=os.system(cmd)
else:
- retval = os.system("mount --bind " + src + " " +
- self.settings["chroot_path"] + src)
+ cmd = "mount --bind " + src + " " + target
+ #print "bind(); cmd =", cmd
+ retval=os.system(cmd)
if retval!=0:
self.unbind()
raise CatalystError,"Couldn't bind mount " + src
@@ -946,26 +968,25 @@ 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 + self.mountmap[x]):
+ target = normpath(mypath + self.target_mounts[x])
+ if not os.path.exists(target):
continue
- if not ismount(mypath + self.mountmap[x]):
+ if not ismount(target):
continue
- retval=os.system("umount "+\
- os.path.join(mypath, self.mountmap[x].lstrip(os.path.sep)))
+ retval=os.system("umount " + target)
if retval!=0:
- warn("First attempt to unmount: " + mypath +
- self.mountmap[x] +" failed.")
+ warn("First attempt to unmount: " + target + " failed.")
warn("Killing any pids still running in the chroot")
self.kill_chroot_pids()
- retval2 = os.system("umount " + mypath + self.mountmap[x])
+ retval2 = os.system("umount " + target)
if retval2!=0:
ouch=1
- warn("Couldn't umount bind mount: " + mypath + self.mountmap[x])
+ warn("Couldn't umount bind mount: " + target)
if "SNAPCACHE" in self.settings and x == "/usr/portage":
try:
diff --git a/modules/stage1_target.py b/modules/stage1_target.py
index aa43926..5f4ffa0 100644
--- a/modules/stage1_target.py
+++ b/modules/stage1_target.py
@@ -88,8 +88,9 @@ class stage1_target(generic_stage_target):
os.makedirs(self.settings["stage_path"]+"/proc")
# alter the mount mappings to bind mount proc onto it
- self.mounts.append("/tmp/stage1root/proc")
- self.mountmap["/tmp/stage1root/proc"]="/proc"
+ self.mounts.append("stage1root/proc")
+ self.target_mounts["stage1root/proc"] = "/tmp/stage1root/proc"
+ self.mountmap["stage1root/proc"] = "/proc"
def register(foo):
foo.update({"stage1":stage1_target})
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now.
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
` (4 preceding siblings ...)
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
@ 2013-12-30 1:50 ` Brian Dolbec
2013-12-30 4:19 ` W. Trevor King
2013-12-30 3:33 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 W. Trevor King
6 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 1:50 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
“mountmap” is for source paths. “mounts” is for path-agnostic keys.
I plan to add a source_mounts to settings later to compliment the target_mounts paths.
---
catalyst | 1 +
modules/generic_stage_target.py | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/catalyst b/catalyst
index 82b0942..cb6c022 100755
--- a/catalyst
+++ b/catalyst
@@ -66,6 +66,7 @@ def parse_config(myconfig):
confdefaults = {
"distdir": "/usr/portage/distfiles",
"hash_function": "crc32",
+ "icecream": "/var/cache/icecream",
"local_overlay": "/usr/local/portage",
"options": "",
"packagedir": "/usr/portage/packages",
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 8d98e58..bbea57a 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -249,8 +249,8 @@ class generic_stage_target(generic_target):
self.env["CCACHE_DIR"] = self.target_mounts["ccache"]
if "ICECREAM" in self.settings:
- self.mounts.append("/var/cache/icecream")
- self.mountmap["/var/cache/icecream"]="/var/cache/icecream"
+ self.mounts.append("icecream")
+ self.mountmap["icecream"] = self.settings["icecream"]
self.env["PATH"] = self.target_mounts["icecream"] + ":" + \
self.env["PATH"]
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
` (5 preceding siblings ...)
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
@ 2013-12-30 3:33 ` W. Trevor King
6 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-30 3:33 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 480 bytes --]
On Sun, Dec 29, 2013 at 05:50:47PM -0800, Brian Dolbec wrote:
> These patches have all previous review suggestions applied.
You can use:
$ git format-patch -v2 …
to get [PATCH v2] tags in your subjects so you don't have to say
“Version-2” by hand. I see you did use --in-reply-to, thanks :).
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: Use portdir, distdir,... instead of paths for keys
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: Use portdir, distdir,... instead of paths for keys Brian Dolbec
@ 2013-12-30 3:54 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-30 3:54 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 2105 bytes --]
There's still an extra space in the commit summary:
“: Use” vs. “: Use”
Not a big deal, but it's an easy fix ;).
On Sun, Dec 29, 2013 at 05:50:48PM -0800, Brian Dolbec wrote:
> Fix a missed self.mounts key change from a path as key.
> original patch: 27b751ffd9594e0128a3d70f83c7af18dab03838
As I mentioned in my comments on v1#4:
On Sat, Dec 28, 2013 at 06:30:15PM -0800, W. Trevor King wrote:
> On Sat, Dec 28, 2013 at 05:57:08PM -0800, Brian Dolbec wrote:
> > original patch: 27b751ffd9594e0128a3d70f83c7af18dab03838
>
> Actually, I don't think this is related to 27b751f
> (modules/generic_stage_target.py: Use 'portdir' instead of hard-coding
> '/usr/portage', 2012-12-19), which was only about
> self.settings["portdir"].
All of the stuff in here (from both v1#1 and v1#4) is just fixing the
mountmap keys and matching mounts entries for the SNAPCACHE case. If
you want to blame a commit, I'd blame the whole:
Use '*' instead of '*' as the mountmap key
series for skipping the SNAPCACHE cases.
On Sun, Dec 29, 2013 at 05:50:48PM -0800, Brian Dolbec wrote:
> - self.mounts=["/proc","/dev","/usr/portage","/usr/portage/distfiles","/var/tmp/portage"]
> - self.mountmap={"/proc":"/proc","/dev":"/dev","devpts":"/dev/pts",
> - "/usr/portage":self.settings["snapshot_cache_path"]+"/portage",\
> - "/usr/portage/distfiles":self.settings["distdir"],"/var/tmp/portage":"tmpfs"}
> + self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
> + self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
> + "portdir": self.settings["snapshot_cache_path"] + "/portage",
> + "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
> …
> - if "SNAPCACHE" in self.settings and x == "/usr/portage":
> + #print "bind(); src =", src
> + if "SNAPCACHE" in self.settings and x == "portdir":
The code changes look great :).
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
@ 2013-12-30 3:58 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-30 3:58 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 923 bytes --]
On Sun, Dec 29, 2013 at 05:50:49PM -0800, Brian Dolbec wrote:
> - self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
> - self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
> - "portdir": self.settings["snapshot_cache_path"] + "/portage",
> - "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
> + self.mounts = ["proc", "dev", "portdir", "distdir", "port_tmpdir"]
> + self.mountmap = {
> + "proc": "/proc",
> + "dev": "/dev",
> + "devpts": "/dev/pts",
> + "portdir": normpath("/".join([
> + self.settings["snapshot_cache_path"],
> + self.settings["repo_name"],
> + ])),
> + "distdir": self.settings["distdir"],
> + "port_tmpdir": "tmpfs"}
Love it :).
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 3/6] Fixes commit 463d98f (modules/generic_stage_target.py: Use a 'local_overlay' setting instead of hard-coding '/usr/local/portage', 2012-12-19).Add "local_overlay" to configdefaults.
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 3/6] Fixes commit 463d98f (modules/generic_stage_target.py: Use a 'local_overlay' setting instead of hard-coding '/usr/local/portage', 2012-12-19).Add "local_overlay" to configdefaults Brian Dolbec
@ 2013-12-30 4:02 ` W. Trevor King
2013-12-30 5:32 ` Brian Dolbec
0 siblings, 1 reply; 61+ messages in thread
From: W. Trevor King @ 2013-12-30 4:02 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 527 bytes --]
That's a long subject ;). How about:
Add "local_overlay" to configdefaults
Fixes commit 463d98f (modules/generic_stage_target.py: Use a
'local_overlay' setting instead of hard-coding '/usr/local/portage',
2012-12-19).
That gives you both a concise summary and a more detailed body without
making wrapping in `git log --oneline`.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 4/6] Fix mounts and mountmap port_logdir code block.
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 4/6] Fix mounts and mountmap port_logdir code block Brian Dolbec
@ 2013-12-30 4:09 ` W. Trevor King
2013-12-30 5:46 ` Brian Dolbec
0 siblings, 1 reply; 61+ messages in thread
From: W. Trevor King @ 2013-12-30 4:09 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1153 bytes --]
On Sun, Dec 29, 2013 at 05:50:51PM -0800, Brian Dolbec wrote:
> +PORT_LOGDIR_CLEAN = \
> + 'find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
Pulling out this global variable is new for v2. I don't think I'm a
fan. I think it should either be hard-coded where we setup
env["PORT_LOGDIR_CLEAN"] (as it was before) or pulled out of
self.settings (like PORT_LOGDIR).
> - self.mounts.append("/var/log/portage")
> - self.mountmap["/var/log/portage"]=self.settings["port_logdir"]
> - self.env["PORT_LOGDIR"]="/var/log/portage"
> - self.env["PORT_LOGDIR_CLEAN"]='find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
> + self.mounts.append("port_logdir")
> + self.mountmap["port_logdir"] = self.settings["port_logdir"]
> + self.env["PORT_LOGDIR"] = self.settings["port_logdir"]
> + self.env["PORT_LOGDIR_CLEAN"] = PORT_LOGDIR_CLEAN
Other than the newly-global PORT_LOGDIR_CLEAN, this looks good to me.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
@ 2013-12-30 4:16 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-30 4:16 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1138 bytes --]
On Sun, Dec 29, 2013 at 05:50:52PM -0800, Brian Dolbec wrote:
> Temporary location to define TARGET_MOUNTS, IT will be moved to a new defaults.py file in a later commit.
“TARGET_MOUNTS, IT” → “TARGET_MOUNTS_DEFAULTS. It”.
I'd also wrap the long lines into paragraphs (just like email :), but
I'm fine if you'd rather stick with one line per sentence.
> +TARGET_MOUNTS_DEFAULTS = {
> + "ccache": "/var/tmp/ccache",
> + "dev": "/dev",
> + "devpts": "/dev/pts",
> + "distdir": "/usr/portage/distfiles",
> + "icecream": "/usr/lib/icecc/bin",
> + "kerncache": "/tmp/kerncache",
> + "packagedir": "/usr/portage/packages",
> + "portdir": "/usr/portage",
> + "port_tmpdir": "/var/tmp/portage",
> + "port_logdir": "/var/log/portage",
> + "proc": "/proc",
> + }
> +
+1 for alphebetizing this.
The rest of the patch matches v1#5 (less the v2#4 changes) with the
future-predicting comments pulled out. All of that looks good too.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now.
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
@ 2013-12-30 4:19 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-30 4:19 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 343 bytes --]
On Sun, Dec 29, 2013 at 05:50:53PM -0800, Brian Dolbec wrote:
> “mountmap” is for source paths. “mounts” is for path-agnostic keys.
Looks good to me ;).
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 3/6] Fixes commit 463d98f (modules/generic_stage_target.py: Use a 'local_overlay' setting instead of hard-coding '/usr/local/portage', 2012-12-19).Add "local_overlay" to configdefaults.
2013-12-30 4:02 ` W. Trevor King
@ 2013-12-30 5:32 ` Brian Dolbec
2013-12-30 6:35 ` W. Trevor King
0 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 5:32 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 769 bytes --]
On Sun, 2013-12-29 at 20:02 -0800, W. Trevor King wrote:
> That's a long subject ;). How about:
>
> Add "local_overlay" to configdefaults
>
> Fixes commit 463d98f (modules/generic_stage_target.py: Use a
> 'local_overlay' setting instead of hard-coding '/usr/local/portage',
> 2012-12-19).
>
> That gives you both a concise summary and a more detailed body without
> making wrapping in `git log --oneline`.
>
> Cheers,
> Trevor
>
First: I'm not feeling well, so please don't take this too personally.
I committed exactly what you had in the previous review (copy/paste). I
knew it was too long, but when I tried breaking it up, git puked on it.
so I thought what the hell and left it. I wasn't going to "waste" more
time on it.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 4/6] Fix mounts and mountmap port_logdir code block.
2013-12-30 4:09 ` W. Trevor King
@ 2013-12-30 5:46 ` Brian Dolbec
0 siblings, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 5:46 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1596 bytes --]
On Sun, 2013-12-29 at 20:09 -0800, W. Trevor King wrote:
> On Sun, Dec 29, 2013 at 05:50:51PM -0800, Brian Dolbec wrote:
> > +PORT_LOGDIR_CLEAN = \
> > + 'find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
>
> Pulling out this global variable is new for v2. I don't think I'm a
> fan. I think it should either be hard-coded where we setup
> env["PORT_LOGDIR_CLEAN"] (as it was before) or pulled out of
> self.settings (like PORT_LOGDIR).
>
> > - self.mounts.append("/var/log/portage")
> > - self.mountmap["/var/log/portage"]=self.settings["port_logdir"]
> > - self.env["PORT_LOGDIR"]="/var/log/portage"
> > - self.env["PORT_LOGDIR_CLEAN"]='find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
> > + self.mounts.append("port_logdir")
> > + self.mountmap["port_logdir"] = self.settings["port_logdir"]
> > + self.env["PORT_LOGDIR"] = self.settings["port_logdir"]
> > + self.env["PORT_LOGDIR_CLEAN"] = PORT_LOGDIR_CLEAN
>
> Other than the newly-global PORT_LOGDIR_CLEAN, this looks good to me.
>
> Cheers,
> Trevor
>
PORT_LOGDIR_CLEAN is a copy of the setting directly from portage. I
fully intend on importing it later when it makes more sense to actually
make use of some of portage's api. In the meantime this moves it out of
a long line situation in the code block that would have meant cutting
and splicing it back together. When the commit that makes the new
defaults.py file is merged. It will be moved there. Later when we
import some info/code from portage. We can assign it accordingly.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 3/6] Fixes commit 463d98f (modules/generic_stage_target.py: Use a 'local_overlay' setting instead of hard-coding '/usr/local/portage', 2012-12-19).Add "local_overlay" to configdefaults.
2013-12-30 5:32 ` Brian Dolbec
@ 2013-12-30 6:35 ` W. Trevor King
2013-12-30 6:48 ` Brian Dolbec
0 siblings, 1 reply; 61+ messages in thread
From: W. Trevor King @ 2013-12-30 6:35 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1451 bytes --]
On Sun, Dec 29, 2013 at 09:32:35PM -0800, Brian Dolbec wrote:
> On Sun, 2013-12-29 at 20:02 -0800, W. Trevor King wrote:
> > That's a long subject ;). How about:
> >
> > Add "local_overlay" to configdefaults
> >
> > Fixes commit 463d98f (modules/generic_stage_target.py: Use a
> > 'local_overlay' setting instead of hard-coding '/usr/local/portage',
> > 2012-12-19).
> >
> > That gives you both a concise summary and a more detailed body without
> > making wrapping in `git log --oneline`.
>
> First: I'm not feeling well, so please don't take this too personally.
No problem. I don't think there's a particular hurry to address
everything either, so if you want to just let things cook for a week
and then get back to them when you're feeling better, that's certainly
fine with me.
> I committed exactly what you had in the previous review
> (copy/paste). I knew it was too long, but when I tried breaking it
> up, git puked on it. so I thought what the hell and left it. I
> wasn't going to "waste" more time on it.
I've pushed:
git://tremily.us/catalyst.git pending
with the commit-message cleanups I've suggested on v2. If you want me
to help figure out why Git didn't like your earlier attempt, just let
me know.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH 3/6] Fixes commit 463d98f (modules/generic_stage_target.py: Use a 'local_overlay' setting instead of hard-coding '/usr/local/portage', 2012-12-19).Add "local_overlay" to configdefaults.
2013-12-30 6:35 ` W. Trevor King
@ 2013-12-30 6:48 ` Brian Dolbec
0 siblings, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-30 6:48 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 775 bytes --]
On Sun, 2013-12-29 at 22:35 -0800, W. Trevor King wrote:
> I've pushed:
>
> git://tremily.us/catalyst.git pending
>
> with the commit-message cleanups I've suggested on v2. If you want me
> to help figure out why Git didn't like your earlier attempt, just let
> me know.
>
> Cheers,
> Trevor
>
hey :) I already changed it. This time it worked :)
I think it had to do with the ('s being split to different lines. For
whatever reason, git was trying to run part of the message as a command
call.
Anyway, here's the current corrected message:
Add "local_overlay" to configdefaults.
Fixes commit 463d98f
(modules/generic_stage_target.py: Use a 'local_overlay'
setting instead of hard-coding '/usr/local/portage',
2012-12-19)
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] mounts changes was: [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-29 3:52 ` W. Trevor King
2013-12-29 4:58 ` Brian Dolbec
@ 2013-12-31 2:54 ` Brian Dolbec
2013-12-31 3:06 ` [gentoo-catalyst] Re: mounts changes W. Trevor King
2014-01-01 6:05 ` [gentoo-catalyst] mounts changes was: [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Jorge Manuel B. S. Vicetto
1 sibling, 2 replies; 61+ messages in thread
From: Brian Dolbec @ 2013-12-31 2:54 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1771 bytes --]
On Sat, 2013-12-28 at 19:52 -0800, W. Trevor King wrote:
> On Sat, Dec 28, 2013 at 06:49:11PM -0800, W. Trevor King wrote:
> > On Sat, Dec 28, 2013 at 05:57:09PM -0800, Brian Dolbec wrote:
> > > - self.mounts.append("/tmp/stage1root/proc")
> > > - self.mountmap["/tmp/stage1root/proc"]="/proc"
> > > + self.mounts.append("stage1root/proc")
> > > + self.target_mounts["stage1root/proc"] = "/tmp/stage1root/proc"
> > > + self.mountmap["stage1root/proc"]="/proc"
> >
> > Hmm. I'm not how this is handled at the moment, but don't we want:
> >
> > mount -t proc none /tmp/stage1root/proc
> >
> > instead of:
> >
> > mount --bind /proc /tmp/stage1root/proc
> >
> > The handbook is currently using --rbind as well [1].
> >
> > Maybe food for a future series :p.
>
> After Douglas Freed talked me off the devtmpfs ledge on
> #gentoo-releng, my current suggested mount changes are:
>
> -t:
> proc
> --rbind:
> sys
> dev
> portdir
> port_logdir
> port_tmpdir
> kerncache
> ccache
> icecream
> drop:
> devpts (now that we --rbind /dev)
> distdir (now that we --rbind portdir)
> packagedir (now that we --rbind portdir)
>
> For distdir/packagedir, I'd be find if the source defaulted to None
> (meaning “don't mount anything”) but could be configured to a path
> (meaning “--rbind this after you've --rbind-mounted portdir”).
>
> Cheers,
> Trevor
>
No, we can't drop distdir and packagedir. The default locations for
those are waiting for the catalyst changes to be completed. That is the
reason I got started rewriting catalyst a year ago. Those 2 directories
are being relocated OUT of the tree. Like they should have been all
along.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* [gentoo-catalyst] Re: mounts changes
2013-12-31 2:54 ` [gentoo-catalyst] mounts changes was: " Brian Dolbec
@ 2013-12-31 3:06 ` W. Trevor King
2014-01-01 6:05 ` [gentoo-catalyst] mounts changes was: [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Jorge Manuel B. S. Vicetto
1 sibling, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2013-12-31 3:06 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1816 bytes --]
On Mon, Dec 30, 2013 at 06:54:40PM -0800, Brian Dolbec wrote:
> On Sat, 2013-12-28 at 19:52 -0800, W. Trevor King wrote:
> > After Douglas Freed talked me off the devtmpfs ledge on
> > #gentoo-releng, my current suggested mount changes are:
> >
> > -t:
> > proc
> > --rbind:
> > sys
> > dev
> > portdir
> > port_logdir
> > port_tmpdir
> > kerncache
> > ccache
> > icecream
> > drop:
> > devpts (now that we --rbind /dev)
> > distdir (now that we --rbind portdir)
> > packagedir (now that we --rbind portdir)
> >
> > For distdir/packagedir, I'd be find if the source defaulted to None
> > (meaning “don't mount anything”) but could be configured to a path
> > (meaning “--rbind this after you've --rbind-mounted portdir”).
>
> No, we can't drop distdir and packagedir. The default locations for
> those are waiting for the catalyst changes to be completed. That is
> the reason I got started rewriting catalyst a year ago. Those 2
> directories are being relocated OUT of the tree. Like they should
> have been all along.
If they're moving out of portdir, it makes sense to mount them by
default. I'm fine with that. And I'm looking forward to ConfigParser
spec files with sections like:
[mounts]
icecream = no
ubuntu_shm = yes
[mount source]
portdir = /home/wking/src/portage
port_logdir = /home/wking/src/portage-logs
ubuntu_shm = /run/shm
[mount targets]
ubuntu_shm = /run/shm
And to chaining spec files so that I can share basic stuff like this
between all my stages… Hopefully soon :).
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] mounts changes was: [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2013-12-31 2:54 ` [gentoo-catalyst] mounts changes was: " Brian Dolbec
2013-12-31 3:06 ` [gentoo-catalyst] Re: mounts changes W. Trevor King
@ 2014-01-01 6:05 ` Jorge Manuel B. S. Vicetto
2014-01-01 18:53 ` W. Trevor King
1 sibling, 1 reply; 61+ messages in thread
From: Jorge Manuel B. S. Vicetto @ 2014-01-01 6:05 UTC (permalink / raw
To: gentoo-catalyst
On Mon, 30 Dec 2013, Brian Dolbec wrote:
> On Sat, 2013-12-28 at 19:52 -0800, W. Trevor King wrote:
>> On Sat, Dec 28, 2013 at 06:49:11PM -0800, W. Trevor King wrote:
>>> On Sat, Dec 28, 2013 at 05:57:09PM -0800, Brian Dolbec wrote:
>>>> - self.mounts.append("/tmp/stage1root/proc")
>>>> - self.mountmap["/tmp/stage1root/proc"]="/proc"
>>>> + self.mounts.append("stage1root/proc")
>>>> + self.target_mounts["stage1root/proc"] = "/tmp/stage1root/proc"
>>>> + self.mountmap["stage1root/proc"]="/proc"
>>>
>>> Hmm. I'm not how this is handled at the moment, but don't we want:
>>>
>>> mount -t proc none /tmp/stage1root/proc
>>>
>>> instead of:
>>>
>>> mount --bind /proc /tmp/stage1root/proc
>>>
>>> The handbook is currently using --rbind as well [1].
>>>
>>> Maybe food for a future series :p.
>>
>> After Douglas Freed talked me off the devtmpfs ledge on
>> #gentoo-releng, my current suggested mount changes are:
>>
>> -t:
>> proc
>> --rbind:
>> sys
>> dev
>> portdir
>> port_logdir
>> port_tmpdir
>> kerncache
>> ccache
>> icecream
>> drop:
>> devpts (now that we --rbind /dev)
>> distdir (now that we --rbind portdir)
>> packagedir (now that we --rbind portdir)
>>
>> For distdir/packagedir, I'd be find if the source defaulted to None
>> (meaning “don't mount anything”) but could be configured to a path
>> (meaning “--rbind this after you've --rbind-mounted portdir”).
>>
>> Cheers,
>> Trevor
>>
>
> No, we can't drop distdir and packagedir. The default locations for
> those are waiting for the catalyst changes to be completed. That is the
> reason I got started rewriting catalyst a year ago. Those 2 directories
> are being relocated OUT of the tree. Like they should have been all
> along.
As I've already mentioned on #gentoo-releng, there are also 2 reasons this
is a no-go for me:
1. it's unlikely we want to share pkgdir between the host and the targets
we build
2. sharing pkgdir between incompatible targets would fail miserably. For
example, skimmer does amd64 builds for hardened and non-hardened, multilib
and no-multilib. It also does x86 builds. Sharing a package between any or
at least most of those targets would fail and cause broken stages.
Regards,
Jorge
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] mounts changes was: [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2014-01-01 6:05 ` [gentoo-catalyst] mounts changes was: [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Jorge Manuel B. S. Vicetto
@ 2014-01-01 18:53 ` W. Trevor King
2014-01-02 2:50 ` Jorge Manuel B. S. Vicetto
0 siblings, 1 reply; 61+ messages in thread
From: W. Trevor King @ 2014-01-01 18:53 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 2614 bytes --]
On Wed, Jan 01, 2014 at 06:05:35AM +0000, Jorge Manuel B. S. Vicetto wrote:
> On Mon, 30 Dec 2013, Brian Dolbec wrote:
> > On Sat, 2013-12-28 at 19:52 -0800, W. Trevor King wrote:
> >> On Sat, Dec 28, 2013 at 06:49:11PM -0800, W. Trevor King wrote:
> >>> Hmm. I'm not how this is handled at the moment, but don't we want:
> >>>
> >>> mount -t proc none /tmp/stage1root/proc
> >>>
> >>> instead of:
> >>>
> >>> mount --bind /proc /tmp/stage1root/proc
> >>>
> >>> The handbook is currently using --rbind as well [1].
> >>>
> >>> Maybe food for a future series :p.
> >>
> >> After Douglas Freed talked me off the devtmpfs ledge on
> >> #gentoo-releng, my current suggested mount changes are:
> >>
> >> -t:
> >> proc
> >> --rbind:
> >> sys
> >> dev
> >> portdir
> >> port_logdir
> >> port_tmpdir
> >> kerncache
> >> ccache
> >> icecream
> >> drop:
> >> devpts (now that we --rbind /dev)
> >> distdir (now that we --rbind portdir)
> >> packagedir (now that we --rbind portdir)
> >>
> >> For distdir/packagedir, I'd be find if the source defaulted to None
> >> (meaning “don't mount anything”) but could be configured to a path
> >> (meaning “--rbind this after you've --rbind-mounted portdir”).
> >
> > No, we can't drop distdir and packagedir. The default locations for
> > those are waiting for the catalyst changes to be completed. That is the
> > reason I got started rewriting catalyst a year ago. Those 2 directories
> > are being relocated OUT of the tree. Like they should have been all
> > along.
>
> As I've already mentioned on #gentoo-releng, there are also 2 reasons this
> is a no-go for me:
>
> 1. it's unlikely we want to share pkgdir between the host and the targets
> we build
>
> 2. sharing pkgdir between incompatible targets would fail miserably. For
> example, skimmer does amd64 builds for hardened and non-hardened, multilib
> and no-multilib. It also does x86 builds. Sharing a package between any or
> at least most of those targets would fail and cause broken stages.
So packagedir should just come from the pkgcache. That makes sense.
I still think /dev should be mounted via --rbind, and likely other
user-configurable sources as well. If we remove a user-configurable
packagedir source and keep the rest of this --rbind proposal, does
that address all of your concerns?
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] mounts changes was: [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2014-01-01 18:53 ` W. Trevor King
@ 2014-01-02 2:50 ` Jorge Manuel B. S. Vicetto
0 siblings, 0 replies; 61+ messages in thread
From: Jorge Manuel B. S. Vicetto @ 2014-01-02 2:50 UTC (permalink / raw
To: gentoo-catalyst
On Wed, 1 Jan 2014, W. Trevor King wrote:
> On Wed, Jan 01, 2014 at 06:05:35AM +0000, Jorge Manuel B. S. Vicetto wrote:
>> On Mon, 30 Dec 2013, Brian Dolbec wrote:
>>> On Sat, 2013-12-28 at 19:52 -0800, W. Trevor King wrote:
>>>> On Sat, Dec 28, 2013 at 06:49:11PM -0800, W. Trevor King wrote:
>>>>> Hmm. I'm not how this is handled at the moment, but don't we want:
>>>>>
>>>>> mount -t proc none /tmp/stage1root/proc
>>>>>
>>>>> instead of:
>>>>>
>>>>> mount --bind /proc /tmp/stage1root/proc
>>>>>
>>>>> The handbook is currently using --rbind as well [1].
>>>>>
>>>>> Maybe food for a future series :p.
>>>>
>>>> After Douglas Freed talked me off the devtmpfs ledge on
>>>> #gentoo-releng, my current suggested mount changes are:
>>>>
>>>> -t:
>>>> proc
>>>> --rbind:
>>>> sys
>>>> dev
>>>> portdir
>>>> port_logdir
>>>> port_tmpdir
>>>> kerncache
>>>> ccache
>>>> icecream
>>>> drop:
>>>> devpts (now that we --rbind /dev)
>>>> distdir (now that we --rbind portdir)
>>>> packagedir (now that we --rbind portdir)
>>>>
>>>> For distdir/packagedir, I'd be find if the source defaulted to None
>>>> (meaning “don't mount anything”) but could be configured to a path
>>>> (meaning “--rbind this after you've --rbind-mounted portdir”).
>>>
>>> No, we can't drop distdir and packagedir. The default locations for
>>> those are waiting for the catalyst changes to be completed. That is the
>>> reason I got started rewriting catalyst a year ago. Those 2 directories
>>> are being relocated OUT of the tree. Like they should have been all
>>> along.
>>
>> As I've already mentioned on #gentoo-releng, there are also 2 reasons this
>> is a no-go for me:
>>
>> 1. it's unlikely we want to share pkgdir between the host and the targets
>> we build
>>
>> 2. sharing pkgdir between incompatible targets would fail miserably. For
>> example, skimmer does amd64 builds for hardened and non-hardened, multilib
>> and no-multilib. It also does x86 builds. Sharing a package between any or
>> at least most of those targets would fail and cause broken stages.
>
> So packagedir should just come from the pkgcache. That makes sense.
> I still think /dev should be mounted via --rbind, and likely other
> user-configurable sources as well. If we remove a user-configurable
> packagedir source and keep the rest of this --rbind proposal, does
> that address all of your concerns?
Sorry, I should have been clearer. I meant the proposal to use --rbind for
portdir. The rest seems ok.
> Cheers,
> Trevor
Regards,
Jorge.
^ permalink raw reply [flat|nested] 61+ messages in thread
* [PATCH v3 0/6] "Re: [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2
2013-12-29 1:57 [gentoo-catalyst] Patches to fix rebased patches already applied to current master Brian Dolbec
` (6 preceding siblings ...)
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
@ 2014-01-03 4:16 ` Brian Dolbec
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 1/6] modules/generic_stage_target.py: Use portdir, distdir, ... instead of paths for keys Brian Dolbec
` (5 more replies)
7 siblings, 6 replies; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 4:16 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Changes since version 2:
Patch 1/6 commit message fixes
Patch 2/6 sort the dictionary
Patch 3/6 fix commit message (was too long)
Patch 5/6 commit message typo fixes
Patch 6/6 same
Brian Dolbec (6):
modules/generic_stage_target.py: Use portdir, distdir, ... instead of
paths for keys
Fix a missed self.settings["repo_name"] migration
Add "local_overlay" to configdefaults.
Fix mounts and mountmap port_logdir code block.
modules/generic_stage_target.py, modules/stage1_target.py: Add a
target_mounts dictionary
Set mountmap["icecream"] from settings for now.
catalyst | 2 +
modules/generic_stage_target.py | 118 ++++++++++++++++++++++++++--------------
modules/stage1_target.py | 5 +-
3 files changed, 81 insertions(+), 44 deletions(-)
--
1.8.3.2
^ permalink raw reply [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH v3 1/6] modules/generic_stage_target.py: Use portdir, distdir, ... instead of paths for keys
2014-01-03 4:16 ` [PATCH v3 0/6] "Re: " Brian Dolbec
@ 2014-01-03 4:16 ` Brian Dolbec
2014-01-03 4:30 ` [gentoo-catalyst] " W. Trevor King
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
` (4 subsequent siblings)
5 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 4:16 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
If snapcache is enabled, self.mounts and self.mountmap had not been
modified like they were if it was not enabled.
Added a print statement for debugging to be converted to logging in
the future.
---
modules/generic_stage_target.py | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 3e60f72..6c8cdbc 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -174,10 +174,10 @@ class generic_stage_target(generic_target):
""" Setup our mount points """
if "SNAPCACHE" in self.settings:
- self.mounts=["/proc","/dev","/usr/portage","/usr/portage/distfiles","/var/tmp/portage"]
- self.mountmap={"/proc":"/proc","/dev":"/dev","devpts":"/dev/pts",
- "/usr/portage":self.settings["snapshot_cache_path"]+"/portage",\
- "/usr/portage/distfiles":self.settings["distdir"],"/var/tmp/portage":"tmpfs"}
+ self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
+ self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
+ "portdir": self.settings["snapshot_cache_path"] + "/portage",
+ "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
else:
self.mounts = ["proc", "dev", "distdir", "port_tmpdir"]
self.mountmap = {"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
@@ -904,7 +904,8 @@ class generic_stage_target(generic_target):
os.makedirs(self.mountmap[x],0755)
src=self.mountmap[x]
- if "SNAPCACHE" in self.settings and x == "/usr/portage":
+ #print "bind(); src =", src
+ if "SNAPCACHE" in self.settings and x == "portdir":
self.snapshot_lock_object.read_lock()
if os.uname()[0] == "FreeBSD":
if src == "/dev":
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH v3 2/6] Fix a missed self.settings["repo_name"] migration
2014-01-03 4:16 ` [PATCH v3 0/6] "Re: " Brian Dolbec
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 1/6] modules/generic_stage_target.py: Use portdir, distdir, ... instead of paths for keys Brian Dolbec
@ 2014-01-03 4:16 ` Brian Dolbec
2014-01-03 4:33 ` W. Trevor King
` (3 more replies)
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 3/6] Add "local_overlay" to configdefaults Brian Dolbec
` (3 subsequent siblings)
5 siblings, 4 replies; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 4:16 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Use normpath() on it as well.
Fix the coding style in the lines touched.
---
modules/generic_stage_target.py | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 6c8cdbc..3d6a45e 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -174,10 +174,17 @@ class generic_stage_target(generic_target):
""" Setup our mount points """
if "SNAPCACHE" in self.settings:
- self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
- self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
- "portdir": self.settings["snapshot_cache_path"] + "/portage",
- "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
+ self.mounts = ["proc", "dev", "portdir", "distdir", "port_tmpdir"]
+ self.mountmap = {
+ "dev": "/dev",
+ "devpts": "/dev/pts",
+ "distdir": self.settings["distdir"],
+ "portdir": normpath("/".join([
+ self.settings["snapshot_cache_path"],
+ self.settings["repo_name"],
+ ])),
+ "port_tmpdir": "tmpfs"}
+ "proc": "/proc",
else:
self.mounts = ["proc", "dev", "distdir", "port_tmpdir"]
self.mountmap = {"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH v3 3/6] Add "local_overlay" to configdefaults.
2014-01-03 4:16 ` [PATCH v3 0/6] "Re: " Brian Dolbec
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 1/6] modules/generic_stage_target.py: Use portdir, distdir, ... instead of paths for keys Brian Dolbec
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
@ 2014-01-03 4:16 ` Brian Dolbec
2014-01-03 4:36 ` W. Trevor King
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 4/6] Fix mounts and mountmap port_logdir code block Brian Dolbec
` (2 subsequent siblings)
5 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 4:16 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Fixes commit 463d98f
(modules/generic_stage_target.py: Use a 'local_overlay'
setting instead of hard-coding '/usr/local/portage',
2012-12-19)
---
catalyst | 1 +
1 file changed, 1 insertion(+)
diff --git a/catalyst b/catalyst
index 4ea4248..82b0942 100755
--- a/catalyst
+++ b/catalyst
@@ -66,6 +66,7 @@ def parse_config(myconfig):
confdefaults = {
"distdir": "/usr/portage/distfiles",
"hash_function": "crc32",
+ "local_overlay": "/usr/local/portage",
"options": "",
"packagedir": "/usr/portage/packages",
"portdir": "/usr/portage",
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH v3 4/6] Fix mounts and mountmap port_logdir code block.
2014-01-03 4:16 ` [PATCH v3 0/6] "Re: " Brian Dolbec
` (2 preceding siblings ...)
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 3/6] Add "local_overlay" to configdefaults Brian Dolbec
@ 2014-01-03 4:16 ` Brian Dolbec
2014-01-03 4:40 ` W. Trevor King
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
5 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 4:16 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
---
modules/generic_stage_target.py | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 3d6a45e..55b336f 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -4,6 +4,11 @@ from generic_target import *
from stat import *
import catalyst_lock
+
+PORT_LOGDIR_CLEAN = \
+ 'find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
+
+
class generic_stage_target(generic_target):
"""
This class does all of the chroot setup, copying of files, etc. It is
@@ -233,10 +238,10 @@ class generic_stage_target(generic_target):
self.env["PATH"]="/usr/lib/icecc/bin:"+self.env["PATH"]
if "port_logdir" in self.settings:
- self.mounts.append("/var/log/portage")
- self.mountmap["/var/log/portage"]=self.settings["port_logdir"]
- self.env["PORT_LOGDIR"]="/var/log/portage"
- self.env["PORT_LOGDIR_CLEAN"]='find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
+ self.mounts.append("port_logdir")
+ self.mountmap["port_logdir"] = self.settings["port_logdir"]
+ self.env["PORT_LOGDIR"] = self.settings["port_logdir"]
+ self.env["PORT_LOGDIR_CLEAN"] = PORT_LOGDIR_CLEAN
def override_cbuild(self):
if "CBUILD" in self.makeconf:
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH v3 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2014-01-03 4:16 ` [PATCH v3 0/6] "Re: " Brian Dolbec
` (3 preceding siblings ...)
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 4/6] Fix mounts and mountmap port_logdir code block Brian Dolbec
@ 2014-01-03 4:16 ` Brian Dolbec
2014-01-03 4:47 ` W. Trevor King
2014-01-03 6:08 ` W. Trevor King
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
5 siblings, 2 replies; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 4:16 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Temporary location to define TARGET_MOUNTS_DEFAULTS.
It will be moved to a new defaults.py file in a later commit.
I also plan to make them configurable.
Also:
* Clean up all self.mounts, self.mountmap usage.
* Replace multiple path additions with one instance at the
beginning of the function, reuse the result multiple times.
* Add some extra debug prints (to be converted to logging later)
---
modules/generic_stage_target.py | 83 ++++++++++++++++++++++++++---------------
modules/stage1_target.py | 5 ++-
2 files changed, 55 insertions(+), 33 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 55b336f..c57c504 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -8,6 +8,20 @@ import catalyst_lock
PORT_LOGDIR_CLEAN = \
'find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete'
+TARGET_MOUNTS_DEFAULTS = {
+ "ccache": "/var/tmp/ccache",
+ "dev": "/dev",
+ "devpts": "/dev/pts",
+ "distdir": "/usr/portage/distfiles",
+ "icecream": "/usr/lib/icecc/bin",
+ "kerncache": "/tmp/kerncache",
+ "packagedir": "/usr/portage/packages",
+ "portdir": "/usr/portage",
+ "port_tmpdir": "/var/tmp/portage",
+ "port_logdir": "/var/log/portage",
+ "proc": "/proc",
+ }
+
class generic_stage_target(generic_target):
"""
@@ -178,6 +192,8 @@ class generic_stage_target(generic_target):
file_locate(self.settings,["portage_confdir"],expand=0)
""" Setup our mount points """
+ # initialize our target mounts.
+ self.target_mounts = TARGET_MOUNTS_DEFAULTS.copy()
if "SNAPCACHE" in self.settings:
self.mounts = ["proc", "dev", "portdir", "distdir", "port_tmpdir"]
self.mountmap = {
@@ -230,12 +246,13 @@ class generic_stage_target(generic_target):
self.mounts.append("ccache")
self.mountmap["ccache"] = ccdir
""" for the chroot: """
- self.env["CCACHE_DIR"]="/var/tmp/ccache"
+ self.env["CCACHE_DIR"] = self.target_mounts["ccache"]
if "ICECREAM" in self.settings:
self.mounts.append("/var/cache/icecream")
self.mountmap["/var/cache/icecream"]="/var/cache/icecream"
- self.env["PATH"]="/usr/lib/icecc/bin:"+self.env["PATH"]
+ self.env["PATH"] = self.target_mounts["icecream"] + ":" + \
+ self.env["PATH"]
if "port_logdir" in self.settings:
self.mounts.append("port_logdir")
@@ -614,33 +631,34 @@ class generic_stage_target(generic_target):
"kill-chroot-pids script failed.",env=self.env)
def mount_safety_check(self):
- mypath=self.settings["chroot_path"]
-
"""
Check and verify that none of our paths in mypath are mounted. We don't
want to clean up with things still mounted, and this allows us to check.
Returns 1 on ok, 0 on "something is still mounted" case.
"""
- if not os.path.exists(mypath):
+ if not os.path.exists(self.settings["chroot_path"]):
return
+ print "self.mounts =", self.mounts
for x in self.mounts:
- if not os.path.exists(mypath + self.mountmap[x]):
+ target = normpath(self.settings["chroot_path"] + self.target_mounts[x])
+ print "mount_safety_check() x =", x, target
+ if not os.path.exists(target):
continue
- if ismount(mypath + self.mountmap[x]):
+ if ismount(target):
""" Something is still mounted "" """
try:
- print self.mountmap[x] + " is still mounted; performing auto-bind-umount...",
+ print target + " is still mounted; performing auto-bind-umount...",
""" Try to umount stuff ourselves """
self.unbind()
- if ismount(mypath + self.mountmap[x]):
- raise CatalystError, "Auto-unbind failed for " + self.mountmap[x]
+ if ismount(target):
+ raise CatalystError, "Auto-unbind failed for " + target
else:
print "Auto-unbind successful..."
except CatalystError:
- raise CatalystError, "Unable to auto-unbind " + self.mountmap[x]
+ raise CatalystError, "Unable to auto-unbind " + target
def unpack(self):
unpack=True
@@ -908,12 +926,14 @@ class generic_stage_target(generic_target):
def bind(self):
for x in self.mounts:
- if not os.path.exists(self.settings["chroot_path"] + self.mountmap[x]):
- os.makedirs(self.settings["chroot_path"]+x,0755)
+ #print "bind(); x =", x
+ target = normpath(self.settings["chroot_path"] + self.target_mounts[x])
+ if not os.path.exists(target):
+ os.makedirs(target, 0755)
if not os.path.exists(self.mountmap[x]):
if not self.mountmap[x] == "tmpfs":
- os.makedirs(self.mountmap[x],0755)
+ os.makedirs(self.mountmap[x], 0755)
src=self.mountmap[x]
#print "bind(); src =", src
@@ -921,20 +941,22 @@ 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"] + src)
+ cmd = "mount -t devfs none " + target
+ retval=os.system(cmd)
else:
- retval = os.system("mount_nullfs " + src + " " +
- self.settings["chroot_path"] + src)
+ cmd = "mount_nullfs " + src + " " + target
+ retval=os.system(cmd)
else:
if src == "tmpfs":
if "var_tmpfs_portage" in self.settings:
- retval=os.system("mount -t tmpfs -o size="+\
- self.settings["var_tmpfs_portage"]+"G "+src+" "+\
- self.settings["chroot_path"]+x)
+ cmd = "mount -t tmpfs -o size=" + \
+ self.settings["var_tmpfs_portage"] + "G " + \
+ src + " " + target
+ retval=os.system(cmd)
else:
- retval = os.system("mount --bind " + src + " " +
- self.settings["chroot_path"] + src)
+ cmd = "mount --bind " + src + " " + target
+ #print "bind(); cmd =", cmd
+ retval=os.system(cmd)
if retval!=0:
self.unbind()
raise CatalystError,"Couldn't bind mount " + src
@@ -946,26 +968,25 @@ 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 + self.mountmap[x]):
+ target = normpath(mypath + self.target_mounts[x])
+ if not os.path.exists(target):
continue
- if not ismount(mypath + self.mountmap[x]):
+ if not ismount(target):
continue
- retval=os.system("umount "+\
- os.path.join(mypath, self.mountmap[x].lstrip(os.path.sep)))
+ retval=os.system("umount " + target)
if retval!=0:
- warn("First attempt to unmount: " + mypath +
- self.mountmap[x] +" failed.")
+ warn("First attempt to unmount: " + target + " failed.")
warn("Killing any pids still running in the chroot")
self.kill_chroot_pids()
- retval2 = os.system("umount " + mypath + self.mountmap[x])
+ retval2 = os.system("umount " + target)
if retval2!=0:
ouch=1
- warn("Couldn't umount bind mount: " + mypath + self.mountmap[x])
+ warn("Couldn't umount bind mount: " + target)
if "SNAPCACHE" in self.settings and x == "/usr/portage":
try:
diff --git a/modules/stage1_target.py b/modules/stage1_target.py
index aa43926..5f4ffa0 100644
--- a/modules/stage1_target.py
+++ b/modules/stage1_target.py
@@ -88,8 +88,9 @@ class stage1_target(generic_stage_target):
os.makedirs(self.settings["stage_path"]+"/proc")
# alter the mount mappings to bind mount proc onto it
- self.mounts.append("/tmp/stage1root/proc")
- self.mountmap["/tmp/stage1root/proc"]="/proc"
+ self.mounts.append("stage1root/proc")
+ self.target_mounts["stage1root/proc"] = "/tmp/stage1root/proc"
+ self.mountmap["stage1root/proc"] = "/proc"
def register(foo):
foo.update({"stage1":stage1_target})
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH v3 6/6] Set mountmap["icecream"] from settings for now.
2014-01-03 4:16 ` [PATCH v3 0/6] "Re: " Brian Dolbec
` (4 preceding siblings ...)
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
@ 2014-01-03 4:16 ` Brian Dolbec
2014-01-03 4:48 ` W. Trevor King
5 siblings, 1 reply; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 4:16 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
“mountmap” is for source paths. “mounts” is for path-agnostic keys.
I plan to add a source_mounts to settings later to compliment the target_mounts paths.
---
catalyst | 1 +
modules/generic_stage_target.py | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/catalyst b/catalyst
index 82b0942..cb6c022 100755
--- a/catalyst
+++ b/catalyst
@@ -66,6 +66,7 @@ def parse_config(myconfig):
confdefaults = {
"distdir": "/usr/portage/distfiles",
"hash_function": "crc32",
+ "icecream": "/var/cache/icecream",
"local_overlay": "/usr/local/portage",
"options": "",
"packagedir": "/usr/portage/packages",
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index c57c504..c6a06b6 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -249,8 +249,8 @@ class generic_stage_target(generic_target):
self.env["CCACHE_DIR"] = self.target_mounts["ccache"]
if "ICECREAM" in self.settings:
- self.mounts.append("/var/cache/icecream")
- self.mountmap["/var/cache/icecream"]="/var/cache/icecream"
+ self.mounts.append("icecream")
+ self.mountmap["icecream"] = self.settings["icecream"]
self.env["PATH"] = self.target_mounts["icecream"] + ":" + \
self.env["PATH"]
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] Re: [PATCH v3 1/6] modules/generic_stage_target.py: Use portdir, distdir, ... instead of paths for keys
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 1/6] modules/generic_stage_target.py: Use portdir, distdir, ... instead of paths for keys Brian Dolbec
@ 2014-01-03 4:30 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2014-01-03 4:30 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 611 bytes --]
On Thu, Jan 02, 2014 at 08:16:17PM -0800, Brian Dolbec wrote:
> If snapcache is enabled, self.mounts and self.mountmap had not been
> modified like they were if it was not enabled.
>
> Added a print statement for debugging to be converted to logging in
> the future.
Subject and commit message look great this round.
> index 3e60f72..6c8cdbc 100644
And the content change matches v2.
I think this is ready to merge.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH v3 2/6] Fix a missed self.settings["repo_name"] migration
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
@ 2014-01-03 4:33 ` W. Trevor King
2014-01-03 4:53 ` [gentoo-catalyst] [PATCH v4 1/1] " Brian Dolbec
` (2 subsequent siblings)
3 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2014-01-03 4:33 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 1331 bytes --]
On Thu, Jan 02, 2014 at 08:16:18PM -0800, Brian Dolbec wrote:
> - self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
> - self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
> - "portdir": self.settings["snapshot_cache_path"] + "/portage",
> - "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
> + self.mounts = ["proc", "dev", "portdir", "distdir", "port_tmpdir"]
> + self.mountmap = {
> + "dev": "/dev",
> + "devpts": "/dev/pts",
> + "distdir": self.settings["distdir"],
> + "portdir": normpath("/".join([
> + self.settings["snapshot_cache_path"],
> + self.settings["repo_name"],
> + ])),
> + "port_tmpdir": "tmpfs"}
> + "proc": "/proc",
Oops, trailing paren should follow the "proc" entry. A good reason to
have it on it's own line:
self.mountmap = {
"dev": "/dev",
"devpts": "/dev/pts",
"distdir": self.settings["distdir"],
"portdir": normpath("/".join([
self.settings["snapshot_cache_path"],
self.settings["repo_name"],
])),
"port_tmpdir": "tmpfs",
"proc": "/proc",
}
Otherwise looks good.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH v3 3/6] Add "local_overlay" to configdefaults.
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 3/6] Add "local_overlay" to configdefaults Brian Dolbec
@ 2014-01-03 4:36 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2014-01-03 4:36 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 536 bytes --]
On Thu, Jan 02, 2014 at 08:16:19PM -0800, Brian Dolbec wrote:
> Fixes commit 463d98f
> (modules/generic_stage_target.py: Use a 'local_overlay'
> setting instead of hard-coding '/usr/local/portage',
> 2012-12-19)
Subject/body splitting looks good.
> index 4ea4248..82b0942 100755
Content hasn't changed.
I think this is ready to merge.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH v3 4/6] Fix mounts and mountmap port_logdir code block.
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 4/6] Fix mounts and mountmap port_logdir code block Brian Dolbec
@ 2014-01-03 4:40 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2014-01-03 4:40 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 426 bytes --]
On Thu, Jan 02, 2014 at 08:16:20PM -0800, Brian Dolbec wrote:
> modules/generic_stage_target.py | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
No changes since v2. Still ready to merge, but we'll want to fix #2
first.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH v3 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
@ 2014-01-03 4:47 ` W. Trevor King
2014-01-03 6:08 ` W. Trevor King
1 sibling, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2014-01-03 4:47 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 740 bytes --]
On Thu, Jan 02, 2014 at 08:16:21PM -0800, Brian Dolbec wrote:
> Temporary location to define TARGET_MOUNTS_DEFAULTS.
> It will be moved to a new defaults.py file in a later commit.
> I also plan to make them configurable.
>
> Also:
> * Clean up all self.mounts, self.mountmap usage.
> * Replace multiple path additions with one instance at the
> beginning of the function, reuse the result multiple times.
> * Add some extra debug prints (to be converted to logging later)
Commit message looks great. The content is the same as v2, so I like
it.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH v3 6/6] Set mountmap["icecream"] from settings for now.
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
@ 2014-01-03 4:48 ` W. Trevor King
0 siblings, 0 replies; 61+ messages in thread
From: W. Trevor King @ 2014-01-03 4:48 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 216 bytes --]
Same as v2, so still looks good to me.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH v4 1/1] Fix a missed self.settings["repo_name"] migration
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
2014-01-03 4:33 ` W. Trevor King
@ 2014-01-03 4:53 ` Brian Dolbec
2014-01-03 5:02 ` Brian Dolbec
2014-01-03 5:09 ` [gentoo-catalyst] [PATCH v5 " Brian Dolbec
3 siblings, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 4:53 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Use normpath() on it as well.
Fix the coding style in the lines touched.
---
modules/generic_stage_target.py | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 6c8cdbc..3d6a45e 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -174,10 +174,17 @@ class generic_stage_target(generic_target):
""" Setup our mount points """
if "SNAPCACHE" in self.settings:
- self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
- self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
- "portdir": self.settings["snapshot_cache_path"] + "/portage",
- "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
+ self.mounts = ["proc", "dev", "portdir", "distdir", "port_tmpdir"]
+ self.mountmap = {
+ "dev": "/dev",
+ "devpts": "/dev/pts",
+ "distdir": self.settings["distdir"],
+ "portdir": normpath("/".join([
+ self.settings["snapshot_cache_path"],
+ self.settings["repo_name"],
+ ])),
+ "port_tmpdir": "tmpfs"}
+ "proc": "/proc",
else:
self.mounts = ["proc", "dev", "distdir", "port_tmpdir"]
self.mountmap = {"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH v4 1/1] Fix a missed self.settings["repo_name"] migration
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
2014-01-03 4:33 ` W. Trevor King
2014-01-03 4:53 ` [gentoo-catalyst] [PATCH v4 1/1] " Brian Dolbec
@ 2014-01-03 5:02 ` Brian Dolbec
2014-01-03 5:09 ` [gentoo-catalyst] [PATCH v5 " Brian Dolbec
3 siblings, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 5:02 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Use normpath() on it as well.
Fix the coding style in the lines touched.
---
modules/generic_stage_target.py | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 6c8cdbc..3d6a45e 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -174,10 +174,17 @@ class generic_stage_target(generic_target):
""" Setup our mount points """
if "SNAPCACHE" in self.settings:
- self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
- self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
- "portdir": self.settings["snapshot_cache_path"] + "/portage",
- "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
+ self.mounts = ["proc", "dev", "portdir", "distdir", "port_tmpdir"]
+ self.mountmap = {
+ "dev": "/dev",
+ "devpts": "/dev/pts",
+ "distdir": self.settings["distdir"],
+ "portdir": normpath("/".join([
+ self.settings["snapshot_cache_path"],
+ self.settings["repo_name"],
+ ])),
+ "port_tmpdir": "tmpfs"}
+ "proc": "/proc",
else:
self.mounts = ["proc", "dev", "distdir", "port_tmpdir"]
self.mountmap = {"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* [gentoo-catalyst] [PATCH v5 1/1] Fix a missed self.settings["repo_name"] migration
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
` (2 preceding siblings ...)
2014-01-03 5:02 ` Brian Dolbec
@ 2014-01-03 5:09 ` Brian Dolbec
3 siblings, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 5:09 UTC (permalink / raw
To: gentoo-catalyst; +Cc: Brian Dolbec
Use normpath() on it as well.
Fix the coding style in the lines touched.
---
modules/generic_stage_target.py | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index 6c8cdbc..ce43c79 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -174,10 +174,18 @@ class generic_stage_target(generic_target):
""" Setup our mount points """
if "SNAPCACHE" in self.settings:
- self.mounts=["proc", "dev", "portdir", "distdir", "port_tmpdir"]
- self.mountmap={"proc": "/proc", "dev": "/dev", "devpts": "/dev/pts",
- "portdir": self.settings["snapshot_cache_path"] + "/portage",
- "distdir": self.settings["distdir"], "port_tmpdir": "tmpfs"}
+ self.mounts = ["proc", "dev", "portdir", "distdir", "port_tmpdir"]
+ self.mountmap = {
+ "dev": "/dev",
+ "devpts": "/dev/pts",
+ "distdir": self.settings["distdir"],
+ "portdir": normpath("/".join([
+ self.settings["snapshot_cache_path"],
+ self.settings["repo_name"],
+ ])),
+ "port_tmpdir": "tmpfs",
+ "proc": "/proc",
+ }
else:
self.mounts = ["proc", "dev", "distdir", "port_tmpdir"]
self.mountmap = {"proc":"/proc", "dev":"/dev", "devpts":"/dev/pts",
--
1.8.3.2
^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH v3 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
2014-01-03 4:47 ` W. Trevor King
@ 2014-01-03 6:08 ` W. Trevor King
2014-01-03 6:55 ` Brian Dolbec
1 sibling, 1 reply; 61+ messages in thread
From: W. Trevor King @ 2014-01-03 6:08 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 439 bytes --]
On Thu, Jan 02, 2014 at 08:16:21PM -0800, Brian Dolbec wrote:
> +TARGET_MOUNTS_DEFAULTS = {
I just noticed this is doubly pluralized. I'd rather fix it now, but
if we just want to merge this before hitting v6, I'm happy to submit a
patch to fix it later.
Cheers,
Trevor
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [gentoo-catalyst] [PATCH v3 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary
2014-01-03 6:08 ` W. Trevor King
@ 2014-01-03 6:55 ` Brian Dolbec
0 siblings, 0 replies; 61+ messages in thread
From: Brian Dolbec @ 2014-01-03 6:55 UTC (permalink / raw
To: gentoo-catalyst
[-- Attachment #1: Type: text/plain, Size: 693 bytes --]
On Thu, 2014-01-02 at 22:08 -0800, W. Trevor King wrote:
> On Thu, Jan 02, 2014 at 08:16:21PM -0800, Brian Dolbec wrote:
> > +TARGET_MOUNTS_DEFAULTS = {
>
> I just noticed this is doubly pluralized. I'd rather fix it now, but
> if we just want to merge this before hitting v6, I'm happy to submit a
> patch to fix it later.
>
> Cheers,
> Trevor
>
Yeah, I didn't notice it either to be honest. It will be easy to change
them when they are moved to a new defaults.py file coming in some other
commits soon. Those files will all need some rebasing already due to
all the changes made to the ones preceding them.
This minor change is not worth rebasing everything again.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
^ permalink raw reply [flat|nested] 61+ messages in thread
end of thread, other threads:[~2014-01-03 6:55 UTC | newest]
Thread overview: 61+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-29 1:57 [gentoo-catalyst] Patches to fix rebased patches already applied to current master Brian Dolbec
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: USE portdir, distdir,... instead of paths for keys Brian Dolbec
2013-12-29 2:16 ` W. Trevor King
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
2013-12-29 2:19 ` W. Trevor King
2013-12-29 5:08 ` Brian Dolbec
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 3/6] Add "local_overlay" to configdefaults Brian Dolbec
2013-12-29 2:24 ` W. Trevor King
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 4/6] Fix a missed self.mounts key change from a path as key Brian Dolbec
2013-12-29 2:30 ` W. Trevor King
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
2013-12-29 2:49 ` W. Trevor King
2013-12-29 3:52 ` W. Trevor King
2013-12-29 4:58 ` Brian Dolbec
2013-12-31 2:54 ` [gentoo-catalyst] mounts changes was: " Brian Dolbec
2013-12-31 3:06 ` [gentoo-catalyst] Re: mounts changes W. Trevor King
2014-01-01 6:05 ` [gentoo-catalyst] mounts changes was: [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Jorge Manuel B. S. Vicetto
2014-01-01 18:53 ` W. Trevor King
2014-01-02 2:50 ` Jorge Manuel B. S. Vicetto
2013-12-29 5:02 ` [gentoo-catalyst] " Brian Dolbec
2013-12-29 5:26 ` Alec Warner
2013-12-29 6:01 ` Brian Dolbec
2013-12-29 1:57 ` [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
2013-12-29 2:53 ` W. Trevor King
2013-12-29 3:00 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 Brian Dolbec
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 1/6] modules/generic_stage_target.py: Use portdir, distdir,... instead of paths for keys Brian Dolbec
2013-12-30 3:54 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
2013-12-30 3:58 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 3/6] Fixes commit 463d98f (modules/generic_stage_target.py: Use a 'local_overlay' setting instead of hard-coding '/usr/local/portage', 2012-12-19).Add "local_overlay" to configdefaults Brian Dolbec
2013-12-30 4:02 ` W. Trevor King
2013-12-30 5:32 ` Brian Dolbec
2013-12-30 6:35 ` W. Trevor King
2013-12-30 6:48 ` Brian Dolbec
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 4/6] Fix mounts and mountmap port_logdir code block Brian Dolbec
2013-12-30 4:09 ` W. Trevor King
2013-12-30 5:46 ` Brian Dolbec
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
2013-12-30 4:16 ` W. Trevor King
2013-12-30 1:50 ` [gentoo-catalyst] [PATCH 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
2013-12-30 4:19 ` W. Trevor King
2013-12-30 3:33 ` [gentoo-catalyst] Patches to fix rebased patches already applied to current master. Version-2 W. Trevor King
2014-01-03 4:16 ` [PATCH v3 0/6] "Re: " Brian Dolbec
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 1/6] modules/generic_stage_target.py: Use portdir, distdir, ... instead of paths for keys Brian Dolbec
2014-01-03 4:30 ` [gentoo-catalyst] " W. Trevor King
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 2/6] Fix a missed self.settings["repo_name"] migration Brian Dolbec
2014-01-03 4:33 ` W. Trevor King
2014-01-03 4:53 ` [gentoo-catalyst] [PATCH v4 1/1] " Brian Dolbec
2014-01-03 5:02 ` Brian Dolbec
2014-01-03 5:09 ` [gentoo-catalyst] [PATCH v5 " Brian Dolbec
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 3/6] Add "local_overlay" to configdefaults Brian Dolbec
2014-01-03 4:36 ` W. Trevor King
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 4/6] Fix mounts and mountmap port_logdir code block Brian Dolbec
2014-01-03 4:40 ` W. Trevor King
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 5/6] modules/generic_stage_target.py, modules/stage1_target.py: Add a target_mounts dictionary Brian Dolbec
2014-01-03 4:47 ` W. Trevor King
2014-01-03 6:08 ` W. Trevor King
2014-01-03 6:55 ` Brian Dolbec
2014-01-03 4:16 ` [gentoo-catalyst] [PATCH v3 6/6] Set mountmap["icecream"] from settings for now Brian Dolbec
2014-01-03 4:48 ` W. Trevor King
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox