mbox series

[0/2] Add mformat and xorriso dependencies in containers

Message ID 20230503145547.202251-1-anisinha@redhat.com
Headers show
Series Add mformat and xorriso dependencies in containers | expand

Message

Ani Sinha May 3, 2023, 2:55 p.m. UTC
mformat and xorriso tools are needed by biosbits avocado tests. This patchset
adds those two tools in the docker container images.
Patch 1 pulls in the latest changes in lcitool in order to add mappings
for these packages in various distros.
Patch 2 updates all Dockerfiles in QEMU repository to add these two
tools.

CC: mst@redhat.com
CC: berrange@redhat.com

Ani Sinha (2):
  tests: libvirt-ci: Update to commit 'c8971e90ac' to pull in mformat
    and xorriso
  tests/lcitool: Add mtools and xorriso as dependency for bios bits
    avocado tests

 .gitlab-ci.d/cirrus/freebsd-13.vars                   | 2 +-
 .gitlab-ci.d/cirrus/macos-12.vars                     | 2 +-
 tests/docker/dockerfiles/alpine.docker                | 2 ++
 tests/docker/dockerfiles/centos8.docker               | 2 ++
 tests/docker/dockerfiles/debian-amd64-cross.docker    | 2 ++
 tests/docker/dockerfiles/debian-amd64.docker          | 2 ++
 tests/docker/dockerfiles/debian-arm64-cross.docker    | 2 ++
 tests/docker/dockerfiles/debian-armel-cross.docker    | 2 ++
 tests/docker/dockerfiles/debian-armhf-cross.docker    | 2 ++
 tests/docker/dockerfiles/debian-mips64el-cross.docker | 2 ++
 tests/docker/dockerfiles/debian-mipsel-cross.docker   | 2 ++
 tests/docker/dockerfiles/debian-ppc64el-cross.docker  | 2 ++
 tests/docker/dockerfiles/debian-s390x-cross.docker    | 2 ++
 tests/docker/dockerfiles/fedora-win32-cross.docker    | 2 ++
 tests/docker/dockerfiles/fedora-win64-cross.docker    | 2 ++
 tests/docker/dockerfiles/fedora.docker                | 2 ++
 tests/docker/dockerfiles/opensuse-leap.docker         | 2 ++
 tests/docker/dockerfiles/ubuntu2004.docker            | 2 ++
 tests/docker/dockerfiles/ubuntu2204.docker            | 2 ++
 tests/lcitool/libvirt-ci                              | 2 +-
 tests/lcitool/projects/qemu.yml                       | 2 ++
 21 files changed, 39 insertions(+), 3 deletions(-)

Comments

Thomas Huth May 4, 2023, 6:35 a.m. UTC | #1
On 03/05/2023 16.55, Ani Sinha wrote:
> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
> adds those two tools in the docker container images.

tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and 
the containers already have that tool installed. Could you maybe switch the 
biosbits test to use that tool? Or the other way round? ... at least having 
two tools to create ISO images in our containers sounds IMHO excessive.

  Thomas
Ani Sinha May 4, 2023, 7:10 a.m. UTC | #2
> On 04-May-2023, at 12:05 PM, Thomas Huth <thuth@redhat.com> wrote:
> 
> On 03/05/2023 16.55, Ani Sinha wrote:
>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
>> adds those two tools in the docker container images.
> 
> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and the containers already have that tool installed. Could you maybe switch the biosbits test to use that tool? Or the other way round? ... at least having two tools to create ISO images in our containers sounds IMHO excessive.

