Fedora netboot images improvements

On image size: it’s as small as we can make it, unfortunately. It’s already a lot of very ugly work to make it that small. There are two major reasons it’s much bigger than it used to be:

  1. The kernel and all the drivers and especially firmware required to ensure hardware support are much bigger than they used to be. Firmware is a big problem: Intel wifi firmware alone is about 50M in size, and we can’t drop that or else you can’t do an install over wifi. NVIDIA and AMD graphics card firmwares take up another large chunk of space, and we can’t drop those or you won’t be able to see the installer.

  2. The size of the components required to show the graphical installer. In the current design anaconda runs on gnome-kiosk, which means it needs enough stuff installed to run gnome-kiosk and anaconda itself, and the size of those deps isn’t trivial. We do some very ugly hacking around to cut out a lot of stuff that the packages depend on but which we know the installer environment doesn’t need, or else the image would be even larger, but that stuff is fragile and hard to maintain and we can’t really take it any further than we already have. There’s one particular dep chain that makes me sad - in order to display anaconda’s help pages, we include the Yelp help viewer, and that depends on webkitgtk, which in turn pulls in a bunch of multimedia packages because these days an HTML engine has to be capable of displaying sound and playing video. But we don’t really have a good option for cutting that dep chain anywhere, because…we need to be able to see the help pages and there is no practical non-web-engine-based choice for doing that.

In the very old days the installer environment was entirely custom and built completely separately from the main distro, which helped with making it small but was a nightmare to maintain and broke frequently. We can’t really go back to that. Even if we did, it’d probably still be much bigger than 100MB. Stuff is just bigger than it used to be. Keeping it under 700M is already an ongoing nightmare and we’re probably going to have to give up on it soon, because I hear that NVIDIA and AMD are going to adopt the Intel wifi approach to firmware, shipping dozens of different firmware files for slightly different GPUs - only each one will be 20-30MB, not 0.5-1MB as with Intel wifi firmwares.