[Midnightbsd-cvs] mports: Chroot.pm: Add support for SlaveDataDir stuff.
ctriv at midnightbsd.org
ctriv at midnightbsd.org
Tue Sep 9 12:04:18 EDT 2008
Log Message:
-----------
Add support for SlaveDataDir stuff.
Clear all flags in the chroot at clean. (I think this is right).
Modified Files:
--------------
mports/Tools/lib/Magus:
Chroot.pm (r1.23 -> r1.24)
-------------- next part --------------
Index: Chroot.pm
===================================================================
RCS file: /home/cvs/mports/Tools/lib/Magus/Chroot.pm,v
retrieving revision 1.23
retrieving revision 1.24
diff -L Tools/lib/Magus/Chroot.pm -L Tools/lib/Magus/Chroot.pm -u -r1.23 -r1.24
--- Tools/lib/Magus/Chroot.pm
+++ Tools/lib/Magus/Chroot.pm
@@ -81,7 +81,10 @@
distfiles => '/magus/distfiles',
workdir => '/magus/work',
logs => '/magus/logs',
- loopbacks => [qw(/usr/mports /usr/src)],
+ loopbacks => {
+ "$Magus::Config{SlaveMportsDir}" => "/usr/mports",
+ "$Magus::Config{SlaveSrcDir}" => "/usr/src",
+ },
%args,
}, $class;
@@ -117,10 +120,10 @@
system(qq(/usr/bin/tar xf $self->{tarball} -C $self->{root})) == 0
or die "Couldn't untar root tarball: $?\n";
-
- foreach my $dir (@{$self->{loopbacks}}) {
- $self->_mkdir($dir);
- system("/sbin/mount -t nullfs -o ro $dir $self->{root}/$dir") == 0
+
+ while (my ($src, $dst) = each %{$self->{loopbacks}}) {
+ $self->_mkdir($dst);
+ system("/sbin/mount -t nullfs -o ro $src $self->{root}/$dst") == 0
or die "mount returned non-zero: $?\n";
}
@@ -153,8 +156,10 @@
sub _clean {
my ($self) = @_;
+ $self->_clear_flags("/");
+
+
for (qw(workdir x11base localbase packages logs linuxcompat)) {
- $self->_clear_flags($self->{$_});
rmtree("$self->{root}/$self->{$_}");
$self->_mkdir($self->{$_});
}
@@ -166,8 +171,6 @@
unlink("$self->{root}/etc/make.conf");
$self->_touchfile('/etc/make.conf');
- $self->_clear_flags("/var/tmp");
-
rmtree("$self->{root}/var/db/pkg");
rmtree("$self->{root}/var/db/ports");
rmtree("$self->{root}/var/tmp");
@@ -293,10 +296,10 @@
sub delete {
my ($self) = @_;
- for (qw(/dev /usr/src /usr/mports)) {
+ for ("/dev", values %{$self->{loopbacks}}) {
# if umount failed it is probably because nothing was mounted.
# therefore we ignore the error code here
- system("/sbin/umount $self->{root}$_")
+ system("/sbin/umount $self->{root}$_");
}
More information about the Midnightbsd-cvs
mailing list