Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kindly reconsider the licensing for .NET Core debugging libraries #505

Open
TAGC opened this issue Feb 16, 2017 · 61 comments
Open

Kindly reconsider the licensing for .NET Core debugging libraries #505

TAGC opened this issue Feb 16, 2017 · 61 comments

Comments

@TAGC
Copy link

@TAGC TAGC commented Feb 16, 2017

I was under the impression that being as open-source as possible was one of Microsoft's chief goals with .NET Core. It's very surprising then to find that the licensing for Microsoft.VisualStudio.clrdbg - the only publicly available package that exposes the .NET Core debugging API - is so restrictive:

You may only use the .NET Core Debugger Components with Visual Studio Code, Visual Studio or Xamarin Studio software to help you develop and test your applications.

Because of this restriction, JetBrains have been forced to drop debugging support for .NET Core-based projects in the latest version of Rider EAP (EAP 17) which they released today. As a company that undertakes a great deal of innovation, I am sure that there are many people at Microsoft who are saddened by the idea of a very promising application being driven backwards due to legal/licensing reasons rather than technical issues.

The lack of debugging support for .NET Core projects in the latest version of Rider is a deal-breaker for me and I'm sure many others. I would like to know:

  • Why is such a restrictive license necessary in the first place when the rest of .NET Core is open-source?
  • Would it be possible to lift this restriction or at least consider making exceptions for certain products like Rider?
@McNerdius
Copy link

@McNerdius McNerdius commented Feb 16, 2017

Pure speculation on my part, but i wonder if the answer to this is in the name of the license itself - "MICROSOFT PRE-RELEASE SOFTWARE LICENSE"
Not wanting to fuss about with (potential) third-party compatibility issues in pre-release seems reasonable.
¢¢

@miyu
Copy link

@miyu miyu commented Feb 16, 2017

@lundcm
Copy link

@lundcm lundcm commented Feb 17, 2017

I suppose this would explain why there aren't decent plugins with other editors like Atom, Sublime, etc.

@pedershk
Copy link

@pedershk pedershk commented Feb 17, 2017

Come on, Microsoft. This is no good. You need an open community around .Net Core. Try not to become the next Java.

@Rutix
Copy link
Contributor

@Rutix Rutix commented Feb 17, 2017

This issue has also been raised here: OmniSharp/omnisharp-vscode#1059 in the past. To be honest it's quite understandable that Microsoft wants to protect the value of Visual Studio and their other tools. As far as I can see the package is an implementation of the ICorDebug interface. Microsoft invested a lot of money and energy in building advanced debugging features around this so it's kinda understandable if they don't want to open source that. There is nothing stopping other developers to implement their own implementation of the interface.

What many people seem to forget is that Microsoft is a big organization. The implementation was not made by the team which does all the open source work. It's totally fair if other teams use the open source stuff to make products which they can sell.

@tetious
Copy link

@tetious tetious commented Mar 7, 2017

I'm dissapointed but not surprised that Microsoft has completely ignored this issue. Every time I think maybe they've changed and actually intend to be open and collaborative with the community, even around touchy subjects like licensing, they do something like this which leaves a bad taste in my mouth.

I wish someone would just assign the parties fighting against those who want change to a special project and be done with it. Why do they continue to have so much power to frustrate?

Sorry for the tone, but I've just spent the last 15 minutes trying to work around not having a debugger in Rider. I love Rider and it was the deciding factor for my using .net core for a fairly large project. Now my development is crippled unless I want to switch back to Windows. This is completely opposed to the supposed "we want you to be happy using .net on any platform" marketing.

It shouldn't be this way. This should have been resolved in a day via a quick email from the Rider team to MS.

TLDR: making .net core annoying to work for outdated reasons that make no sense is not going to win hearts and minds. Please stop being frustrating!

@stefan-schweiger
Copy link

@stefan-schweiger stefan-schweiger commented Mar 7, 2017

@tetious actually the current Rider version for Windows should already have debugging enabled again, and the Mac and Linux version are soon to follow (in the comments they mentioned that they wrote their own implementation - for what I assume is a wrapper - of the debugger):

https://blog.jetbrains.com/dotnet/2017/02/23/rider-eap-18-coreclr-debugging-back-windows/

@Rutix
Copy link
Contributor

@Rutix Rutix commented Mar 7, 2017

