Re: [Qemu-devel] RFC: changing ROM bundling in tar dists for releases

2017-09-01 Thread Gerd Hoffmann
  Hi,

> > i.e. something like this:
> > 
> > https://www.kraxel.org/cgit/qemu-firmware/
> > 
> > (only seabios is there for now)
> 
> So presumably we'd want a 'make install' target there too, to place
> the
> various ROMS in the location QEMU expects ?

Yes.

Or place them in $prefix/share/qemu-firmware, and add that directory to
the qemu default search path.

> So non-distro users would need to download & install the ROMs,
> and then download, build & install QEMU ?

Yes.

> How would you view ROM install working for devs working against GIT ?
> 
> eg when we update a ROM in the firmware directory, how do devs know
> to
> update their firmware.  Would the qemu-firmware.git be a submodule of
> qemu.git, so that a 'make install' would deploy roms for devs ?

Not sure yet how to handle that best.  I'd tend to not make it a
submodule.  Typically there are no lockstep updates for qemu and
firmware, in most cases new firmware is only required if you want use a
new feature which needs firmware support.  So I think we don't need a
tight coupling between qemu and firmware.  Just updating the firmware
checkout now and then (or even simply using the distro builds) should
work in the vast majority of cases.

cheers,
  Gerd




Re: [Qemu-devel] RFC: changing ROM bundling in tar dists for releases

2017-09-01 Thread Daniel P. Berrange
On Fri, Sep 01, 2017 at 04:11:44PM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > I think it makes sense to create a separate project for the firmware
> > blobs.  Move over the firmware binaries and source submodules to the
> > new project.  This way updating both firmware sources and binaries
> > can
> > be done with a single commit, like we handle this today, just in the
> > new firmware repo instead of the main qemu repo.
> 
> i.e. something like this:
> 
> https://www.kraxel.org/cgit/qemu-firmware/
> 
> (only seabios is there for now)

So presumably we'd want a 'make install' target there too, to place the
various ROMS in the location QEMU expects ?

So non-distro users would need to download & install the ROMs,
and then download, build & install QEMU ?

How would you view ROM install working for devs working against GIT ?

eg when we update a ROM in the firmware directory, how do devs know to
update their firmware. Would the qemu-firmware.git be a submodule of
qemu.git, so that a 'make install' would deploy roms for devs ?

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 :|



Re: [Qemu-devel] RFC: changing ROM bundling in tar dists for releases

2017-09-01 Thread Gerd Hoffmann
  Hi,

> I think it makes sense to create a separate project for the firmware
> blobs.  Move over the firmware binaries and source submodules to the
> new project.  This way updating both firmware sources and binaries
> can
> be done with a single commit, like we handle this today, just in the
> new firmware repo instead of the main qemu repo.

i.e. something like this:

https://www.kraxel.org/cgit/qemu-firmware/

(only seabios is there for now)

cheers,
  Gerd




Re: [Qemu-devel] RFC: changing ROM bundling in tar dists for releases

2017-09-01 Thread Peter Maydell
On 1 September 2017 at 10:24, Daniel P. Berrange  wrote:
> I've always wondered why we need to specialcase those modules at all.
> Personally I'd just remove them entirely and let people install the
> -dev packages on their distro just like they do for any other build
> prerequisite of QEMU.

Two uses: (1) we've tended to want newer versions of dtc than
distros actually had released (in fact right now we need a
pretty new dtc that not many distros have) and (2) for
hosts like OSX and Windows dependencies are not
a simple matter of "just install the distro's dev package".

thanks
-- PMM



Re: [Qemu-devel] RFC: changing ROM bundling in tar dists for releases

2017-09-01 Thread Gerd Hoffmann
  Hi,

> > Question is what to do with the non-firmware submodules (pixman,
> > dtc,
> > more?) then.  I think they are not that big, so I doubt it is worth
> > the
> > hassle to create two tarball versions.  And license-wise it isn't a
> > issue too.
> 
> I've always wondered why we need to specialcase those modules at all.
> Personally I'd just remove them entirely and let people install the
> -dev packages on their distro just like they do for any other build
> prerequisite of QEMU.

Yes, we can probably do that now with pixman.  A few years back when
the submodule was added there was the problem that some distros shipped
too old versions of pixman.  Known offender: RHEL-5.  But RHEL-5 is EOL
meanwhile and I think qemu raised the minimum glib version to something
newer than what RHEL-5 ships, so it qemu doesn't build on RHEL-5
anyway.

Dunno about dtc.

cheers,
  Gerd




Re: [Qemu-devel] RFC: changing ROM bundling in tar dists for releases

