Bug 1313236

Summary: Upgrade to MonoDevelop 7.x
Product: [Fedora] Fedora Reporter: Timotheus Pokorra <pokorra.mailinglists>
Component: monodevelopAssignee: Timotheus Pokorra <mailinglists>
Status: ASSIGNED --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: abuse, apcomptec, chkr, claudiorodrigo, mailinglists, ondra.pelech, yeking
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1360389    
Bug Blocks:    

Description Timotheus Pokorra 2016-03-01 08:47:31 UTC
There is now a tarball available for MonoDevelop 6.0.

This bug should contain the issues that still need to be worked out to package MonoDevelop 6 for Fedora Rawhide.

The source of the spec file and the patches is currently maintained at https://github.com/tpokorra/lbs-mono-fedora/tree/ALPHA/monodevelop

Comment 1 Timotheus Pokorra 2016-03-01 08:50:33 UTC
MonoDevelop has an addin for NUnit2 and NUnit3 runners.
We need to decide if we upgrade the nunit package in Fedora from NUnit2 to NUnit3, or if we add a new package nunit3.
For the moment, I have disabled nunit3 in my working copy of the MonoDevelop6 spec file.

Comment 2 Timotheus Pokorra 2016-03-01 08:52:23 UTC
There is an adding RefactoringEssentials which requires the PCL reference assemblies (see also http://stackoverflow.com/questions/35245840/build-monodevelop-on-debian-jessie-using-mono-4-3-3).
We cannot use reference assemblies in Fedora, so I suggest we drop that addin, as I have done in my working copy of the MonoDevelop spec file.

Comment 3 Timotheus Pokorra 2016-03-01 08:53:52 UTC
Another missing assemblies is System.Collections.Immutable
It is used by src/core/MonoDevelop.Core/MonoDevelop.Core.csproj

It comes with the tarball, but we drop precompiled assemblies for Fedora.

So we probably need to create a new package for System.Collections.Immutable.

Comment 4 Claudio Rodrigo Pereyra DIaz 2016-03-17 18:46:00 UTC
(In reply to Timotheus Pokorra from comment #1)
> MonoDevelop has an addin for NUnit2 and NUnit3 runners.
> We need to decide if we upgrade the nunit package in Fedora from NUnit2 to
> NUnit3, or if we add a new package nunit3.
> For the moment, I have disabled nunit3 in my working copy of the
> MonoDevelop6 spec file.

In my opinion the best is update nunit to v3 and if necessary add a new package nunit2 for compatibility

Comment 5 Timotheus Pokorra 2016-06-15 05:30:52 UTC
another added dependancy is fsharp. but perhaps we can patch that out.

Comment 6 Jan Kurik 2016-07-26 04:08:17 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 25 development cycle.
Changing version to '25'.

Comment 7 Timotheus Pokorra 2016-08-10 10:08:13 UTC
Another issue is the assembly external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.dll used in src/core/MonoDevelop.Core/MonoDevelop.Core.csproj

we need to compile that from source somehow.
https://www.nuget.org/packages/Microsoft.CodeAnalysis/

https://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/Portable/CodeAnalysis.csproj
Licensed under the Apache License, Version 2.0.

Comment 8 Timotheus Pokorra 2016-08-10 10:15:19 UTC
current status:

initial work for package mono-immutablecollections which packages System.Collections.Immutable from https://github.com/mono/ImmutableCollections:
https://github.com/tpokorra/lbs-mono-fedora/tree/master/mono-immutablecollections

removed references to FSharp and RefactoringEssentials:
https://github.com/tpokorra/lbs-mono-fedora/blob/master/monodevelop/monodevelop.spec

I have upgraded NUnit to version 3 in Rawhide.

Comment 9 Ondra Pelech 2016-08-11 20:03:41 UTC
curious question: why are you packaging ImmutableCollections from mono:

  * https://github.com/mono/ImmutableCollections

and not the one from .NET:

  * https://github.com/dotnet/corefx/tree/master/src/System.Collections.Immutable
  * https://www.nuget.org/packages/System.Collections.Immutable

?

Comment 10 Timotheus Pokorra 2016-08-12 16:15:12 UTC
@Ondra: it is a good question. I am not sure yet. I actually don't know if there are technical limitations of packages targetted for .NET core, if they can be used with Mono?

Comment 11 Ondra Pelech 2016-08-12 19:58:31 UTC
let's ask Monodevelop developers: https://bugzilla.xamarin.com/show_bug.cgi?id=43322

Comment 12 Brallan Jesús Aguilar Rivera 2017-02-09 03:33:39 UTC
hi, there is news about the release?

Comment 13 Timotheus Pokorra 2017-02-09 09:33:34 UTC
I have done some work on this in September 2016, but not since then.
so the current status is as described on my blog:

* I am building my own tarball at https://lbs.solidcharity.com/package/tpokorra/mono/monodevelop-tarball. It is currently probably too big, but I download all referenced packages from nuget and include them in the tarball.
* I have made some progress building MonoDevelop 6 for Fedora. At the moment, I have disabled FSharp (cannot build it with xbuild IIRC), and code analysis as well, due to missing .NET portable reference assemblies (they are trying to open source them: http://lists.dot.net/pipermail/monodevelop-list/2016-November/016519.html).

this is my current copr for MonoDevelop 6:
https://copr.fedorainfracloud.org/coprs/tpokorra/monodevelop-alpha/ 
If you have a chance to test it, please let me know if that would work for you.

Still it would be a lot of work to get this into Fedora properly, because we cannot just use packages from nuget.

Comment 14 Fedora End Of Life 2017-02-28 09:54:49 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle.
Changing version to '26'.

Comment 15 XIE Zhibang 2017-09-25 21:31:37 UTC
"Support for C/C++ was removed in MonoDevelop 6.0 since it did not work."
https://forums.xamarin.com/discussion/76210/c-c-project-templates-missing-from-xamarin-studio
https://github.com/mono/monodevelop/commit/792f48882e650ac76cde4107211e644845895d6a

And the latest stable version of MonoDevelop is 7.1.5.2.
https://github.com/mono/monodevelop/releases/tag/monodevelop-7.1.5.2
https://releases.xamarin.com/stable-release-15-3-5-with-xcode-9-support/

But the latest stable version that supports C/C++ is 5.10.3.51.
https://github.com/mono/monodevelop/releases/tag/monodevelop-5.10.3.51
https://releases.xamarin.com/stable-release-cycle-6-service-release-3/

I think Fedora should upgrade MonoDevelop to 5.10.3.51, and add 7.1.5.2
(keep two versions, monodevelop5 and monodevelop7).

Comment 16 Timotheus Pokorra 2017-09-26 07:17:37 UTC
Unfortunately, there is no tarball available for MonoDevelop 5.10.3.51.
http://download.mono-project.com/sources/monodevelop/
I have now asked upstream.

Regarding C/C++ development with MonoDevelop: are you actually using that? does it work?

Comment 17 XIE Zhibang 2017-09-26 14:32:32 UTC
https://web.archive.org/web/20160128214821/http://www.monodevelop.com/download/
MonoDevelop download page archived on 2016.01.28 shows 5.10.1.6.
Can you find it in http://download.mono-project.com/sources/monodevelop/?

Why the tarballs must in http://download.mono-project.com/sources/monodevelop/?
Who tell you?

I can not understand your strange logic.

https://github.com/mono/monodevelop/archive/monodevelop-5.10.3.51.tar.gz

https://github.com/mono/monodevelop/archive/monodevelop-7.1.5.2.tar.gz

MonoDevelop 5 supports C/C++.

But MonoDevelop 6 and MonoDevelop 7 are not.

Comment 18 XIE Zhibang 2017-09-26 14:41:56 UTC
It seems that I talked about an old story.

Okay, just talk about current.

http://www.monodevelop.com/download/

Current MonoDevelop download page shows 6.1.2.44.

Can you find it in http://download.mono-project.com/sources/monodevelop/?

But I can find it in GitHub:
https://github.com/mono/monodevelop/archive/monodevelop-6.1.2.44.tar.gz

Comment 19 Timotheus Pokorra 2017-09-26 14:54:05 UTC
The issue is that the tarball on Github is just a snapshot of the source code at that point in time.
It does not include submodules referenced through git etc.
So the tarball from Github would not be sufficient for packaging MonoDevelop.

The other issue is, starting with MonoDevelop 6, Xamarin has given up building RPM packages, and are now only delivering MonoDevelop as a Flatpak.

The additional challenge for Fedora is, that we don't just want to include binaries from upstream or Nuget, but build everything from source.
This makes it very difficult to build MonoDevelop 6 or 7, as you can see from the comments above in this bug report.

I am sort of waiting for things to move forward on the dotnet core front in Fedora, and to have msbuild available on Fedora. Then it might be possible, but still a lot of work, to build the nuget packages in Fedora.

A first step was to build MonoDevelop 6 in a copr. I did that in February 2017, but I did not get any feedback. Do you think I should build MonoDevelop 7 in that copr? Would you help with testing?

Comment 22 Timotheus Pokorra 2017-09-26 20:42:35 UTC
It is still a huge task. I don't have the time right now. Any volunteers?

Comment 23 Timotheus Pokorra 2017-09-26 20:51:52 UTC
Here is what I currently got.
I chose monodevelop 7.1.0.1291 because the flatpak on http://www.monodevelop.com/download/ has that version.


dnf install which git autoconf automake mono-devel mono-winfx
# for nuget, downloading packages
cert-sync /etc/pki/tls/certs/ca-bundle.crt

# looking at https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/fsharp
git clone https://github.com/fsharp/fsharp
cd fsharp
git checkout tags/4.1.18 -b fsharp-4.1.18
./autogen.sh --prefix=/usr
make
# make DESTDIR="$pkgdir" install
make install

# looking at https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/monodevelop
dnf install intltool gnome-sharp-devel monodoc-devel cmake libssh2-devel
# flatpak hat Version: https://github.com/mono/monodevelop/releases/tag/monodevelop-7.1.0.1291
git clone https://github.com/mono/monodevelop.git  monodevelop
cd monodevelop
git checkout tags/monodevelop-7.1.0.1291 -b monodevelop-7.1.0.1291
git submodule update --init --recursive
./configure --prefix=/usr --profile=stable 
XDG_CONFIG_HOME="`pwd`"/config LD_PRELOAD="" make

It fails with:

make[2]: msbuild: Command not found

I did try to build msbuild some time ago but did not succeed: https://github.com/tpokorra/lbs-mono-fedora/issues/22

Comment 24 Fedora End Of Life 2018-05-03 08:04:31 UTC
This message is a reminder that Fedora 26 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 26. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '26'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 26 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 25 Jan Kurik 2018-08-14 11:09:20 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 29 development cycle.
Changing version to '29'.

Comment 26 Timotheus Pokorra 2019-03-15 21:39:22 UTC
I guess after we have Mono 5 in Fedora again, we should consider if it is possible to build a recent version of MonoDevelop for Fedora again, or if we should give up and let people use the flatpak provided by Xamarin/Microsoft?
It seems Debian will not have Monodevelop in the upcoming 10th release aka Buster anymore (https://packages.debian.org/de/stretch/monodevelop).

Comment 27 Ben Cotton 2019-08-13 16:55:08 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to '31'.

Comment 28 Ben Cotton 2019-08-13 19:31:19 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 29 Ben Cotton 2020-02-11 15:49:10 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 30 Ben Cotton 2020-08-11 13:02:57 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 33 development cycle.
Changing version to 33.

Comment 31 Timotheus Pokorra 2020-08-15 04:20:11 UTC
adding FutureFeature so this bug does not get moved to next version

Comment 32 Bas Mevissen 2022-11-21 09:31:44 UTC
As development on monodevelop seems to have stopped, wouldn't it be better to remove this package from Fedora? There is not much point in keeping an old version of an abandoned project alive.

"
NOTICE
This project has not been built nor maintained since January 2020 and has been archived

If you are interested in working on the project, even when archived you can still create a fork of it.
"
Source: https://github.com/mono/monodevelop#readme