@tetious TBH the demands you are making are kind of not making sense. The key thing in this incident is that Microsoft made it's own debugger implementation based on a public interface. That debugger is part of their commercial products like Visual Studio. Nothing stops another person/team/company to make their own debugger implementation. This is also what Rider started doing: (https://blog.jetbrains.com/dotnet/2017/02/23/rider-eap-18-coreclr-debugging-back-windows/) . You can't just give everything away for free and legally wise it's a whole process when it comes to licensing ect. If you suspect Microsoft to give the debugger away for free do you also expect Jetbrains to give all their stuff away for free? It's a flawed demand you are making.

@tetious
Copy link

@tetious tetious commented Mar 7, 2017

@stefan-schweiger Yep, that was where my "switch back to Windows" comment in my wall of text came from. :)

There are a number of (imperfect) workarounds and this will likely be a non-issue Soon(TM). My point is that this is another of the dozen papercuts that I've experienced trying to use .net core on a non-Windows platform. The next biggest was expecting RC1 to resemble the final version and not drop dnx and mono-wrapping. A tangent for sure.

@Rutix I'd argue that the debugger is part of the platform. If the platform is to be free/open, I don't think it is unreasonable to expect a command-line debugger should be included. It seems arbitrary to me to put it behind licensing restrictions that prevent other projects like Atom, Sublime, etc using it.

@Rutix
Copy link
Contributor

@Rutix Rutix commented Mar 7, 2017

@tetious except the debugger that they used wasn't made by the team which develops the OpenSource platform. So you can totally see the people who made the debugger implementation as a "third-party". You can argue that a command-line debugger not offered by the platform is a lack of feature but that can be contributed to the fact that the platform is pretty new. A lot of features are still missing.

@tetious
Copy link

@tetious tetious commented Mar 7, 2017

@Rutix Microsoft was also touting their "One Microsoft" initiative not too long ago. Wouldn't your third-party argument go against that? :)

But seriously, I do understand that .net core is new, and some features are missing. I made the decision to use it based on the features that existed at the time. I didn't expect things to go backward post rc1. (Losing dnx was even more frustrating.)

I also realize that Jetbrains is partially to blame here as they violated the license and should not have included the debugger at all. Also, I am partly to blame for relying on pre-release software. :)

I just don't like silence. Why hasn't Microsoft commented on this? Instead of frustrating the folks who use Rider, why couldn't they have made even a temporary concession so as not to be frustrating? That's my real point. I shouldn't have to follow the politics and care about this stuff. I just wanna write code.

@Rutix
Copy link
Contributor

@Rutix Rutix commented Mar 7, 2017

@tetious They have commented on this issue in OmniSharp/omnisharp-vscode#1059 . But as you can see the people commenting on that thread say that it is above their pay grade and there have been conversations. Even though Microsoft says "One Microsoft", Microsoft is so big that there are many stakeholders wanting different things.

I understand your feelings though, but to be frankly emotions almost never have an influence on the level these decisions are made. They are business decisions and people need to convince people to change their views.

@lol768
Copy link

@lol768 lol768 commented Mar 7, 2017

I agree with @tetious on this. If MS want the platform and ecosystem to be taken seriously and adopted it needs to appear homogeneous externally - regardless of any internal politics that may be in play.

If the platform is open, it's entiirely reasonable to expect that the debugger (as such a crucial development tool) comes under the platform umbrella. The lack of acknowledgement of the problem here/discussion of plans moving forward and the bureaucracy seemingly prevented this getting sorted is incredibly disappointing to see but perhaps not surprisiing from such a large company. It's especially discouraging to see JetBrains, who are putting in the effort to make an IDE comparable to -- better than -- Visual Studio which works on Linux (something Microsoft never bothered doing) and isn't a web browser in disguiise, being hurt by this.

@paulsapps
Copy link

@paulsapps paulsapps commented Apr 6, 2017

Then why can't the MS open source team write yet another debugger that is open? Not having an open debugger with an open platform is rather strange.

@0xd4d
Copy link

@0xd4d 0xd4d commented May 4, 2017

MS released MDbg a long time ago, it's open source, should be trivial to support .NET Core (on Windows). Could take a little bit more work to make it work on Linux/macOS.

@giggio
Copy link

@giggio giggio commented Feb 28, 2018

We haven't had any answer from Microsoft ever. It is time to at least address the problem, even if the answer is to say that it is what it is.

@brockallen
Copy link

@brockallen brockallen commented Feb 28, 2018

That license link on NuGet goes to a 404 page.

@hartmannr76
Copy link

@hartmannr76 hartmannr76 commented Aug 2, 2018

Is this still being talked about? Like @giggio said, I'm really just looking for an "ok" or "not happening" answer from Microsoft. It's unfortunate other IDE's will have to build their own custom debuggers to work with this instead of just building the interface from the IDE to the debugger. I understand why Microsoft wouldn't want to share that but as others have mentioned, it would be nice for a common debugger to be a part of the "open platform".