2017-09-01 Thread Daniel P. Berrange
On Fri, Sep 01, 2017 at 10:31:17AM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > > - The qemu release dists get ever larger as we add more ROMS.
> > > Adding
> > >    EFI ROM builds for i386, x86_64, and aarch64 will make the dists
> > >    larger still.
> > 
> > I think these make sense. Should we tie this into the
> > recent suggestion (by Gerd?) that we should put all the
> > rom blobs into git submodules, and otherwise generally
> > try to regularise our handling of blobs?
> 
> It surely makes sense to consider both together, so we can work out a
> reasonable workflow for firmware updates and distribution.
> 
> I think it makes sense to create a separate project for the firmware
> blobs.  Move over the firmware binaries and source submodules to the
> new project.  This way updating both firmware sources and binaries can
> be done with a single commit, like we handle this today, just in the
> new firmware repo instead of the main qemu repo.
> 
> When moving only the binaries to a separate git submodule and
> continuing to have the sources as main qemu repo submodules firmware
> updates become more complicated.
> 
> > >   3. Change existing dist, and add a new one with bundled bits
> > > 
> > >    qemu-X.Y.Z.tar.bz2 - qemu source only
> > >    qemu-addons-X.Y.Z.tar.bz2 - bundled ROMS + libs
> 
> With the scheme above it makes sense to have a qemu-firmware-
> ${version}.tar.gz addon tarball.  Maybe even two (one with the prebuilt
> binaries and one with the sources).
> 
> Question is what to do with the non-firmware submodules (pixman, dtc,
> more?) then.  I think they are not that big, so I doubt it is worth the
> hassle to create two tarball versions.  And license-wise it isn't a
> issue too.

I've always wondered why we need to specialcase those modules at all.
Personally I'd just remove them entirely and let people install the
-dev packages on their distro just like they do for any other build
prerequisite of QEMU.

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 :|



Re: [Qemu-devel] RFC: changing ROM bundling in tar dists for releases

2017-09-01 Thread Gerd Hoffmann
  Hi,

> > - The qemu release dists get ever larger as we add more ROMS.
> > Adding
> >    EFI ROM builds for i386, x86_64, and aarch64 will make the dists
> >    larger still.
> 
> I think these make sense. Should we tie this into the
> recent suggestion (by Gerd?) that we should put all the
> rom blobs into git submodules, and otherwise generally
> try to regularise our handling of blobs?

It surely makes sense to consider both together, so we can work out a
reasonable workflow for firmware updates and distribution.

I think it makes sense to create a separate project for the firmware
blobs.  Move over the firmware binaries and source submodules to the
new project.  This way updating both firmware sources and binaries can
be done with a single commit, like we handle this today, just in the
new firmware repo instead of the main qemu repo.

When moving only the binaries to a separate git submodule and
continuing to have the sources as main qemu repo submodules firmware
updates become more complicated.

> >   3. Change existing dist, and add a new one with bundled bits
> > 
> >    qemu-X.Y.Z.tar.bz2 - qemu source only
> >    qemu-addons-X.Y.Z.tar.bz2 - bundled ROMS + libs

With the scheme above it makes sense to have a qemu-firmware-
${version}.tar.gz addon tarball.  Maybe even two (one with the prebuilt
binaries and one with the sources).

Question is what to do with the non-firmware submodules (pixman, dtc,
more?) then.  I think they are not that big, so I doubt it is worth the
hassle to create two tarball versions.  And license-wise it isn't a
issue too.

cheers,
  Gerd




Re: [Qemu-devel] RFC: changing ROM bundling in tar dists for releases

2017-08-31 Thread Philippe Mathieu-Daudé

On 08/31/2017 09:29 AM, Daniel P. Berrange wrote:
[...]> There are the following options I see


   1. Keep existing dist, and add a new minimal one

qemu-X.Y.Z.tar.bz2 - qemu source + bundled ROMS + libs
qemu-minimal-X.Y.Z.tar.bz2 - qemu source only

  Least impact for current non-distro users, distros just switch.

   2. Change existing dist, and add a new one with everything

qemu-X.Y.Z.tar.bz2 - qemu source only
qemu-full-X.Y.Z.tar.bz2 - qemu source + bundled ROMS + libs

  Non-distro users need to download a different dist from what they
  have known previously, but otherwise unchanged build process.

   3. Change existing dist, and add a new one with bundled bits

qemu-X.Y.Z.tar.bz2 - qemu source only
qemu-addons-X.Y.Z.tar.bz2 - bundled ROMS + libs

  Non-distro users need to manually download & install an
  extra piece compared to now.


