Mono 5.20
Summary
Update the Mono stack in Fedora from 5.18 to 5.20. It seems we need to do again a bootstrap build.
Owner
- Name: Timotheus Pokorra
- Email: tpokorra@fedoraproject.org
- Release notes owner:
Current status
- Targeted release: Fedora 31
- Last updated: 2019-07-12
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
I had hoped, that between minor releases, we could build Mono without doing a bootstrap. I can build Mono 5.20 fine with a bootstrap, but not without. I did some experimenting, with the idea of a fake bootstrap, by using the existing Mono in Fedora, and avoiding the checks for the mscorlib version. But that ended in compiler errors. I asked upstream, but have not yet received a reply: https://github.com/mono/mono/issues/15643 I have successfully built Mono 5.20 without bootstrap, once I have Mono 5.20 installed.
I would like to request permission to make a one time exception of the rule for building mono 5.20.1-1 using monolite and the reference assemblies, later make mono depend again on itself and rebuild mono 5.18.1-2 using mono-5.18.1-1.
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.
- The binary reference assemblies are included in the Mono tarball which is provided by upstream. The tarball also includes the sources of the reference assemblies, which are maintained here: https://github.com/dotnet/source-build
- 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 and some binary reference assemblies.
- In the bootstrap, we rebuild the reference assemblies and include them in the mono-devel package, as well as the mono compiler.
- After Mono has been built for all primary and secondary architectures, we enable the deletion of the 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 5.x
Scope
- Proposal owners:
Update mono spec and build in koji until is ready. Members of the Mono SIG can rebuild their packages with Mono 5.20, but tests with keepass for example show that it works fine without rebuilding even with Mono 5.20. Rebuild of all packages depending on Mono can happen during the regular mass rebuild.
- Other developers: N/A (not a System Wide Change)
- Release engineering: #Releng issue number (a check of an impact with Release Engineering is needed)
- List of deliverables: N/A (not a System Wide Change)
- Policies and guidelines: N/A (not a System Wide Change)
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
N/A (not a System Wide Change)
Tests with keepass without rebuilding keepass worked fine on Mono 5.20.
How To Test
N/A (not a System Wide Change)
User Experience
Dependencies
N/A (not a System Wide Change)
This is not a system wide change, but only affects packages depending on Mono, and should be managed by the members of the Mono SIG.
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change)
- Blocks product? None
Documentation
N/A (not a System Wide Change)
- https://fedoraproject.org/wiki/Packaging:Mono
- https://github.com/mono/mono
- https://copr.fedorainfracloud.org/coprs/tpokorra/mono-5.20/
- https://github.com/tpokorra/mono-5.x-fedora/tree/master/mono-5.20