What does the Adobe Flex Open Source License mean to me?

So, I was reading a story on Slashdot stating that McAfee may have to open source portions of their products due to the use of GPL licensed software. It is unknown if McAfee is actually using GPL licensed code in their closed source products or if this was just one of many annual report statements made to prevent a lawsuit down the line.

This made me take a step back to think for a bit. Adobe is about to release Flex 3 under an open source license. How could such a thing affect a company like me? If I build a Flex module that uses the Flex 3 SDK and then use it in a project for a client would I be obligated to provide the client the source code? Would selling a closed source component that extends the Flex 3 SDK be a violation of the terms? I didn't know, but I thought it would be worth some time to read the license and make sure I understand.

First off, I needed to find out what sort of license the Flex 3 SDK would be licensed under. According to Labs.adobe.com, it will be licensed under the Mozilla Public License (MPL).

Let's take a look at this section by section. I'm not going to 'tackle' each section of the document, just the ones that I think are relevant to my concern about distribution of potentially closed source software / components.

Definitions

  • strong>1.1 Contributor: This means me; someone who modifies the code or (more likely) contributes to the creation of modifications. I'm not sure if "Extensions" constitute modifications.
  • 1.3 Covered Code: this means the Flex SDK, but also covers my modifications.
  • 1.5 Executable: This will include the swf files.
  • 1.6 Initial Developer: This means Adobe
  • 1.7 Larger Works: This means code that mixes the Flex SDK with code that has a different license. I believe a custom project or a closed source component woul fall under this umbrella
  • 1.9 Modifications: This means any changes to the original code. I'm thinking that in most cases, if I build a Flex component or project, I will not be using any original Flex code in my 'new' files, but rather calling Flex SDK classes through object composition or extending it via inheritance. If that is the case, I'd say that code I write is not a modification to the original code. This gives me hope that my fears are unfounded.
  • 1.10 Original Code: This refers to an attachment (Exhibit A). We don't know what this means, but it will most likely refer to pieces of the Flex SDK that Adobe is open sourcing.
  • 1.11 Source Code: This just refers to how we distribute the code. Most likely it will be in the form of AS files, potentially as MXML files. Possibly in some archived format (such as a zip, or possibly even a swc).
  • 1.12 You: This refers to me, or the person who is making modifications.

Source Code License

  • 2.1 The Initial Developer Grant. You can use / distribute the code as is, or with modifications as part of a project; but it's not okay to then patent something in the project and force everyone to pay up. Makes sense.
  • 2.2 Contributor Grant: I'm not quite sure what this section means; but I think it means we must distribute our modifications under the same terms. This is not a problem for what I do based on the assumption that "new files that don't copy pre-existing code" are not modifications.

Distribution Obligations

  • Most of it: Most of this section talks about modifications.
  • 3.7 Larger Works: If I create a project or component that uses the covered code (AKA Flex SDK) along with other code (my own, not licensed under MPL) then I just have to make sure that the covered code (Flex SDK) is still available either in changed or unchanged state in accordance to the terms of this contract. Man, I'm not a fan of lawyers or legal documents. Sounds like a lot of double speak.

Application of this License.

No bullet points for this one. This applies to code the initial developer is distributing (not necessarily to code I create) and/or code that was licensed under the MPL included in the code I used.

TERMINATION.

  • 8.1 If you violate the terms, you right to use this license is terminated. You have 30 days to comply
  • It also talks about getting sued for patent infringement. Given the amount of patent lawsuits being thrown around, I wonder if open sourcing the code could lead to legal action against Adobe? ( But that isn't the purpose of this post)

MULTIPLE-LICENSED CODE. This seems to say that code could be licensed under X license OR the MPL based on whatever you feel like; so long as the original developer approves X License. I wonder what situations made them add this clause? It sounds confusing.

I'm not quite sure if this will apply to Flex Developers or not, since we do not know if Adobe will give us an option to use a separate license.


Well, anyway, after all is said and done I feel that you can create applications or components under any license you want as long as you create all your code from scratch. Calling upon the Flex SDK is fine, copying SDK code into your own components or applications will force you to abide by these license terms.

I am not a lawyer, and this should not constitute legal advice. My interpretation could be completely wrong.

I'll be in Norwalk CT tonight (1/15/07), and Manchester CT on Wednesday (1/16/07) if you want to come here me speak about Flex and AIR

Comments
George's Gravatar I think 'modifications' only means if you change SDK code and recompile to your own version, it wouldn't include any if you just extend them.
X License should be some licenses such as special algorithms, those already licensed by authors before, and if want to be included in SDK.
Copy code of course not allowed. But it doesn't matter if you use some best practice methods the same way as they did into Flash projects. Nothing is really from scratch.
# Posted By George | 1/15/08 11:19 AM
Matt's Gravatar I am not a lawyer either but since I am deeply involved with the licensing of the SDK I can respond a little. The bottom line is that you will absolutely be able to write your own project and distribute it under whatever license you like. If you were to take the source of the Flex SDK and modify it (where you didn't make a copy but were modifying the "original" source), the requirement is that you make the source of your modifications publicly available. We chose the MPL because we wanted folks to be able to build completely commercial projects with the SDK, but we also want to encourage the community aspect of the project.
# Posted By Matt | 1/16/08 12:21 AM
Jeffry Houser's Gravatar Matt . George,

Thanks for the thoughts; I don't think anyone is saying anything different than my translation. :-)

Sometimes people say one thing and do another, so from a business perspective I thought it was
a worthwhile exercise to read the license myself.
# Posted By Jeffry Houser | 1/17/08 11:42 AM
All Content Copyright 2005, 2006, 2007 Jeffry Houser. May not be reused without permission
BlogCFC was created by Raymond Camden. This blog is running version 5.8.