The dependency comes from the use of grub-mkrescue in the avocado test in order to generate the iso with the bios bits enabled grub and boot off with it. Grub-mkrescue is a bash script that uses mformat and xorriso.
Thomas Huth May 4, 2023, 7:13 a.m. UTC | #3
On 04/05/2023 09.10, Ani Sinha wrote:
> 
> 
>> On 04-May-2023, at 12:05 PM, Thomas Huth <thuth@redhat.com> wrote:
>>
>> On 03/05/2023 16.55, Ani Sinha wrote:
>>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
>>> adds those two tools in the docker container images.
>>
>> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and the containers already have that tool installed. Could you maybe switch the biosbits test to use that tool? Or the other way round? ... at least having two tools to create ISO images in our containers sounds IMHO excessive.
> 
> The dependency comes from the use of grub-mkrescue in the avocado test in order to generate the iso with the bios bits enabled grub and boot off with it. Grub-mkrescue is a bash script that uses mformat and xorriso.

Ok, then we could maybe try to convert the cdrom-test.c file to use xorriso 
instead?

  Thomas
Daniel P. Berrangé May 4, 2023, 8:02 a.m. UTC | #4
On Thu, May 04, 2023 at 08:35:53AM +0200, Thomas Huth wrote:
> On 03/05/2023 16.55, Ani Sinha wrote:
> > mformat and xorriso tools are needed by biosbits avocado tests. This patchset
> > adds those two tools in the docker container images.
> 
> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and
> the containers already have that tool installed. Could you maybe switch the
> biosbits test to use that tool? Or the other way round? ... at least having
> two tools to create ISO images in our containers sounds IMHO excessive.

It looks like this series wasn't tested, because it doesn't even install
the alpine image:

ERROR: unable to select packages:
  cdrkit-1.1.11-r3:
    conflicts: xorriso-1.5.4-r2[cmd:mkisofs=1.1.11-r3]
    satisfies: world[cdrkit]
  xorriso-1.5.4-r2:
    conflicts: cdrkit-1.1.11-r3[cmd:mkisofs=1.5.4-r2]
    satisfies: world[xorriso]


We definitely need to have either biosbits or cdrom-test.c changed to
use the same tool. We can't be requiring deps that are conflicting at
install time.

With regards,
Daniel
Ani Sinha May 4, 2023, 8:22 a.m. UTC | #5
> On 04-May-2023, at 1:32 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
> 
> On Thu, May 04, 2023 at 08:35:53AM +0200, Thomas Huth wrote:
>> On 03/05/2023 16.55, Ani Sinha wrote:
>>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
>>> adds those two tools in the docker container images.
>> 
>> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and
>> the containers already have that tool installed. Could you maybe switch the
>> biosbits test to use that tool? Or the other way round? ... at least having
>> two tools to create ISO images in our containers sounds IMHO excessive.
> 
> It looks like this series wasn't tested,

Oh I wasn’t sure which tests I were to run to verify this because https://www.qemu.org/docs/master/devel/testing.html does not mention any specific tests to run after:

	• Once the merge request is accepted, go back to QEMU and update the tests/lcitool/libvirt-ci submodule to point to a commit that contains the mappings.yml update. Then add the prerequisite and run make lcitool-refresh.

Is it “make docker-all-tests” ? Maybe we can update the doc. This is the first time me updating the docker images with new packages and I doing not touch this infrastructure part at all.

> because it doesn't even install
> the alpine image:
> 
> ERROR: unable to select packages:
>  cdrkit-1.1.11-r3:
>    conflicts: xorriso-1.5.4-r2[cmd:mkisofs=1.1.11-r3]
>    satisfies: world[cdrkit]
>  xorriso-1.5.4-r2:
>    conflicts: cdrkit-1.1.11-r3[cmd:mkisofs=1.5.4-r2]
>    satisfies: world[xorriso]
> 
> 
> We definitely need to have either biosbits or cdrom-test.c changed to
> use the same tool.

From what I found out so far, xorriso has more fine grained options and can be run with "-as mkisofs” to generate the bootable iso. But it requires more experimentation. 

