Small rant: installer environment size
by Adam Williamson
Hi folks! Today I woke up and found
https://bugzilla.redhat.com/show_bug.cgi?id=2151495 , which diverted me
down a bit of an "installer environment size" rabbit hole.
As of today, with that new dep in webkitgtk, Rawhide's network install
images are 703M in size. Here's a potted history of network install
image sizes:
Fedora Core 8: 103.2M (boot.iso 9.2M + stage2.img 94M)
Fedora 13: 208M
Fedora 17: 162M (last "old UI")
Fedora 18: 294M (first "new UI")
Fedora 23: 415M
Fedora 28: 583M
Fedora 33: 686M
Fedora 37: 665M
Fedora Rawhide: 703M
The installer does not really do much more in Rawhide than it did in
FC8. Even after the UI rewrite in F18, we were only at 294M. Now the
image is well over 2x as big and does...basically the same.
Why does this matter? Well, the images being large is moderately
annoying in itself just in terms of transfer times and so on. But more
importantly, AIUI at least, the entire installer environment is loaded
into RAM at startup - it kinda has to be, we don't have anywhere else
to put it. The bigger it is, the more RAM you need to install Fedora.
The size of the installer environment (for which the size of the
network install image is more or less a perfect proxy) is one of the
two key factors in this, the other being how much RAM DNF uses during
package install.
So, I did a bit of poking about into *what* is taking up all that
space. There's a variety of answers, but there's two major culprits:
1. firmware
2. yelp (which pulls in webkitgtk and its deps)
I've been using du and baobab (the GNOME visual disk usage analyzer,
which is great) to examine the filesystems, but I ran a couple of test
builds to confirm these suspects, especially after the impact of
compression (it's hard to check the *compressed* size of things in the
installer environment directly).
I did a scratch build of lorax which does not pull in firmware
packages, and had openQA build a netinst using that lorax. It came out
at 489M - 214M smaller than current netinsts, a size we last managed in
Fedora 26. I did a scratch build of anaconda with its requirement of
yelp dropped (which would break help pages), and built a netinst with
that; it came out at 662M - 41M smaller than current images. I haven't
run a combined test yet, but it ought to come out around 448M, around
the size of Fedora 24.
Even then we'd still be about 50% larger than the Fedora 18 image, for
not really any added functionality.
I've moaned about the sheer amount and size of firmware blobs in other
forums before, but 214M compressed is *really* obnoxious. We must be
able to do something to clean this up (further than it's already
cleaned up - this is *after* we dropped low-hanging fruit like
enterprise switch 'firmwares' and garbage like that; most of the
remaining size seems to be huge amounts of probably-very-similar
firmware files for AMD graphics adapters and Intel wireless adapters).
I know some folks were trying to work on this (there was talk that we
could drop quite a lot of files that would only be loaded by older
kernels no longer in Fedora); any news on how far along that effort is?
Other obvious things that take up a lot of space:
1. /usr/lib/locale/locale-archive , from glibc-all-langpacks - this is
224M uncompressed. A quick test just compressing the file with xz on my
system shows it compresses to around 11M, though, so that's probably
all it adds up to after compression (the image is an xz-compressed
squashfs)
2. /usr/lib64/libLLVM-15.so, which is 114M on its own, compresses to
23M. We are, I think, basically stuck with this for mesa-dri-drivers ,
but does it have to be so *big*?
3. libicudata.so.71.1 - 30.4M, compresses to 7M. This is in the
webkitgtk dep chain but seems to still be pulled in without it, not
sure what else is requiring it.
4. /usr/share/locale - 112M in total (uncompressed, not sure how much
compressed) of translated strings from a ton of packages. No idea how
many of these are really *needed* in the installer environment. We can
maybe come up with a way to have lorax strip some, if we can come up
with a viable way to figure out which. Obviously-fairly-large ones are
from gnupg2 and libgweather4. I do recall we have some logic somewhere
to decide which languages have a certain level of translation in
anaconda; perhaps we could only include the strings for these
languages?
--
Adam Williamson
Fedora QA
IRC: adamw | Twitter: adamw_ha
https://www.happyassassin.net
1 year, 2 months
Fedora Workstation WG minutes, 2023-02-07
by Chris Murphy
==============================================
#fedora-meeting-2: Workstation WG (2023-02-07)
==============================================
Meeting started by brainycmurf at 19:55:41 UTC. The full logs are
available at
https://meetbot.fedoraproject.org/fedora-meeting-2/2023-02-07/workstation...
.
Meeting summary
---------------
* Present members: Michael, Kalev, Chris, Tomas, Matthias, Owen, Jens
(brainycmurf, 19:55:56)
* Guests: Jonathan, (brainycmurf, 19:55:56)
* Regrets: Allan, Neal (brainycmurf, 19:55:56)
* Secretary: Tomas (brainycmurf, 19:55:56)
* Replace eog with loupe as the default image viewer (brainycmurf,
19:55:56)
* LINK: https://pagure.io/fedora-workstation/issue/348 (brainycmurf,
19:55:57)
* Announcements and status updates (brainycmurf, 19:56:04)
* Last week's meeting minutes posted (brainycmurf, 19:57:08)
* LINK:
https://meetbot.fedoraproject.org/fedora-meeting-2/2023-01-31/workstation...
(brainycmurf, 19:57:08)
Meeting ended at 19:57:17 UTC.
Action Items
------------
Action Items, by person
-----------------------
* **UNASSIGNED**
* (none)
People Present (lines said)
---------------------------
* brainycmurf (15)
* zodbot (7)
* Michael (0)
Generated by `MeetBot`_ 0.4
.. _`MeetBot`: https://fedoraproject.org/wiki/Zodbot#Meeting_Functions
1 year, 2 months
Summary/Minutes from today's Fedora Flatpak Packaging SIG Meeting
(2023-02-06)
by Kalev Lember
=============================================
#fedora-meeting: Fedora Flatpak Packaging SIG
=============================================
Meeting started by kalev at 15:00:13 UTC. The full logs are available at
https://meetbot.fedoraproject.org/fedora-meeting/2023-02-06/flatpak-sig.2...
.
Meeting summary
---------------
* Init process (kalev, 15:00:13)
* Announcements (kalev, 15:03:46)
* gstreamer1-plugins-ugly-free and jxl-pixbuf-loader packages added to
the flatpak runtime (kalev, 15:05:05)
* longstanding Cheese issue with camera detection fixed, was due to
gstreamer1-plugins-good needing to be built differently in the
flatpak runtime (kalev, 15:09:23)
* libreoffice update done that was blocked by a java build issue
(kalev, 15:09:51)
* new flatpak packages currently in testing: klavaro, remmina,
gtkhash, exaile, howl, exfalso, audacious (kalev, 15:10:06)
* would be useful if people could test new flatpaks and leave karma in
bodhi and report any issues to bugzilla (kalev, 15:11:52)
* flatpak-sig group created (kalev, 15:12:33)
* new fedmsg bot in irc channel (kalev, 15:13:03)
* flatpak 1.15.2 released (kalev, 15:13:40)
* LINK: https://github.com/flatpak/flatpak/releases/tag/1.15.2
(kalev, 15:13:41)
* IRC bot (kalev, 15:14:10)
* most people find the fedmsg bot too verbose and effectively killed
all communication in the channel (kalev, 15:16:58)
* ACTION: Kalev to do an ansible PR to drop the bot from the channel
(kalev, 15:17:34)
* How to test Fedora flatpaks (kalev, 15:20:32)
* ACTION: Kalev to start a wiki page with testing instructions
(kalev, 15:24:25)
* LINK: https://fedoraproject.org/wiki/SIGs/Flatpak/Testing
(travier, 15:25:18)
* libmodulemd1 (kalev, 15:26:37)
* yselkowitz[m] to look into fixing libmodulemd1 FTBFS (kalev,
15:40:02)
* Owen to talk to Jan to see how far along fedmod replacement is
(kalev, 15:40:28)
* ACTION: tpopela to to talk to Jan to see how far along fedmod
replacement is :-) (OwenTaylor[m], 15:41:04)
* LINK: https://koji.fedoraproject.org/koji/taskinfo?taskID=96366742 -
btw. the build succeeded on aarch64.. (tpopela[m], 15:42:47)
* place to track issues (kalev, 15:44:14)
* LINK: https://gitlab.com/fedora/sigs (travier, 15:46:04)
Meeting ended at 15:59:50 UTC.
Action Items
------------
* Kalev to do an ansible PR to drop the bot from the channel
* Kalev to start a wiki page with testing instructions
* tpopela to to talk to Jan to see how far along fedmod replacement is
:-)
Action Items, by person
-----------------------
* **UNASSIGNED**
* Kalev to do an ansible PR to drop the bot from the channel
* Kalev to start a wiki page with testing instructions
* tpopela to to talk to Jan to see how far along fedmod replacement is
:-)
People Present (lines said)
---------------------------
* kalev (110)
* travier (19)
* zodbot (14)
* AllanDay[m] (9)
* tpopela[m] (7)
* bcotton (6)
* FelipeBorges[m] (5)
* OwenTaylor[m] (5)
* yselkowitz[m] (5)
* JanGrulich[m] (1)
Generated by `MeetBot`_ 0.4
.. _`MeetBot`: https://fedoraproject.org/wiki/Zodbot#Meeting_Functions
1 year, 2 months