@Daniel-V1
Copy link

@Daniel-V1 Daniel-V1 commented Aug 8, 2018

Found this today after reading through this issue and searching for a debugger. Haven't used it yet, but it is open source and MIT licensed, and implements GDB/MI spec and Debug Adapter Protocol.

https://github.com/Samsung/netcoredbg

@omajid
Copy link
Member

@omajid omajid commented Aug 8, 2018

@Daniel-V1 It's being used by at least one IDE already: https://github.com/eclipse/aCute#concept

@carloreggiani
Copy link

@carloreggiani carloreggiani commented Aug 28, 2018

Dear Microsoft... or better to call you again M$???

"Error processing 'configurationDone' request. Unknown Error: 0x89720010" using vscode-oss with omnisharp-vscode extension (both rebuilded, MIT license) trying to build a dotNet core application in environment completly opensource.

Sure, dotNet Core and VS Code are Open Source project, great M$:

immagine

It seems crazy not only to me, fortunally!

(OmniSharp/omnisharp-vscode#1431 (comment))

@giggio
Copy link

@giggio giggio commented Aug 28, 2018

@carloreggiani This is not a good way to discuss the issue. If you have criticism to bring to the table, than do it, but do it respectfully. Nobody owes you anything, not Microsoft, nor the thousands of people who contributed to the several projects. They can open source, or not, whatever they choose to. Their business model is their problem, and you don't get a say in it (or me). If you don't like it, you can go ahead and build your own open source .NET Core debugging library, or ask them about a position, respectfully, as others here have done.
Yes, they should answer if they are going to open it or not (and this answer is overdue), but no, they don't have to do it. It is not crazy, it is a common business decision, and it is not up to us.

@salaros
Copy link

@salaros salaros commented Oct 12, 2018

Visual Studio for Mac owes a lot to MonoDevelop project. Making such decisions (as they did with vsdbg) is ethically incorrect, especially if lately you build your success on the shoulders of open-source community.
Basically they want to benefit from what the community offers and then add proprietary licenses on projects based on / derived from open-source solutions.

@Rutix
Copy link
Contributor

@Rutix Rutix commented Oct 12, 2018

@salaros That's a little bit shortsighted tbh. It's an undeniable fact that Microsoft gives a lot back to the community and actively participate in the community. It's ethically incorrect to expect them to share everything for free.

@ceremony
Copy link

@ceremony ceremony commented Oct 18, 2018

Plain and simple, I would have to agree with MSFT on this. There has to be -some- aspect of development that has to be justifiable on a cost/benefit business level. I'm getting a little bit tired of open-source/free everything.

When was the last time your lawyer open-sourced the case and did it for free?
Or your doctor open-sourced your checkup and did it for free?

For one thing, Visual Studio Community Edition, VS Code, SQL Server Dev. Edition, Typescript, .NET Core, Teams, etc. and a host of associated technologies are absolutely free - MSFT doesn't see a single penny up front (of course, for non-enterprise versions).

So if as developers, we expect to earn a good living based on our work and experience, then we in return have to establish value for all development work - and giving it away for free diminishes/commoditizes the role of good engineering.

@carloreggiani
Copy link

@carloreggiani carloreggiani commented Oct 18, 2018

@scherenhaenden
Copy link

@scherenhaenden scherenhaenden commented Oct 19, 2018

I would like to put my 2 Cents.

Indeed MS is not obligated to do so. BUT! they use this new Strategy of "We love Open Source" and at the very same time they do this..

They just try to make ppl see a cherry of the whole tree, to try to get em back to Windows and Visual Studio. This is not love for Open source, this is pure strategy.

@Rutix
Copy link
Contributor

@Rutix Rutix commented Oct 19, 2018

@scherenhaenden "We love Open Source" doesn't mean they have to open source everything. And I think https://opensource.microsoft.com/ is indication enough of the "We love Open Source" statement.

It works on Mac so how is this a strategy to get them back to Windows? There also also opensource implementations now (and it isn't stopping anyone of making their own implementation).

@voronoipotato
Copy link

@voronoipotato voronoipotato commented May 3, 2019

@bdonnahue jokes like that can genuinely get you into trouble, even with the :p . In some countries that can be highly illegal so you might want to edit it to be more explicitly clear that it was a joke. While I know many of us are fired up, I would hate for you to have to deal with an expensive legal process over a goof.

@bdonnahue
Copy link

@bdonnahue bdonnahue commented May 3, 2019

@voronoipotato sad but true. op updated :)

@alexrp
Copy link

@alexrp alexrp commented Jul 2, 2019

I'm the person who wrote Mono's command line debugger client. To me, it is very important for a language ecosystem to have a command line debugger, especially on non-Windows platforms where having a GUI is not a given.

I was a bit disappointed to learn recently that there's no command line debugger for .NET Core (other than LLDB with a plugin, but that's a pretty bad user experience). Still, having implemented Mono's command line debugger, I wouldn't mind doing the same for .NET Core. So I searched around for the debugger API for .NET Core and stumbled upon this issue... which is even more disappointing.