> We can't be requiring deps that are conflicting at
> install time.
> 
> With regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
>
Daniel P. Berrangé May 4, 2023, 8:25 a.m. UTC | #6
On Thu, May 04, 2023 at 01:52:36PM +0530, Ani Sinha wrote:
> 
> 
> > On 04-May-2023, at 1:32 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
> > 
> > On Thu, May 04, 2023 at 08:35:53AM +0200, Thomas Huth wrote:
> >> On 03/05/2023 16.55, Ani Sinha wrote:
> >>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
> >>> adds those two tools in the docker container images.
> >> 
> >> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and
> >> the containers already have that tool installed. Could you maybe switch the
> >> biosbits test to use that tool? Or the other way round? ... at least having
> >> two tools to create ISO images in our containers sounds IMHO excessive.
> > 
> > It looks like this series wasn't tested,
> 
> Oh I wasn’t sure which tests I were to run to verify this because https://www.qemu.org/docs/master/devel/testing.html does not mention any specific tests to run after:
> 
> 	• Once the merge request is accepted, go back to QEMU and update the tests/lcitool/libvirt-ci submodule to point to a commit that contains the mappings.yml update. Then add the prerequisite and run make lcitool-refresh.
> 
> Is it “make docker-all-tests” ? Maybe we can update the doc. This is the first time me updating the docker images with new packages and I doing not touch this infrastructure part at all.

By testing, I mean run the CI pipeline in GitLab to see if everything
still passes. I expect the alpine job will fail the container build.

With regards,
Daniel
Ani Sinha May 4, 2023, 8:49 a.m. UTC | #7
> On 04-May-2023, at 1:32 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
> 
> On Thu, May 04, 2023 at 08:35:53AM +0200, Thomas Huth wrote:
>> On 03/05/2023 16.55, Ani Sinha wrote:
>>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
>>> adds those two tools in the docker container images.
>> 
>> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and
>> the containers already have that tool installed. Could you maybe switch the
>> biosbits test to use that tool? Or the other way round? ... at least having
>> two tools to create ISO images in our containers sounds IMHO excessive.
> 
> It looks like this series wasn't tested, because it doesn't even install
> the alpine image:
> 
> ERROR: unable to select packages:
>  cdrkit-1.1.11-r3:
>    conflicts: xorriso-1.5.4-r2[cmd:mkisofs=1.1.11-r3]
>    satisfies: world[cdrkit]
>  xorriso-1.5.4-r2:
>    conflicts: cdrkit-1.1.11-r3[cmd:mkisofs=1.5.4-r2]
>    satisfies: world[xorriso]
> 
> 
> We definitely need to have either biosbits or cdrom-test.c changed to
> use the same tool.

Wait, it seems xorriso package also provides geninsoimage?

xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
Repo        : @System
Matched from:
Filename    : /usr/bin/genisoimage

xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
Repo        : rhel-9-for-x86_64-appstream-rpms
Matched from:
Filename    : /usr/bin/genisoimage

$ rpm -ql  xorriso-1.5.4-4.el9.x86_64 | grep bin
/usr/bin/cdrecord
/usr/bin/genisoimage
/usr/bin/mkisofs
/usr/bin/osirrox
/usr/bin/wodim
/usr/bin/xorrecord
/usr/bin/xorriso
/usr/bin/xorriso-dd-target
/usr/bin/xorrisofs



> We can't be requiring deps that are conflicting at
> install time.
> 
> With regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
>
Daniel P. Berrangé May 4, 2023, 8:58 a.m. UTC | #8
On Thu, May 04, 2023 at 12:40:12PM +0530, Ani Sinha wrote:
> 
> 
> > On 04-May-2023, at 12:05 PM, Thomas Huth <thuth@redhat.com> wrote:
> > 
> > On 03/05/2023 16.55, Ani Sinha wrote:
> >> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
> >> adds those two tools in the docker container images.
> > 
> > tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and the containers already have that tool installed. Could you maybe switch the biosbits test to use that tool? Or the other way round? ... at least having two tools to create ISO images in our containers sounds IMHO excessive.
> 
> The dependency comes from the use of grub-mkrescue in the avocado
> test in order to generate the iso with the bios bits enabled grub
> and boot off with it. Grub-mkrescue is a bash script that uses
> mformat and xorriso.

Where does grub-mkrescue come from ?  IIUC, we don't have a dep
on the grub package in our dockerfiles.

