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.


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

  • 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 Jan 31 '12 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. – Thijs van Dien Jan 31 '12 at 16:22
  • 2
    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 Jan 31 '12 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. – Thijs van Dien Jan 31 '12 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 Jan 31 '12 at 16:36

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?

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.