From Fedora Project Wiki


Mono 4

Summary

Update the Mono stack in Fedora from 2.10 to 4.*

Owner

Current status

Detailed Description

Support for Mono versions 3.0 and 2.10 has been discontinued. No further development of bug fixing is planned for those branches. Mono 4 is the active branch and has many improvements. See upstream notes http://www.mono-project.com/docs/about-mono/releases/4.0.0/

Mono requires itself to build. The Mono version 2.10.8 currently included in Fedora is too old to build version 4 that requires at least version 3.4. At the moment on copr we use monolite, a little version of mono compiler shipped in the tarball for first build time.

We have two options to upgrade:

Steps for Bootstrapping

  • The Monolite binaries are included in the Mono tarball which is provided by upstream. see also http://www.mono-project.com/docs/advanced/monolite/
    • Monolite is a minimal binary distribution of mcs. This is the compiler that is able to build the rest of Mono.
  • In the spec file, we usually delete all dlls and executables before the build section.
  • For the bootstrap, we would once keep the monolite binaries.
  • After Mono has been built for all primary and secondary architectures, and for Epel, we enable the deletion of the monolite binaries again in the spec file.

Benefit to Fedora

Fedora aims to showcase the latest in free and open source software - we should have the most recent release of Mono 4.0.1

It will have the ability to run cross-platform applications that require compatibility with Microsoft. Net Framework 4.5

Scope

  • Proposal owners:

Update mono spec and build in copr and/or koji until is ready.

  • Other developers:

See Upgrade/compatibility impact and Dependencies section

  • Release engineering: None
  • Policies and guidelines: None

Upgrade/compatibility impact

Mono 4 includes most of the features of Mono 2.10 and Mono 3 branch.

The profiles 2.0, 3.5 and 4.0 will not be build any more in favor of profile 4.5

Many packages may need to be revised, updated or rebuilt because Mono 4 require that all application use target 4.5. In general is a simple task to sed .sln, .cproj, configure, configure.in, configure.am, Makefile, Makefile.in, Makefile.am for use mcs instead gmcs and change profile < 4.5 to 4.5. The files to sed change depending in what form is distributed the sources. In most off the cases only configure files need sed. A few package work without changes like gnome-subtitle or pinta

The fixes is work in progress on https://github.com/elsupergomez/lbs-mono-fedora and https://github.com/tpokorra/lbs-mono-fedora


How To Test

Interested testers do not need special hardware. Take a given Mono application and test it against the Mono at this copr repo and verify it works:

* http://copr.fedoraproject.org/coprs/tpokorra/mono/

Any issue will be reported in github https://github.com/elsupergomez/lbs-mono-fedora or https://github.com/tpokorra/lbs-mono-fedora

User Experience

User should note speedy improvement running Mono applications.

Some applications will have features only supported if used Mono 4

Dependencies

Package Run with Mono 4
OpenTK Work from Copr, EPEL6 need fix
RepetierHost Need move to 4.5 profile
avahi Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637529)
avahi-sharp Need fix requires avahi-libs
banshee Work from Copr, EPEL6/7 need fix libgpod first
banshee-community-extensions Fedora package work without changes if Copr is configured
bareftp Work from Copr, EPEL6 need fix gnome-keyring-sharp. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637654)
bless Need move to 4.5 profile
boo Need move to 4.5 profile
cdcollect Work from Copr, only need rebuild
dbus-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637535)
dbus-sharp-glib Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637598)
docky Work from Copr, EPEL6 need fix gnome-keyring-sharp. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637641)
gbrainy Fedora package work without changes if Copr is configured
gdata-sharp Done: in Rawhide
gecko-sharp2 Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637633)
gio-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637541)
giver Nedd fix avahi-sharp
gkeyfile-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637609)
gmime Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637667)
gnome-desktop-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637547)
gnome-do Need move to 4.5 profile
gnome-guitar Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637679)
gnome-keyring-sharp Work from Copr, Epel6 missing libgnome-keyring-devel. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637615)
gnome-rdp Need move to 4.5 profile
gnome-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637538)
gnome-subtitles Fedora package work without changes if Copr is configured
gsf-sharp Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637661)
gtk-sharp-beans Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637622)
gtk-sharp2 Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637531)
gtksourceview-sharp Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637666)
graphviz Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637540)
gudev-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637553)
hyena Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637653)
keepass Work from Copr for Fedora, EPEL need fixes
kimono Need fix version requires of libmono-2.0.so.1
libappindicator Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637662)
libgdiplus Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637589)
libgpod Work from Copr, EPEL6 need fix missing libusbx. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637552)
log4net Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637559)
mono Done: in Rawhide
mono-addins Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637575)
mono-basic Work from Copr. Updated to 4.0.1
mono-bouncycastle Need move to 4.5 profile
mono-cecil Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637639)
mono-cecil-flowanalysis Need move to 4.5 profile
mono-debugger Need move to 4.5 profile
mono-reflection Need move to 4.5 profile
mono-tools Work from Copr
mono-zeroconf Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637550)
monobristol Fedora package install without changes if Copr is configured
monodevelop Work from Copr
monodevelop-debugger-gdb Fedora package install without changes if Copr is configured
monosim Fedora package install without changes if Copr is configured
nant Need mono(log4net) = 1.2.13.0. bootstrap works on Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637570)
ndesk-dbus Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637549)
ndesk-dbus-glib Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637632)
nini Work from Copr
notify-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637624)
pdfmod Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637668)
pinta Done: in Rawhide
poppler-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637545)
qyoto Done: in Rawhide
rescene
shogun
sparkleshare Fedora package work without changes if Copr is configured
syntastic
taglib-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637613)
themonospot-base Need move to 4.5 profile
themonospot-console Need move to 4.5 profile
themonospot-gui-gtk Need move to 4.5 profile
themonospot-gui-qt Need move to 4.5 profile
themonospot-plugin-avi Need move to 4.5 profile
themonospot-plugin-mkv Need move to 4.5 profile
tomboy Work from Copr
uwsgi
webkit-sharp Work from Copr. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637607)
xsp Work from Copr, EPEL6 need fix

New packages for mono stack

Package Notes
gtk-sharp3 Epel6 missing gtk3. Build in [koji f23-mono4](http://koji.fedoraproject.org/koji/buildinfo?buildID=637565) https://bugzilla.redhat.com/show_bug.cgi?id=1192059
monodevelop-database Epel6 need fix mysql-connection-net first
mysql-connector-net Epel6 fail build when try apply patch0
notify-sharp3 Epel6 missing gtk3. [Review request](https://bugzilla.redhat.com/show_bug.cgi?id=1222662)
npgsql
nuget
nunit Filed a review request: https://bugzilla.redhat.com/show_bug.cgi?id=1222926
nunit25 Probably not needed anymore. I have fixed MonoDevelop to build without NUnit 2.5

Contingency Plan

  • Contingency mechanism: Still in Mono 2.10
  • Contingency deadline: Beta freeze
  • Blocks release? No
  • Blocks product? Monodevelop >= 5

Documentation

https://fedoraproject.org/wiki/Packaging:Mono

https://github.com/mono/mono

Release Notes

http://www.mono-project.com/docs/about-mono/releases/