With regards,
Daniel
Ani Sinha May 4, 2023, 9:08 a.m. UTC | #9
> On 04-May-2023, at 2:28 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
> 
> On Thu, May 04, 2023 at 12:40:12PM +0530, Ani Sinha wrote:
>> 
>> 
>>> On 04-May-2023, at 12:05 PM, Thomas Huth <thuth@redhat.com> wrote:
>>> 
>>> On 03/05/2023 16.55, Ani Sinha wrote:
>>>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
>>>> adds those two tools in the docker container images.
>>> 
>>> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and the containers already have that tool installed. Could you maybe switch the biosbits test to use that tool? Or the other way round? ... at least having two tools to create ISO images in our containers sounds IMHO excessive.
>> 
>> The dependency comes from the use of grub-mkrescue in the avocado
>> test in order to generate the iso with the bios bits enabled grub
>> and boot off with it. Grub-mkrescue is a bash script that uses
>> mformat and xorriso.
> 
> Where does grub-mkrescue come from ?  IIUC, we don't have a dep
> on the grub package in our dockerfiles.

Bios bits runs from grub and builds grub utilities as a part of the build process which the test uses. That being said, mkrescue is just a bash script that uses those two utilities - mformat and xorriso from the docker environment. It also has some dependencies on the grub binaries generated as a part of the build process.
Ani Sinha May 4, 2023, 9:17 a.m. UTC | #10
> On 04-May-2023, at 2:19 PM, Ani Sinha <anisinha@redhat.com> wrote:
> 
> 
> 
>> On 04-May-2023, at 1:32 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
>> 
>> On Thu, May 04, 2023 at 08:35:53AM +0200, Thomas Huth wrote:
>>> On 03/05/2023 16.55, Ani Sinha wrote:
>>>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
>>>> adds those two tools in the docker container images.
>>> 
>>> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and
>>> the containers already have that tool installed. Could you maybe switch the
>>> biosbits test to use that tool? Or the other way round? ... at least having
>>> two tools to create ISO images in our containers sounds IMHO excessive.
>> 
>> It looks like this series wasn't tested, because it doesn't even install
>> the alpine image:
>> 
>> ERROR: unable to select packages:
>> cdrkit-1.1.11-r3:
>>   conflicts: xorriso-1.5.4-r2[cmd:mkisofs=1.1.11-r3]
>>   satisfies: world[cdrkit]
>> xorriso-1.5.4-r2:
>>   conflicts: cdrkit-1.1.11-r3[cmd:mkisofs=1.5.4-r2]
>>   satisfies: world[xorriso]
>> 
>> 
>> We definitely need to have either biosbits or cdrom-test.c changed to
>> use the same tool.
> 
> Wait, it seems xorriso package also provides geninsoimage?
> 
> xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
> Repo        : @System
> Matched from:
> Filename    : /usr/bin/genisoimage
> 
> xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
> Repo        : rhel-9-for-x86_64-appstream-rpms
> Matched from:
> Filename    : /usr/bin/genisoimage
> 
> $ rpm -ql  xorriso-1.5.4-4.el9.x86_64 | grep bin
> /usr/bin/cdrecord
> /usr/bin/genisoimage
> /usr/bin/mkisofs
> /usr/bin/osirrox
> /usr/bin/wodim
> /usr/bin/xorrecord
> /usr/bin/xorriso
> /usr/bin/xorriso-dd-target
> /usr/bin/xorrisofs
> 

Ah

$ file /usr/bin/genisoimage
/usr/bin/genisoimage: symbolic link to /etc/alternatives/mkisofs-genisoimage
$ vi /etc/alternatives/mkisofs-genisoimage
$ file /etc/alternatives/mkisofs-genisoimage
/etc/alternatives/mkisofs-genisoimage: symbolic link to /usr/bin/xorrisofs


