Tag Archive for 'winforms'

openSUSE 11.2 – how to keep Mono, remove Windows.Forms

The new release of openSUSE ships Mono with Windows.Forms by default. For users who don’t mind Mono but would rather not have Windows.Forms installed, there are other options.

You could forcefully remove mono-winforms with something like:
sudo rpm --erase --nodeps mono-winforms

Admittedly this might cause issues with other packages which depend on it, but should work. Installing new applications shouldn’t ask for mono-winforms because it’s generally pulled in by a parent package (like mono-web) which is still installed.

Another option is to remove Mono and all dependencies:
sudo zypper remove mono

Add a lock for mono-winforms:
sudo zypper al mono-winforms

And then re-install those Mono applications you want. When the resolver errors, tell Zypper to “break the program by ignoring some of its dependencies”. This way the program should be installed with all Mono related dependencies, but without Windows.Forms.

As far as I know, none of these applications actually require mono-winforms, it’s just a package which is pulled in by default as a part of Mono.

Of course, there are other reasons to not use Mono and I’d recommend removing it altogether :-)

openSUSE 11.2 – Mono with Windows.Forms by default, in GNOME

I was pleased to see (although not too surprised) that the KDE desktop in openSUSE 11.2 does not ship Mono by default.

With GNOME, however it’s a different story. The main .NET applications included with 11.2 include Banshee, Beagle, F-Spot, GNOME Do, Tasque and Tomboy.

Not much of this has changed from the openSUSE 11.1 release, with the exception of GNOME Do which is new.

What is interesting, is that by default openSUSE ships the Mono implementation of Windows.Forms from .NET, which is outside the ECMA standard (and not covered under Microsoft’s horribly inadequate Community Promise).

Furthermore, all of the afore mentioned applications rely on Windows.Forms (package “mono-winforms“) and want to pull it in as a dependency.

At some point, Novell intends to split the Mono package between free and non-free components, but that doesn’t appear to have happened yet.

The fix

For users who don’t want Mono and .NET applications on their system, the solution is simple. Firstly, remove Mono and all that depend on it:
chris@wks1004925:~> sudo zypper remove mono

root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following packages are going to be REMOVED:
art-sharp2 avahi-mono banshee-1 banshee-1-backend-engine-gstreamer banshee-1-backend-platform-gnome
banshee-1-backend-platform-unix banshee-1-client-classic banshee-1-core banshee-1-extensions-default beagle
beagle-evolution beagle-gui beagle-index evolution-sharp flickrnet f-spot gconf-sharp2 glade-sharp2 glib-sharp2
gmime-sharp gnome-desktop-sharp2 gnome-do gnome-do-plugins gnome-keyring-sharp gnome-panel-sharp gnome-sharp2
gnome-vfs-sharp2 gsf-sharp gtk-sharp2 mono-addins mono-core mono-data mono-data-sqlite mono-nunit mono-web mono-winforms
mono-zeroconf mono-zeroconf-provider-avahi ndesk-dbus ndesk-dbus-glib notify-sharp rsvg2-sharp taglib-sharp tasque tomboy
wnck-sharp

46 packages to remove.
After the operation, 126.0 MiB will be freed.
Continue? [y/n/?] (y):

Next, lock Mono so that it can’t be brought back by any application you install in the future:
sudo zypper al *mono*

Finally, install replacement applications.

After a reboot, I had a weird issue where the GNOME Desktop Manager (GDM) didn’t load completely. There was no-where to put my username and the “Restart” and “Shut Down” buttons did nothing. It only happened once I had removed Mono, but it could just be Virtualbox playing up. I’ll investigate further..