Bug 1313236 - Upgrade to MonoDevelop 7.x
Summary: Upgrade to MonoDevelop 7.x
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: monodevelop
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Timotheus Pokorra
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Keywords:
Depends On: 1360389
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-03-01 08:47 UTC by Timotheus Pokorra
Modified: 2019-03-15 21:39 UTC (History)
6 users (show)

(edit)
Clone Of:
(edit)
Last Closed:


Attachments (Terms of Use)

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).


Note You need to log in before you can comment on or make changes to this bug.