๐ Mono 4
๐ Summary
Update the Mono stack in Fedora from 2.10 to 4.*
๐ Owner
- Name: Claudio Rodrigo Pereyra Diaz
- Email: <elsupergomez@fedoraproject.org>
- Release notes 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:
- Upgrade mono to version 3.4, then to version 3.12 and then to version 4.0.1 on rawhide (3.4 now builds on rawhide: https://copr.fedoraproject.org/coprs/tpokorra/mono-3.4/monitor/)
- Make a one time exception of the rule for build mono 4.0.1-1 using monolite, later make mono depend again on it self and rebuild mono 4.0.1-2 using mono-4.0.1-1
- this is the favoured option, because there are new architectures anyway: armv7hl, aarch64, ppc64, ppc64l
- it would be best to bootstrap Mono 4 for all of the primary and secondary architectures at the same time (https://fedoraproject.org/wiki/Architectures#Structure)
- there is now an FPC ticket for this: https://fedorahosted.org/fpc/ticket/528
๐ 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 | Done: in Rawhide |
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 | Boostrapped into Rawhide. TODO: Next run without bootstrap requires nunit 2.6.3 |
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