Bug 1313236 - Upgrade to MonoDevelop 7.x
Upgrade to MonoDevelop 7.x
Status: ASSIGNED
Product: Fedora
Classification: Fedora
Component: monodevelop (Show other bugs)
26
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Timotheus Pokorra
Fedora Extras Quality Assurance
:
Depends On: 1360389
Blocks:
  Show dependency treegraph
 
Reported: 2016-03-01 03:47 EST by Timotheus Pokorra
Modified: 2017-09-26 16:51 EDT (History)
6 users (show)

See Also:
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: ---


Attachments (Terms of Use)

  None (edit)
Description Timotheus Pokorra 2016-03-01 03:47:31 EST
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 03:50:33 EST
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 03:52:23 EST
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 03:53:52 EST
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 14:46:00 EDT
(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 01:30:52 EDT
another added dependancy is fsharp. but perhaps we can patch that out.
Comment 6 Jan Kurik 2016-07-26 00:08:17 EDT
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 06:08:13 EDT
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 06:15:19 EDT
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 16:03:41 EDT
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 12:15:12 EDT
@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 15:58:31 EDT
let's ask Monodevelop developers: https://bugzilla.xamarin.com/show_bug.cgi?id=43322
Comment 12 Brallan Jesús Aguilar Rivera 2017-02-08 22:33:39 EST
hi, there is news about the release?
Comment 13 Timotheus Pokorra 2017-02-09 04:33:34 EST
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 04:54:49 EST
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 17:31:37 EDT
"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 03:17:37 EDT
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 10:32:32 EDT
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 10:41:56 EDT
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 10:54:05 EDT
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 16:42:35 EDT
It is still a huge task. I don't have the time right now. Any volunteers?
Comment 23 Timotheus Pokorra 2017-09-26 16:51:52 EDT
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

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