Debian style:

linux-kbuild-4.9 - Kbuild infrastructure for Linux 4.9
linux-kbuild-4.12 - Kbuild infrastructure for Linux 4.12
linux-source - Linux kernel source (meta-package)
linux-source-4.12 - Linux kernel source for version 4.12 with Debian patches
firmware-linux - Binary firmware for various drivers in the Linux kernel 
(meta-package)
firmware-linux-nonfree - Binary firmware for various drivers in the 
Linux kernel (meta-package)
firmware-misc-nonfree - Binary firmware for various drivers in the Linux 
kernel

firmware-zd1211 - binary firmware for the zd1211rw wireless driver
firmware-bnx2 - Binary firmware for Broadcom NetXtremeII
...
qemu-efi - UEFI firmware for 64-bit ARM virtual machines
grub-firmware-qemu - GRUB firmware image for QEMU
ipxe-qemu - PXE boot firmware - ROM images for qemu
ovmf - UEFI firmware for 64-bit x86 virtual machines
vgabios - VGA BIOS software for the Bochs and Qemu emulated VGA card
seabios - Legacy BIOS implementation
sgabios - bios option rom to provide legacy serial console for x86

$ apt-cache show qemu-system-x86
Package: qemu-system-x86
Provides: qemu-system-i386, qemu-system-x86-64
Suggests: samba, vde2, qemu-block-extra, kmod, sgabios, ovmf

$ apt-cache show qemu-system-arm
Recommends: qemu-utils, ipxe-qemu, qemu-efi

This seems to me the cleaner one, the distrib choose to provide 
dependencies in the package description, a package to build, and keep 
exclusive licenses in different packages.




   4. Change existing dist, never distribute bundled ROMs + libs at all

qemu-X.Y.Z.tar.bz2 - qemu source only

  Only here for completeness, not a serious suggestion


Linux style :)



   5. Change nothing

  Continue ignoring the problem I aim to solve.


My patch did option 2, but I really open to any of 1/2/3 without a
strong preference, as long as we can get some agreement on one. I
guess option 1 might be easiest to get agreement on given its minimal
impact.


It would be easier to have people building from sources to answer but 
they usually don't read this list, you might want to ask on qemu-stable.


Regards,

Phil.



Re: [Qemu-devel] RFC: changing ROM bundling in tar dists for releases

2017-08-31 Thread Peter Maydell
On 31 August 2017 at 13:29, Daniel P. Berrange  wrote:
> A while back now I posted an RFC patch that changes qemu-X.Y.Z.tar.bz2
> archive to *not* have any ROMs or 3rd party libs bundled, and create a
> new dist qemu-bundled-X.Y.Z.tar.bz2 for the fully bundled dist:
>
>   http://lists.gnu.org/archive/html/qemu-devel/2017-04/msg03335.html
>
> With 2.10 out of the way, and KVM Forum approaching, I figure now is
> a reasonable time to revive the idea to see if it has support
>
> The core issues I'm aiming to solve are:
>
>  - Distro vendors don't want the bundled ROMs / libs. They want to
>fully build everything from source to ensure they are distributing
>clean soure & builds in compliance with the licenses. Currently they
>strip bundled bits from the build tree, but would prefer if the source
>dist did not have them either.
>
>  - The qemu release dists get ever larger as we add more ROMS. Adding
>EFI ROM builds for i386, x86_64, and aarch64 will make the dists
>larger still.

I think these make sense. Should we tie this into the
recent suggestion (by Gerd?) that we should put all the
rom blobs into git submodules, and otherwise generally
try to regularise our handling of blobs?

> There are the following options I see
>
>   1. Keep existing dist, and add a new minimal one
>
>qemu-X.Y.Z.tar.bz2 - qemu source + bundled ROMS + libs
>qemu-minimal-X.Y.Z.tar.bz2 - qemu source only
>
>  Least impact for current non-distro users, distros just switch.
>
>   2. Change existing dist, and add a new one with everything
>
>qemu-X.Y.Z.tar.bz2 - qemu source only
>qemu-full-X.Y.Z.tar.bz2 - qemu source + bundled ROMS + libs
>
>  Non-distro users need to download a different dist from what they
>  have known previously, but otherwise unchanged build process.
>
>   3. Change existing dist, and add a new one with bundled bits
>
>qemu-X.Y.Z.tar.bz2 - qemu source only
>qemu-addons-X.Y.Z.tar.bz2 - bundled ROMS + libs
>
>  Non-distro users need to manually download & install an
>  extra piece compared to now.

I don't use the tarballs, so I don't really have
a strong preference.

thanks
-- PMM