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 In copr Status Notes
OpenTK Yes https://bugzilla.redhat.com/show_bug.cgi?id=1222982
RepetierHost Need move to 4.5 profile. https://bugzilla.redhat.com/show_bug.cgi?id=1222945
avahi Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637529
avahi-sharp Need fix requires avahi-libs
banshee Yes https://bugzilla.redhat.com/show_bug.cgi?id=1222980
banshee-community-extensions Fedora package work without changes if Copr is configured
bareftp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637654
bless Need move to 4.5 profile. https://bugzilla.redhat.com/show_bug.cgi?id=1222937
boo Need move to 4.5 profile. https://bugzilla.redhat.com/show_bug.cgi?id=1222984
cdcollect Yes Build in http://koji.fedoraproject.org/koji/buildinfo?buildID=637697
dbus-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637535
dbus-sharp-glib Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637598
docky Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637641
gbrainy
gdata-sharp Yes Build in http://koji.fedoraproject.org/koji/buildinfo?buildID=637551
gecko-sharp2 Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637633
gio-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637541
giver Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637700
gkeyfile-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637609
gmime Build in [koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637667
gnome-desktop-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637547
gnome-do Need move to 4.5 profile
gnome-guitar Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637679
gnome-keyring-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637615
gnome-rdp Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637699
gnome-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637538
gnome-subtitles Buil in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637701
gsf-sharp Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637661
gtk-sharp-beans Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637622
gtk-sharp2 Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637531
gtksourceview-sharp Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637666
graphviz Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637540
gudev-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637553
hyena Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637653
keepass Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637862
kimono Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637723
libappindicator Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637662
libgdiplus Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637589
libgpod Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637552
log4net Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637559
mono Yes Done: in Rawhide
mono-addins Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637575
mono-basic Yes Updated to 4.0.1. Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637854
mono-bouncycastle Need move to 4.5 profile
mono-cecil Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637639
mono-cecil-flowanalysis Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637725
mono-debugger Need move to 4.5 profile
mono-reflection Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637736
mono-tools Yes
mono-zeroconf Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637550
monobristol Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637740
monodevelop Yes
monodevelop-debugger-gdb Fedora package install without changes if Copr is configured
monosim Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637734
nant Yes Boostrapped into Rawhide. TODO: Next run without bootstrap requires nunit 2.6.3
ndesk-dbus Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637549
ndesk-dbus-glib Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637632
nini Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637716
notify-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637624
pdfmod Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637668
pinta Done: in Rawhide
poppler-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637545
qyoto Done: in Rawhide Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637692
rescene
shogun
sparkleshare Fedora package work without changes if Copr is configured
syntastic
taglib-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637613
themonospot-base Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637758
themonospot-console Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637777
themonospot-gui-gtk Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637774
themonospot-gui-qt Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637776
themonospot-plugin-avi Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637775
themonospot-plugin-mkv Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637778
tomboy Yes https://bugzilla.redhat.com/show_bug.cgi?id=1222996
uwsgi Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637721
webkit-sharp Yes Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637607
xsp Yes https://bugzilla.redhat.com/show_bug.cgi?id=1222992

New packages for mono stack

Package In Copr Status Notes
gtk-sharp3 Yes Done Build in koji http://koji.fedoraproject.org/koji/buildinfo?buildID=637565
monodevelop-database Yes
mysql-connector-net Yes Request unretired
notify-sharp3 Yes Review request https://bugzilla.redhat.com/show_bug.cgi?id=1222662
npgsql Yes
nuget Yes
nunit Yes Review request https://bugzilla.redhat.com/show_bug.cgi?id=1222926
nunit25 Yes 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/