Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37826745
en ru br
ALT Linux repos
S:4.6-alt12

Group :: Development/Tools
RPM: os-autoinst

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: fixstartvmuefi.patch
Download


diff --git a/OpenQA/Qemu/BlockDevConf.pm b/OpenQA/Qemu/BlockDevConf.pm
index 2b8dacbf..454815d3 100644
--- a/OpenQA/Qemu/BlockDevConf.pm
+++ b/OpenQA/Qemu/BlockDevConf.pm
@@ -80,6 +80,18 @@ sub add_existing_overlay {
     return $ol;
 }
 
+sub add_existing_overlayfix {
+    my ($self, $id, $backing_file) = @_;
+
+    my $ol = OpenQA::Qemu::BlockDev->new()
+      ->node_name($id)
+      ->file($self->basedir . '/' . $id)
+      ->size($backing_file->size);
+    $backing_file->overlay($ol);
+
+    return $ol;
+}
+
 =head3 add_new_overlay
 
 Add an overlay on top of $backing_file, this is equivalent to creating a new
@@ -73,6 +73,10 @@ model.
 =cut
 sub add_new_overlay ($self, @args) { $self->add_existing_overlay(@args)->needs_creating(1) }
 
+sub add_new_overlayfix {
+    return add_existing_overlayfix(@_)->needs_creating(1);
+}
+
 sub _push_new_drive_dev ($self, $id, $drive, $model, $num_queues = undef) {
     die 'PFlash drives are not supported by DriveDevice, use PFlashDevice'
       if $model eq 'pflash';
@@ -176,6 +192,20 @@ sub add_pflash_drive {
     return $pflash;
 }
 
+sub add_pflash_drivefix {
+    my ($self, $id, $file_name, $size) = @_;
+    my $base_drive = $self->add_existing_base($id, $file_name, $size)
+      ->implicit(1)
+      ->driver($file_name =~ qr/\.qcow2$/ ? 'qcow2' : 'raw');
+    my $overlay = $self->add_new_overlayfix($id . OVERLAY_POSTFIX . '0', $base_drive);
+    my $pflash  = OpenQA::Qemu::PFlashDevice->new()
+      ->id($id)
+      ->drive($overlay);
+
+    push(@{$self->_drives}, $pflash);
+    return $pflash;
+}
+
 =head3 add_path_to_drive
 
 Add a connection between a drive device and a controller device. You can add
diff --git a/OpenQA/Qemu/Proc.pm b/OpenQA/Qemu/Proc.pm
index 0a1b99fe..b00153b6 100644
--- a/OpenQA/Qemu/Proc.pm
+++ b/OpenQA/Qemu/Proc.pm
@@ -270,7 +270,7 @@ sub configure_pflash {
 
         $fw = $vars->{UEFI_PFLASH_VARS};
         die 'Need UEFI_PFLASH_VARS with UEFI_PFLASH_CODE' unless $fw;
-        $bdc->add_pflash_drive('pflash-vars', $fw, $self->get_img_size($fw))
+        $bdc->add_pflash_drivefix('pflash-vars', $fw, $self->get_img_size($fw))
           ->unit(1);
     }
     elsif ($vars->{UEFI_PFLASH_VARS}) {
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin