3

Until recently I always avoided the use of open-source code in my applications, because of the legal headache it gives me. I rather spent a fair amount of money and not worry about attribution (since most commercial components don't require that), than paying nothing, but spending a lot of time reading legal texts, never to be sure whether I was fully compliant.

However, there is a ton of code out there that would be a shame to ignore. Also, sometimes the open-source solutions are of better quality than their commercial counterparts.

The license I encounter most and find hardest to grasp, is the MPL. All FAQs state that it is no problem to compile the code into a closed-source application, as long as changes to the code are made available. Assuming that I will not make changes to the code, what other things are there to keep in mind? For example, copyright notices and attribution; am I required to include a bunch of files with all the different copyright notices? Should I double-size my About dialog and list all open-source components with their vendor website and so on? How do you deal with this?

Please note that I have no problem with giving authors of code the credit they deserve. I would simply like to know what is reasonable, so I can take care of it in a pragmatic way, and no longer fear at least the MPL.

Hoping for your experiences.

Update

To make my question more clear, I will use an analogy. Let's say I am going to write a book A, and I would like to use some parts of a book B that someone else has written. The author of B is fine with this, as long as I credit him (very much like a clause in the MPL). But how should I do that? Am I to put his name on the cover of mine and/or in the margin of every page where I use full paragraphs from him and/or where I use full sentences from him and/or where I use a couple of words from him and/or in a dedication section with sources? Or perhaps it would suffice to print his name in black letters on a black page, or in font size .00001? Luckily, for books there aren't as many ways to do it as with software, and there is some established practice. In the field of software, I have yet to discover any, so I'm asking here if I missed something.The point is not to give as little attribution as possible, but I'm looking for what's acceptable and fair; you wouldn't like to write a book in which each page is half-filled with attributions either...

Attribution is only one of the terms that I find hard to concretize. What about making the code and the license texts available if I changed nothing? Do I link to the authors website, or mirror it on my own and link to that, or put it in my installer? And, for example, from the Firebird Project I have most files in one place, but a couple of DLLs are spread over the folders of my application. Would you suggest just to make a single folder with license texts and list which files are relevant to each? Is that enough? Is there a better way?

A complete answers addresses all requirements of the MPL. :)

8
  • 1
    Your best bet on this would be to ask a lawyer versed in licensing law. Any answers you get here can only be considered opinions and explicitly not legal advice.
    – cdeszaq
    Commented Jan 31, 2012 at 16:05
  • 1
    @cdeszaq I find the recurrent lawyer remark a bit of a cliche. Legal advice is often more expensive than going for another component with a commercial license, but that is what I call avoiding open-source code. I explicitly ask for experiences, because I find it hard to believe that open-source code is hardly ever used in (relatively small) commercial applications without legal consultation. There must be some less rigorous best practices to it. If not, I would have to return to my earlier approach. Commented Jan 31, 2012 at 16:22
  • 3
    While I do agree that "ask a lawyer" is very much a cliche, anyone doing business and not having a lawyer look over any relevant legal documents related to the business (including licenses) is simply being irresponsible. In my opinion, the cost of having someone check over your license compliance is vastly more cost-effective than developing everything yourself. And since there are only a handful of OSS licenses used by big packages, it is essentially a 1-time cost.
    – cdeszaq
    Commented Jan 31, 2012 at 16:26
  • @cdeszaq Exactly, there are only a few, and I'm asking about a specific one. Therefore I expect that it has been checked before and some developers on this site can at least tell me what they have done to be compliant, so I'll have some sense of what to expect. From this, I might write a plan for myself and eventually have it checked by a lawyer. Commented Jan 31, 2012 at 16:31
  • Out of curiosity, have you read through the MPL or done much of a search for it? The Wikipedia article seems to lay out the important points fairly succinctly (assuming MPL means Mozilla Public License): en.wikipedia.org/wiki/Mozilla_Public_License
    – cdeszaq
    Commented Jan 31, 2012 at 16:36

2 Answers 2

4

The MPL is an open-source license designed to protect its own code. If you modify MPL code, you need to publish those modifications under the MPL. That's the focus of the license. There's no "viral" requirement to affect the licensing provisions of the rest of your code.

The idea of the attribution requirement is to make people aware of the code. So if, as you say, you're looking for the fair thing to do and not "what can I get away with?", then you should probably just put your attributions in an "about box" or analogous feature. Your best guide here is the Golden Rule: if you had written the MPL code, how would you want a developer who used it to provide attribution in their program?

0

MPL is a type of copy left license. It does two main things.

  1. Allows anyone to use, edit, and distribute the code for any purpose.
  2. Encourages programmers to move into an open source era where most code is open source and the program users are able to view, learn from, and contribute to any program they use.

When using MPL licensed code, it's your responsibility to

  1. Give attribution to the Author(s).
  2. Identify that your project has MPL licensed code.
  3. Let the end-users know where they can download the source code of the MPL licensed code. (If you edited the code then that's a link to your repository for that particular set of code. Otherwise, it can be a link to where you found the code. Optionally you can just offer your own upload of it.)

In your program, distribute a copy of the MPL.

In the about page write it like this:

This program uses MPL* licensed code Copyright (c) Authors**. The source code is available here***.

* - This is a link that opens the copy of MPL in your program files.
** - put the author(s) copyright notice(s) here
*** - Link to download the source code of the MPL code goes here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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