But the one provided by cdrkit is actually a elf binary in its own right. So if we replace genisoimage with xorriso, we need to check that the iso file for cdrom-test in a way that does not break it.
Daniel P. Berrangé May 4, 2023, 9:35 a.m. UTC | #11
On Thu, May 04, 2023 at 02:19:21PM +0530, Ani Sinha wrote:
> 
> 
> > On 04-May-2023, at 1:32 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
> > 
> > On Thu, May 04, 2023 at 08:35:53AM +0200, Thomas Huth wrote:
> >> On 03/05/2023 16.55, Ani Sinha wrote:
> >>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
> >>> adds those two tools in the docker container images.
> >> 
> >> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and
> >> the containers already have that tool installed. Could you maybe switch the
> >> biosbits test to use that tool? Or the other way round? ... at least having
> >> two tools to create ISO images in our containers sounds IMHO excessive.
> > 
> > It looks like this series wasn't tested, because it doesn't even install
> > the alpine image:
> > 
> > ERROR: unable to select packages:
> >  cdrkit-1.1.11-r3:
> >    conflicts: xorriso-1.5.4-r2[cmd:mkisofs=1.1.11-r3]
> >    satisfies: world[cdrkit]
> >  xorriso-1.5.4-r2:
> >    conflicts: cdrkit-1.1.11-r3[cmd:mkisofs=1.5.4-r2]
> >    satisfies: world[xorriso]
> > 
> > 
> > We definitely need to have either biosbits or cdrom-test.c changed to
> > use the same tool.
> 
> Wait, it seems xorriso package also provides geninsoimage?
> 
> xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
> Repo        : @System
> Matched from:
> Filename    : /usr/bin/genisoimage
> 
> xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
> Repo        : rhel-9-for-x86_64-appstream-rpms
> Matched from:
> Filename    : /usr/bin/genisoimage
> 
> $ rpm -ql  xorriso-1.5.4-4.el9.x86_64 | grep bin
> /usr/bin/cdrecord
> /usr/bin/genisoimage
> /usr/bin/mkisofs
> /usr/bin/osirrox
> /usr/bin/wodim
> /usr/bin/xorrecord
> /usr/bin/xorriso
> /usr/bin/xorriso-dd-target
> /usr/bin/xorrisofs

That is not the case in Fedora.  xorriso does not provide any
genisoimage binary, that's provided by a 'genisoimage' RPM
which was created from cdrkit src RPM.

Alpine likewise has no 'genisoimage' binary provided by
xorriso.

For even more fun, xorriso is now a sub-RPM of the libisoburn
source RPM


If we could make cdrom-test  use 'mkisofs' binary then we could
likely use the xorriso package on all platforms IIUC.

With regards,
Daniel
Thomas Huth May 4, 2023, 10:13 a.m. UTC | #12
On 04/05/2023 11.35, Daniel P. Berrangé wrote:
> On Thu, May 04, 2023 at 02:19:21PM +0530, Ani Sinha wrote:
>>
>>
>>> On 04-May-2023, at 1:32 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
>>>
>>> On Thu, May 04, 2023 at 08:35:53AM +0200, Thomas Huth wrote:
>>>> On 03/05/2023 16.55, Ani Sinha wrote:
>>>>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
>>>>> adds those two tools in the docker container images.
>>>>
>>>> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and
>>>> the containers already have that tool installed. Could you maybe switch the
>>>> biosbits test to use that tool? Or the other way round? ... at least having
>>>> two tools to create ISO images in our containers sounds IMHO excessive.
>>>
>>> It looks like this series wasn't tested, because it doesn't even install
>>> the alpine image:
>>>
>>> ERROR: unable to select packages:
>>>   cdrkit-1.1.11-r3:
>>>     conflicts: xorriso-1.5.4-r2[cmd:mkisofs=1.1.11-r3]
>>>     satisfies: world[cdrkit]
>>>   xorriso-1.5.4-r2:
>>>     conflicts: cdrkit-1.1.11-r3[cmd:mkisofs=1.5.4-r2]
>>>     satisfies: world[xorriso]
>>>
>>>
>>> We definitely need to have either biosbits or cdrom-test.c changed to
>>> use the same tool.
>>
>> Wait, it seems xorriso package also provides geninsoimage?
>>
>> xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
>> Repo        : @System
>> Matched from:
>> Filename    : /usr/bin/genisoimage
>>
>> xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
>> Repo        : rhel-9-for-x86_64-appstream-rpms
>> Matched from:
>> Filename    : /usr/bin/genisoimage
>>
>> $ rpm -ql  xorriso-1.5.4-4.el9.x86_64 | grep bin
>> /usr/bin/cdrecord
>> /usr/bin/genisoimage
>> /usr/bin/mkisofs
>> /usr/bin/osirrox
>> /usr/bin/wodim
>> /usr/bin/xorrecord
>> /usr/bin/xorriso
>> /usr/bin/xorriso-dd-target
>> /usr/bin/xorrisofs
> 
> That is not the case in Fedora.  xorriso does not provide any
> genisoimage binary, that's provided by a 'genisoimage' RPM
> which was created from cdrkit src RPM.
> 
> Alpine likewise has no 'genisoimage' binary provided by
> xorriso.
> 
> For even more fun, xorriso is now a sub-RPM of the libisoburn
> source RPM
> 
> 
> If we could make cdrom-test  use 'mkisofs' binary then we could
> likely use the xorriso package on all platforms IIUC.