The thing is, while an open source license would be ideal, it's not even required. The library could remain closed source but at least have a license that would permit third-party use of it.

So that's the situation. There's no command line debugger, and the license of the API prevents me from implementing one, despite being willing to invest the time. That's not a good look for an 'open source' ecosystem.

@omajid
Copy link
Member

@omajid omajid commented Jul 2, 2019

@alexrp Have you seen https://github.com/Samsung/netcoredbg? It sounds like non-open source debugging library can be re-implemented itself.

(But yeah, I personaly agree that it would be much better if everything was open source.)

@FengTianShi
Copy link

@FengTianShi FengTianShi commented Jul 25, 2019

a

@vintzl
Copy link

@vintzl vintzl commented Jul 26, 2019

Why Microsoft stay silent?

@Rutix
Copy link
Contributor

@Rutix Rutix commented Jul 30, 2019

@vintzl Microsoft gave a reaction in OmniSharp/omnisharp-vscode#1431 (comment) . This item is kinda old and no one of Microsoft was tagged in this issue so I don't think any will receive notifications. Maybe @gregg-miskelly knows who can react on this issue once and for all :).

@robust
Copy link

@robust robust commented Aug 26, 2019

Hmm I must admit that I'm a bit confused so I might be wrong here. But to me it feels wrong that microsoft can impose restrictions on us with one license and give us the permissions from the MIT license at the same time. "to deal in the Software without restriction" doesn't go hand in hand with "you can only use this with our software".

Or does it mean that if we build from the source we can use it as we want?

@vintzl
Copy link

@vintzl vintzl commented Sep 4, 2019

I hate Windows 10 (a big buggy and greedy monster), but I am not a Microsoft hater… I just found Linux far from being perfect, but better than any Windows.

What really sucks is this license. If only the debugger was closed source but usable outside MS products…

Indeed, there is a gap between Vs Code and Visual Studio. And I found myself in trouble because Vs Code is not suitable for big Projects, and Monodevelop lack of the debugger…

I would even be willing to pay a Visual Studio license under Linux, but there is no such a thing… Why providing not something like SQL Server on Linux?

Sadly, .NET Core is cross platform but there is no such cross platform IDE…

@Socolin
Copy link

@Socolin Socolin commented Sep 4, 2019

I would even be willing to pay a Visual Studio license under Linux, but there is no such a thing… Why providing not something like SQL Server on Linux?

Sadly, .NET Core is cross platform but there is no such cross platform IDE…

Rider has a debugger that works on Linux too for .NET Core : https://www.jetbrains.com/rider/

@knocte
Copy link

@knocte knocte commented Sep 4, 2019

Rider is not opensource

@Rutix
Copy link
Contributor

@Rutix Rutix commented Sep 4, 2019

@knocte Nobody said it was. And closed source also works on Linux so what's your point?

@Rutix
Copy link
Contributor

@Rutix Rutix commented Sep 4, 2019

There is a debugger in Rider nowadays. They made their own AFAIK. So it is a valid alternative for Linux.

@bdonnahue
Copy link

@bdonnahue bdonnahue commented Sep 4, 2019

@Rutix isn't rider also closed source?

@Rutix
Copy link
Contributor

@Rutix Rutix commented Sep 4, 2019

@bdonnahue it is. The whole issue was made because of Rider. They rolled their own debugging implementation so why can't that be an alternative product? Or do you only use opensource products?

@vintzl
Copy link

@vintzl vintzl commented Sep 6, 2019

@Socolin I do not trust closed source software, and so, JET BRAINS.

I use Libre/Open Source Software, or only Microsoft Closed source software. Why only Microsoft? Well because I think Microsoft is too big, and not so bad, to steal our code and ideas.

Others, like Apple, could (why not JET BRAINS):

@Socolin
Copy link

@Socolin Socolin commented Sep 6, 2019

@Socolin I do not trust closed source software, and so, JET BRAINS.

I use Libre/Open Source Software, or only Microsoft Closed source software. Why only Microsoft? Well because I think Microsoft is too big, and not so bad, to steal our code and ideas.

