[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