aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Iurt/Chroot.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Iurt/Chroot.pm')
-rw-r--r--lib/Iurt/Chroot.pm32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/Iurt/Chroot.pm b/lib/Iurt/Chroot.pm
index c4b2f15..526263a 100644
--- a/lib/Iurt/Chroot.pm
+++ b/lib/Iurt/Chroot.pm
@@ -45,6 +45,12 @@ sub clean_chroot {
if (-d $chroot && !$o_only_tar) {
system("$sudo umount $chroot/proc &> /dev/null");
system("$sudo umount $chroot/dev/pts &> /dev/null");
+ if ($run->{icecream}) {
+ system("$sudo umount $chroot/var/cache/icecream &> /dev/null");
+ }
+ if (-d "$chroot/urpmi_medias/") {
+ system ("$sudo umount $chroot/urpmi_medias/*");
+ }
sudo($run, $config, '--rm', '-r', $chroot);
}
@@ -64,6 +70,26 @@ sub clean_chroot {
dump_rpmmacros($run, $config, "$chroot/home/builder/.rpmmacros") or return;
system("$sudo mount none -t proc $chroot/proc &>/dev/null") and return;
system("$sudo mount none -t devpts $chroot/dev/pts &>/dev/null") and return;
+ if ($run->{icecream}) {
+ system("$sudo mkdir -p $chroot/var/cache/icecream");
+ system("$sudo mount -o bind /var/cache/icecream $chroot/var/cache/icecream &>/dev/null") and return;
+ }
+
+ my $count = 0;
+ foreach my $m (@{$run->{additional_media}}) {
+ if (($m =~ m/^(http:|ftp:)/)) {
+ next;
+ }
+ my $mount_point = "$chroot/urpmi_medias/$count";
+ my $bind;
+ my ($url) = $m =~ s!^(http://|ftp://|file://)!!;
+ if (($m =~ m/^(file:)/)) {
+ $bind = "-o bind";
+ }
+ system("$sudo mkdir -p $mount_point");
+ system("$sudo mount $bind $url $mount_point") and return;
+ $count++;
+ }
1;
}
@@ -469,6 +495,12 @@ sub build_chroot {
sudo($run, $config, "--rm", "$tmp_chroot/var/lib/rpm/__db*");
system("$sudo umount $tmp_chroot/proc &> /dev/null");
system("$sudo umount $tmp_chroot/dev/pts &> /dev/null");
+ if ($run->{icecream}) {
+ system("$sudo umount $tmp_chroot/var/cache/icecream &> /dev/null");
+ }
+ if (-d "$tmp_chroot/urpmi_medias/") {
+ system ("$sudo umount $tmp_chroot/urpmi_medias/*");
+ }
return !system($sudo, 'tar', 'czf', $chroot_tar, '-C', $tmp_chroot, '.');
}
}