Hum, starting new conspiracy theory about JetBrains is really not the point of this issue. Or starting an open/closed source war. We are waiting after Microsoft to tell if they want to change the license to allow other IDE to include a .NET Core debugger. JetBrains did the work on their side so there is a solution that works on Linux.

That would be great if Microsoft could answer, if it's a "no", then it would mean someone could start writing another one.

Let's be patient or maybe find who could give an answer at Microsoft to contact them directly since GitHub issue does not seem to be a good channel.

@bdonnahue
Copy link

@bdonnahue bdonnahue commented Sep 6, 2019

Conspiracy theories aside...

We want FOSS software. If there is s free alternative that has restrictions on commercial use I might as well just use java.

@salaros
Copy link

@salaros salaros commented Sep 6, 2019

@Rutix are you a Microsoft bot or you are just trying to ignore the arguments people are bringing in here?

I repeat: MonoDevelop is an open-source project with lots of contributors, Microsoft created a MonoDevelop fork, called VS for Mac.
Which benefits from ALL the contributions made by MonoDevelop's active community, it benefits from a rich addin ecosystem etc (for instance I have created one and I frequently get support requests from VS for Mac users and help them out).

BUT when it comes to giving back to MonoDevelop (by removing any restrictions on VS Code/VS for Mac .NET Core debugger) it seems like it's a huge licensing problem for Microsoft and it couldn't overcome it last few years.
We all know what's going on and why: Microsoft's "love for Linux" is just a desperate attempt to fulfill "if you can't defeat them, join them" strategy.

So please stop flooding this issue with your "Y u no use Rider" no-sense please, OK?

@kekekeks
Copy link

@kekekeks kekekeks commented Jan 7, 2020

FYI, there is AvalonStudio that is using libdbgshim.so directly. It's debugger code is heavily based on MonoDevelop's debugger-libs since libdbgshim.so provides the same API as the full .NET.

If one wants to have .NET Core debugging in MonoDevelop, it's completely possible to adapt existing support for debugging full .NET applications to debug .NET Core ones. It seems that there is no party interested enough to spend even a couple of days to do that.

@scherenhaenden
Copy link

@scherenhaenden scherenhaenden commented Jan 29, 2020

Avalon is like Consulo, somehow works... but not really.

I do appreciate their work. But somehow we all got cut off the world. VSC appears to dont provide suport for the Workspaces that exist on Monodevelop. I literally use everything with em... and there is a lot of more issues bind that that make me angry about that move from MS

@3ronco
Copy link

@3ronco 3ronco commented May 9, 2020

Not long ago i just started to develop a little faith in the change of microsoft. Then there was this telemetry thing in Visual Code, now it's the debugger not playing nicely with others. This is so disappointing.

Dear people at microsoft,
i don't care what kind of license problems you got at all. You will do well anyway but you simply can't and won't decide what editor i'm using but you may a have a big impact on wether i'm going to use .net core in the future at all.
Don't get me wrong i like what you devs (especially the OS projects) are doing but that doesn't mean that i have to like decisions like this by some 'superclever suits'.

@bachmannn
Copy link

@bachmannn bachmannn commented Feb 18, 2021

Issues like this need more love, make it open source already!

rant
Why is .net core and the rest of the ecosystem like OmniSharp, coreclr, EntityFramework, etc open source but the debugger is proprietary?

  • Jetbrains wrote their own C# debugger in a week and isn't really even a threat to Visual Studio Enterprise, they're not going to rewrite their IDE to use vsdbg.
  • VS Code (also vs code-oss) is tremendously popular and Microsoft won the "IDE wars" because they adopted open source

Why does Microsoft care if I download VS Code from Github.com/Microsoft/VSCode and compile it myself versus downloading Microsoft Binaries from visualstudio.com which supports vsdbg?

There are thousands of developers and contributors to the .NET ecosystem. Microsoft benefits from these contributions like vscode monodevelop and countless others.

Why keep the debugger proprietary when there is no logical reason except "it's always been that way"? This seems like it goes against everything the .NET Foundation and .NET open source ecosystem stands for.

@exyi
Copy link

@exyi exyi commented Oct 23, 2021

Hello, now MS has realized that they deleted the .NET hot reload by accident, maybe it would worth checking if the license to the debugger wasn't also an accident

We made a mistake in executing on this plan in the way it was carried out. In our effort to scope, we inadvertently ended up deleting the source code instead of just not invoking that code path.

in https://devblogs.microsoft.com/dotnet/net-hot-reload-support-via-cli/

I'd be interested what is the PR approved reason for this restrictive non-open license on an essential piece of .NET infrastructure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet