Fedora Mono goes on a diet

For a long time, Mono on Fedora has a reputation for being bloated. A lot of it is admittedly due to our packaging: install the most trivial application and hey presto, it pulls in almost the entire stack! Here’s what happened, at least as of the state-of-the-art on Rawhide, and a similar story on the stable releases:

  • mono-core contains some documentation tool, so those pull in monodoc. monodoc alone is 7MB, so plus the tools that are erroneously in mono-core, more than that is wasted at this stage
  • mono-core also pulls in mono-extras and mono-web (how could mono-extras be extra if you always need to install it, you might ask? Good question! See bug 434709). These are not so bad, about 1.5MB in total
  • *but* mono-web (Mono’s ASP.NET) is closely coupled with mono-winforms. And that’s 2MB.

This Gordian knot has now be unknotted. As evidenced from the following transcript, below the cut:

$ sudo yum install f-spot
...
Dependencies Resolved

================================================================================
 Package            Arch     Version                            Repository
                                                                           Size
================================================================================
Installing:
 f-spot             x86_64   0.6.0.0-3.fc12                     rawhide   2.0 M
Installing for dependencies:
 gnome-sharp        x86_64   2.24.0-6.fc12                      rawhide   260 k
 gtk-sharp2         x86_64   2.12.7-6.fc12                      rawhide   593 k
 mono-addins        x86_64   0.4-8.20091702svn127062.1.fc12     rawhide   365 k
 mono-core          x86_64   2.4.2.3-1.fc12                     rawhide   8.7 M
 mono-data          x86_64   2.4.2.3-1.fc12                     rawhide   912 k
 mono-data-sqlite   x86_64   2.4.2.3-1.fc12                     rawhide   104 k
 mono-extras        x86_64   2.4.2.3-1.fc12                     rawhide   886 k
 mono-web           x86_64   2.4.2.3-1.fc12                     rawhide   416 k
 mono-winforms      x86_64   2.4.2.3-1.fc12                     rawhide   1.8 M
 monodoc            x86_64   2.4.2.3-1.fc12                     rawhide   6.9 M
 ndesk-dbus         x86_64   0.6.1a-7.fc12                      rawhide    46 k
 ndesk-dbus-glib    x86_64   0.4.1-7.fc12                       rawhide    11 k

Transaction Summary
================================================================================
Install      13 Package(s)
Upgrade       0 Package(s)

Total download size: 23 M
Is this ok [y/N]: n

$ echo Now these are the only packages that are actually needed...
$ du -chs mono*.rpm
6.9M    mono-core-2.4.2.3-2.fc12.x86_64.rpm
912K    mono-data-2.4.2.3-2.fc12.x86_64.rpm
104K    mono-data-sqlite-2.4.2.3-2.fc12.x86_64.rpm
2.0M    mono-web-2.4.2.3-2.fc12.x86_64.rpm
1.9M    mono-winforms-2.4.2.3-2.fc12.x86_64.rpm
12M     total

$ sudo yum install f-spot
...
Dependencies Resolved

================================================================================
 Package           Arch     Version                             Repository
                                                                           Size
================================================================================
Installing:
 f-spot            x86_64   0.6.0.0-3.fc12                      rawhide   2.0 M
Installing for dependencies:
 gnome-sharp       x86_64   2.24.0-6.fc12                       rawhide   260 k
 gtk-sharp2        x86_64   2.12.7-6.fc12                       rawhide   593 k
 mono-addins       x86_64   0.4-8.20091702svn127062.1.fc12      rawhide   365 k
 ndesk-dbus        x86_64   0.6.1a-7.fc12                       rawhide    46 k
 ndesk-dbus-glib   x86_64   0.4.1-7.fc12                        rawhide    11 k

Transaction Summary
================================================================================
Install       6 Package(s)
Upgrade       0 Package(s)

Total download size: 3.2 M
Is this ok [y/N]: y


Download size before: 23 MB
Download size after: 15 MB

That’s roughly a one-third decrease in size — and that’s for an application that makes heavy use of the Mono framework. You will get better luck with anything that does not touch mono-web.

These should show up in Rawhide real soon now — and F-11 after the Mono updates currently percolating their way there have settled down.

One response to “Fedora Mono goes on a diet

  1. Unquestionably believe that which you stated. Your favorite justification seemed to be
    on the web the simplest thing to be aware of. I say
    to you, I definitely get annoyed while people think about worries that they just
    do not know about. You managed to hit the nail upon
    the top and defined out the whole thing without having side-effects , people can
    take a signal. Will probably be back to get more.
    Thanks