I'm not sure if this is the right place for this question since the software I'm developing isn't completely open source, but here goes.

Long story short (and for context), I'm a member of a not-for-profit organisation. I develop and maintain several pieces of software used only inside the organisation.

Most of these applications are built using Microsoft .NET and I'm not entirely sure how I license this software, or I'm even allowed to.

As an example. One of these applications is a collection of Powershell scripts that makes use of SQL Server Management Objects (Microsoft.SqlServer.Smo.dll)

How do I license my software so that my own code is open sourced (so the organisation can make changes, derivations, etc. as they need to) without requiring the source for the Microsoft DLLs be disclosed?

  • 1
    Note that a lot of .NET (everything in .NET core and then some) is open source under the MIT/expat license and hosted on github.com/Microsoft/dotnet Another lot is reimplemented in the open source Mono project. I'd have to check for the copyright status of Smo – Martijn Sep 4 '15 at 13:19
  • Smo is the only .dll I use for the moment which I'm not sure of. All the other program uses .dll's that are part of the core .NET framework, and the rest of them are from Nuget. (i.e. MahAppsMetro, FluentRibbon, etc.) – Jake Sep 4 '15 at 13:21
  • 1
    Being from nuget doesn't guarantee you much. MahAppsMetro and FluentRibbon however are both open source and permissively licensed (ms-pl and MIT/expat respectively), so that's ok. – Martijn Sep 4 '15 at 13:29

It is no big problem at all. Many open source software depends on proprietary software. Think of all the open source running on Windows.

The big point here is, that you only license your software (you cannot license the other stuff).

So you may leave out the .Net-framework from your distribution and the one using your software must install it independently. In that case it is clear your license only covers all that is in the distribution, so not the excluded framework. Or you include the framework, but make clear your license doesn't cover that part. Be it a mention (maybe in the file LICENSE you mention only the sources in src/ are licensed under license X, the stuff in lib/ isn't part of that).

A special case here is, if you choose the GPL as your license. If you're the sole contributor to the software (or all other contributors agreed) you can link against the .net-framework without implications, but if you're not, the link might prevent you from using a proprietary framework. Other licenses are fine.

Also the proprietary libraries/framework might have its licensing terms that prevent you from using it for open source. As far as I know this isn't the case for .net, especially as some open source for .net exists.

  • So what license would be appropriate if I wanted to distribute the Microsoft libraries with the software? Am I allowed to do that? Basically, this is a case of "put these files here, put that .dll there" and everything will work. – Jake Sep 4 '15 at 13:17
  • I'm not aware about the conditions under which you are allowed to redistribute .net-libraries. In many similar cases it is allowed to distribute it alongside the software using it. But if it is allowed for these dlls, then you can include it in your distribution, explain in your license-file that the OSS-license only applies to your parts and distribute all together. And which license would be appropriate? Probably any license. – Mnementh Sep 4 '15 at 13:20
  • 1
    redistributables: msdn.microsoft.com/en-us/library/ff713979(v=sql.105).aspx – Martijn Sep 4 '15 at 13:24
  • So just to make sure I understand this; In my license file I need to state that any code that I've written is licensed under whichever license I choose. But for the compiled .dll's, the license is whatever the authors have imposed? – Jake Sep 4 '15 at 13:25
  • 1
    @Jake Yes. Don't forget that you would also be subject to the terms of that license, if you include it. Do you know what license the .dlls are? – Zizouz212 Sep 4 '15 at 13:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.