I assume it shoul be pretty easy to replace it in crom-test.c ... genisofs 
is a successor of the old mkisofs, so the commandd line parameter should be 
very similar or even the same.
Ani, could you add a patch to your series to replace it there?

  Thanks,
   Thomas
Ani Sinha May 4, 2023, 11:32 a.m. UTC | #13
> On 04-May-2023, at 1:55 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
> 
> On Thu, May 04, 2023 at 01:52:36PM +0530, Ani Sinha wrote:
>> 
>> 
>>> On 04-May-2023, at 1:32 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
>>> 
>>> On Thu, May 04, 2023 at 08:35:53AM +0200, Thomas Huth wrote:
>>>> On 03/05/2023 16.55, Ani Sinha wrote:
>>>>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
>>>>> adds those two tools in the docker container images.
>>>> 
>>>> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and
>>>> the containers already have that tool installed. Could you maybe switch the
>>>> biosbits test to use that tool? Or the other way round? ... at least having
>>>> two tools to create ISO images in our containers sounds IMHO excessive.
>>> 
>>> It looks like this series wasn't tested,
>> 
>> Oh I wasn’t sure which tests I were to run to verify this because https://www.qemu.org/docs/master/devel/testing.html does not mention any specific tests to run after:
>> 
>> 	• Once the merge request is accepted, go back to QEMU and update the tests/lcitool/libvirt-ci submodule to point to a commit that contains the mappings.yml update. Then add the prerequisite and run make lcitool-refresh.
>> 
>> Is it “make docker-all-tests” ? Maybe we can update the doc. This is the first time me updating the docker images with new packages and I doing not touch this infrastructure part at all.
> 
> By testing, I mean run the CI pipeline in GitLab to see if everything
> still passes. I expect the alpine job will fail the container build.

