Message ID | 20230527092851.705884-1-pbonzini@redhat.com |
---|---|
Headers | show |
Series | meson: replace submodules with wrap files | expand |
On 27/05/2023 11.28, Paolo Bonzini wrote: > This series replaces git submodules for bundled libraries with .wrap > files that can be used directly by meson for subprojects. ... > The remaining submodules consist of tests/lcitool/libvirt-ci and the > firmware in roms/. We talked about moving the contents of roms/ to a separate repository a couple of times ... maybe it's time now that we really do it? (However, when I tried to tackle the "do we need to ship the firmware sources with the main tarball" problem the last time, there was no consensus how to do it best, see https://lore.kernel.org/qemu-devel/20221128092555.37102-1-thuth@redhat.com/ ... maybe something to discuss at KVM forum...) > The former is only used in very specific cases, > while the latter is mostly used only as a pointer used to create the QEMU > tarball. Unfortunately, git-submodule.sh is still needed for roms/SLOF, > parts of which are used in the QEMU build process for pc-bios/s390-ccw; > more on this later in this cover letter. > > I'm not sure what's the best way to proceed for roms/SLOF. Some > possibilities, in no particular order, include: > > * doing nothing > > * merging --with-git-submodules with --enable-download, and > moving the git-submodule.sh rules from the main Makefile to > pc-bios/s390-ccw/ (my favorite option) > > * copying the relevant SLOF files into pc-bios/ Considering that SLOF is also rather on life support already (there is now VOF for the sPAPR machine instead, Alexey left IBM, ...), I also wouldn't mind the third option, I think. But of course we can also start with option 2 and go for option 3 later. Thomas
On Sat, May 27, 2023 at 11:28:46AM +0200, Paolo Bonzini wrote: > The remaining submodules consist of tests/lcitool/libvirt-ci and the > firmware in roms/. The former is only used in very specific cases, > while the latter is mostly used only as a pointer used to create the QEMU > tarball. Unfortunately, git-submodule.sh is still needed for roms/SLOF, > parts of which are used in the QEMU build process for pc-bios/s390-ccw; > more on this later in this cover letter. > > I'm not sure what's the best way to proceed for roms/SLOF. Some > possibilities, in no particular order, include: > > * doing nothing > > * merging --with-git-submodules with --enable-download, and > moving the git-submodule.sh rules from the main Makefile to > pc-bios/s390-ccw/ (my favorite option) > > * copying the relevant SLOF files into pc-bios/ > > Also, getting into more overengineered territory: > > * same as the second option, but also replace the roms/ submodules > with text files, in a format similar to .wrap files; meson uses the > standard configparser to read them, so it would not be a lot of > code. The files would be parsed by scripts/make-release and > pc-bios/s390-ccw/Makefile. > > * adding support for firmware with a meson build system to > configure; turn SLOF into a wrap and roms/SLOF into a symlink > for ../pc-bios/s390-ccw/subprojects/SLOF. I'm mentioning this for > completeness but this is not something I would like. On the other > hand it could reuse some (or most?) of the code currently used to > generate config-meson.cross, so maybe it isn't that bad... Is there a reason why SLOF/s390-ccw is handled differently from the other ROMs ? ie, why haven't we checked in the pre-built firmware binaries, such that we don't build SLOF by default ? With regards, Daniel
On Tue, May 30, 2023 at 2:31 PM Daniel P. Berrangé <berrange@redhat.com> wrote: > > * adding support for firmware with a meson build system to > > configure; turn SLOF into a wrap and roms/SLOF into a symlink > > for ../pc-bios/s390-ccw/subprojects/SLOF. I'm mentioning this for > > completeness but this is not something I would like. On the other > > hand it could reuse some (or most?) of the code currently used to > > generate config-meson.cross, so maybe it isn't that bad... > > Is there a reason why SLOF/s390-ccw is handled differently from > the other ROMs ? ie, why haven't we checked in the pre-built > firmware binaries, such that we don't build SLOF by default ? The SLOF ROM is checked in. s390-ccw is also checked in, but it is a QEMU-specific ROM like, on x86, linuxboot.bin or multiboot.bin. Therefore it's rebuilt by "make" and its build system is part of QEMU's. The relationship between s390-ccw and SLOF is that s390-ccw _reuses_ the network stack of SLOF, and pc-bios/s390-ccw/Makefile does so by simply looking at sources at $(SOURCE_PATH)../../roms/SLOF. Paolo > > > 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 :| >
On Tue, May 30, 2023 at 02:18:30PM +0200, Thomas Huth wrote: > On 27/05/2023 11.28, Paolo Bonzini wrote: > > This series replaces git submodules for bundled libraries with .wrap > > files that can be used directly by meson for subprojects. > ... > > The remaining submodules consist of tests/lcitool/libvirt-ci and the > > firmware in roms/. > > We talked about moving the contents of roms/ to a separate repository a > couple of times ... maybe it's time now that we really do it? > > (However, when I tried to tackle the "do we need to ship the firmware > sources with the main tarball" problem the last time, there was no consensus > how to do it best, see > https://lore.kernel.org/qemu-devel/20221128092555.37102-1-thuth@redhat.com/ > ... maybe something to discuss at KVM forum...) > > > The former is only used in very specific cases, > > while the latter is mostly used only as a pointer used to create the QEMU > > tarball. Unfortunately, git-submodule.sh is still needed for roms/SLOF, > > parts of which are used in the QEMU build process for pc-bios/s390-ccw; > > more on this later in this cover letter. > > > > I'm not sure what's the best way to proceed for roms/SLOF. Some > > possibilities, in no particular order, include: > > > > * doing nothing > > > > * merging --with-git-submodules with --enable-download, and > > moving the git-submodule.sh rules from the main Makefile to > > pc-bios/s390-ccw/ (my favorite option) > > > > * copying the relevant SLOF files into pc-bios/ > > Considering that SLOF is also rather on life support already (there is now > VOF for the sPAPR machine instead, Alexey left IBM, ...), I also wouldn't > mind the third option, I think. > > But of course we can also start with option 2 and go for option 3 later. My inclination would be for option 3 too, just copy the relevant files into s390-ccw dir, so the two distinct ROMs are fully separated from each other. With regards, Daniel
On Tue, May 30, 2023 at 2:57 PM Daniel P. Berrangé <berrange@redhat.com> wrote: > > > I'm not sure what's the best way to proceed for roms/SLOF. Some > > > possibilities, in no particular order, include: > > > > > > * doing nothing > > > > > > * merging --with-git-submodules with --enable-download, and > > > moving the git-submodule.sh rules from the main Makefile to > > > pc-bios/s390-ccw/ (my favorite option) > > > > > > * copying the relevant SLOF files into pc-bios/ > > > > Considering that SLOF is also rather on life support already (there is now > > VOF for the sPAPR machine instead, Alexey left IBM, ...), I also wouldn't > > mind the third option, I think. > > > > But of course we can also start with option 2 and go for option 3 later. > > My inclination would be for option 3 too, just copy the relevant files > into s390-ccw dir, so the two distinct ROMs are fully separated from > each other. Note that the amount of code is not small (7.000 lines of source for the network stack and 1.000 for libc); but yeah, that can be done. Paolo