diff options
author | Pascal Terjan <pterjan@mageia.org> | 2020-06-14 20:42:29 +0000 |
---|---|---|
committer | Pascal Terjan <pterjan@mageia.org> | 2020-06-14 21:06:24 +0000 |
commit | b51b9f16dbde7aacec457c3d0a4f51f635f333e8 (patch) | |
tree | 62930b33d29b8cbc321d6a7744c4f409bcb1676e | |
parent | 737ba9fcc005cf9dbb88775373718723b35a73fc (diff) | |
download | iurt-b51b9f16dbde7aacec457c3d0a4f51f635f333e8.tar iurt-b51b9f16dbde7aacec457c3d0a4f51f635f333e8.tar.gz iurt-b51b9f16dbde7aacec457c3d0a4f51f635f333e8.tar.bz2 iurt-b51b9f16dbde7aacec457c3d0a4f51f635f333e8.tar.xz iurt-b51b9f16dbde7aacec457c3d0a4f51f635f333e8.zip |
Update packages after creating chroot
This is useful when building for updates_testing or with additional
media as basesystem/urpmi/... were installed without those media.
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | lib/Iurt/Chroot.pm | 5 | ||||
-rw-r--r-- | lib/Iurt/Urpmi.pm | 21 |
3 files changed, 27 insertions, 0 deletions
@@ -2,6 +2,7 @@ - ulri: sort file names in mail - move check_{no,}arch from Config into a new RPM module. They have nothing to do with the config and work on an RPM file. +- iurt: update packages after creating chroot 0.7.10 - ulri: allow - in host when parsing lock file name diff --git a/lib/Iurt/Chroot.pm b/lib/Iurt/Chroot.pm index 85b06c4..f0cf512 100644 --- a/lib/Iurt/Chroot.pm +++ b/lib/Iurt/Chroot.pm @@ -102,6 +102,11 @@ sub clean_and_build_chroot { } } + # We may have media not used to create the chroot (when building for updates_testing + # or if using additional_media) so need to update basesystem packages. + my $urpmi = $run->{urpmi}; + $urpmi->update($chroot); + 1; } diff --git a/lib/Iurt/Urpmi.pm b/lib/Iurt/Urpmi.pm index 7ac6a74..0430fd0 100644 --- a/lib/Iurt/Urpmi.pm +++ b/lib/Iurt/Urpmi.pm @@ -208,6 +208,27 @@ sub add_media { 1; } +sub update { + my ($self, $chroot) = @_; + my $run = $self->{run}; + my $config = $self->{config}; + + plog('INFO', "updating packages in $chroot"); + + my $cmd = "chroot $chroot urpmi --auto-update --auto"; + if ($run->{chrooted_urpmi}) { + $cmd = "urpmi --urpmi-root $chroot --auto-update --auto"; + } + perform_command($cmd, + $run, $config, + mail => $config->{admin}, + retry => 2, + use_iurt_root_command => 1, + debug_mail => $run->{debug}) + or return; + 1; +} + sub get_local_provides { my ($self) = @_; my $run = $self->{run}; |