Ah that makes sense. As I told you offline, I regenerated the centos8 container image in my fork with those two packages and made sure avocado-system-centos job passed. I did not run all the pipelines.
Ani Sinha May 4, 2023, 3:56 p.m. UTC | #14
> On 04-May-2023, at 3:43 PM, Thomas Huth <thuth@redhat.com> wrote:
> 
> On 04/05/2023 11.35, Daniel P. Berrangé wrote:
>> On Thu, May 04, 2023 at 02:19:21PM +0530, Ani Sinha wrote:
>>> 
>>> 
>>>> On 04-May-2023, at 1:32 PM, Daniel P. Berrangé <berrange@redhat.com> wrote:
>>>> 
>>>> On Thu, May 04, 2023 at 08:35:53AM +0200, Thomas Huth wrote:
>>>>> On 03/05/2023 16.55, Ani Sinha wrote:
>>>>>> mformat and xorriso tools are needed by biosbits avocado tests. This patchset
>>>>>> adds those two tools in the docker container images.
>>>>> 
>>>>> tests/qtest/cdrom-test.c already uses genisoimage to create ISO images, and
>>>>> the containers already have that tool installed. Could you maybe switch the
>>>>> biosbits test to use that tool? Or the other way round? ... at least having
>>>>> two tools to create ISO images in our containers sounds IMHO excessive.
>>>> 
>>>> It looks like this series wasn't tested, because it doesn't even install
>>>> the alpine image:
>>>> 
>>>> ERROR: unable to select packages:
>>>>  cdrkit-1.1.11-r3:
>>>>    conflicts: xorriso-1.5.4-r2[cmd:mkisofs=1.1.11-r3]
>>>>    satisfies: world[cdrkit]
>>>>  xorriso-1.5.4-r2:
>>>>    conflicts: cdrkit-1.1.11-r3[cmd:mkisofs=1.5.4-r2]
>>>>    satisfies: world[xorriso]
>>>> 
>>>> 
>>>> We definitely need to have either biosbits or cdrom-test.c changed to
>>>> use the same tool.
>>> 
>>> Wait, it seems xorriso package also provides geninsoimage?
>>> 
>>> xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
>>> Repo        : @System
>>> Matched from:
>>> Filename    : /usr/bin/genisoimage
>>> 
>>> xorriso-1.5.4-4.el9.x86_64 : ISO-9660 and Rock Ridge image manipulation tool
>>> Repo        : rhel-9-for-x86_64-appstream-rpms
>>> Matched from:
>>> Filename    : /usr/bin/genisoimage
>>> 
>>> $ rpm -ql  xorriso-1.5.4-4.el9.x86_64 | grep bin
>>> /usr/bin/cdrecord
>>> /usr/bin/genisoimage
>>> /usr/bin/mkisofs
>>> /usr/bin/osirrox
>>> /usr/bin/wodim
>>> /usr/bin/xorrecord
>>> /usr/bin/xorriso
>>> /usr/bin/xorriso-dd-target
>>> /usr/bin/xorrisofs
>> That is not the case in Fedora.  xorriso does not provide any
>> genisoimage binary, that's provided by a 'genisoimage' RPM
>> which was created from cdrkit src RPM.
>> Alpine likewise has no 'genisoimage' binary provided by
>> xorriso.
>> For even more fun, xorriso is now a sub-RPM of the libisoburn
>> source RPM
>> If we could make cdrom-test  use 'mkisofs' binary then we could
>> likely use the xorriso package on all platforms IIUC.
> 
> I assume it shoul be pretty easy to replace it in crom-test.c ... genisofs is a successor of the old mkisofs, so the commandd line parameter should be very similar or even the same.

In my RHEL 9 box, funny that cdrom-test is actually using xorriso even today since genisoimage is eventually a symlink to xorriso and it works just fine :

$ QTEST_QEMU_BINARY=./qemu-system-x86_64 ./tests/qtest/cdrom-test
# random seed: R02S8027650089f37c7be48a579c1b3bdeaa
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

xorriso 1.5.4
ISO 9660 Rock Ridge filesystem manipulator and CD/DVD/BD burn program
Copyright (C) 2019, Thomas Schmitt <scdbackup@gmx.net>, libburnia project.
xorriso version   :  1.5.4
Version timestamp :  2021.01.30.150001
Build timestamp   :  -none-given-
libisofs   in use :  1.5.4  (min. 1.5.4)
libburn    in use :  1.5.4  (min. 1.5.4)
libburn OS adapter:  internal GNU/Linux SG_IO adapter sg-linux
libisoburn in use :  1.5.4  (min. 1.5.4)
Provided under GNU GPL version 3 or later, due to libreadline license.
There is NO WARRANTY, to the extent permitted by law.
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

> Ani, could you add a patch to your series to replace it there?

Just sent the updated patch. Yes replacing genisoimage with xorrisfs is good enough. Exact same arguments work just fine.