Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking to release an open-source iOS software project but I'm very new to the licensing side of the things. While I'm aware that the majority of answers here will not lawyers, I'd appreciate it if anyone could steer me in the right direction.

With the exception of the following requirements I'm happy for developers to largely do whatever they want with the projects source code. I'm not interested in any copyleft licensing schemes, and while I'd like to encourage attribution in derivative works it is not required.

As such, my requirements are as follows:

  • Original source can be distributed and re-distributed (verbatim) both commercially and non-commercially as long as the original copyright information, website link and license is maintained.
  • I wish to retain rights to any of the multi-media distributed as part of the project (sound effects, graphics, logo marks, etc). Such assets will be included to allow other developers to easily execute the project, but cannot be re-distributed in any manner.
  • I wish to retain rights to the applications name and branding.

Futher to selecting an applicable license, I have the following questions:

  • The project makes use of a number of third-party libraries (all licensed under variants of the MIT license). I've included individual licenses within the source (and application) and believe I've met all requirements expressed in these licenses, but is there anything else that needs to be done before distributing them as part of my open-source project?
  • Also included in my project is a single proprietary, close-sourced library that's used to power a small part of the application. I'm obviously unable to include this in the source release, but what's the best way of handling this? Should I simply weak-link the project and exclude it entirely from the Git project?
share|improve this question
Free code paired with non-free assets is not uncommon (…) so I expect that shouldn't be a problem -- you'll likely just need to license the code and assets separately. – apsillers Jun 18 '13 at 18:12
Personally I'd just run with public domain for this, unless you have a specific wish that the source (even of modified versions) must always stay open. Leaving this as a comment rather than an answer as it's quite subjective. – Le Comte du Merde-fou Jun 18 '13 at 18:24
@mh01 Public domain should be avoided for all but the most trivial of code snippets. There are many reasons (especially in this particular scenario), but I'll just give one: it doesn't provide express permission to use the code, but only implied permission; some companies will refuse to use such code on the grounds that it is not legally defensible, so if you want the widest possible use of your code, it is better to choose a permissive open-source license. – Robert Harvey Jun 18 '13 at 20:59
@mh01 The public domain is better than no license at all, but, yes, software should be licensed. From "Experienced developers won't touch unlicensed code because they have no legal right to use it." – thomasd Jun 24 '13 at 21:56
If it depends on proprietary code one could ask "why bother open sourcing it?" But if you really want to I would use the BSD license and not include the media assets with the source or include placeholder assets. To retains rights to the name, release it under a similar but different name than your application. – Craig Jun 25 '13 at 0:46

Honestly, you have a mess of licensing requirements. And by mess, I mean too many conflicting requirements.

At first glance, the GPL looks like it would fit your requirements for attribution & re-distribution of source. It also is pretty good at absorbing other licenses like MIT & BSD.

Your requirements regarding the media though will essentially require a different licensing scheme than GPL. It's at this point in your req's list that you've painted yourself into a corner without a solution.

However, you really nail things shut by relying upon a closed source, proprietary application. Generally, closed source licenses don't mesh together with the GPL.

There are some Creative Commons licenses that you could consider, but honestly, they're not going to be able to resolve your conflicting requirements either.

And I would encourage you to take a step back and ask who would actually want to pick up your project? From an outsider's point of view, this is what I see.

  1. I might be able to extract everything and compile
  2. That assumes I can find a copy of the proprietary engine that your app relies upon
  3. If I ever want to redistribute it, I have to come up with all of my own media
  4. And then I have to consider the long chain of licenses that you've released things under.

Nothing personal, but it better be one helluva application to make me want to go through those hoops.

share|improve this answer

To get the easy stuff out of the way, the best way to protect your application's name and logos is by registering those as trademarks. This is irrespective of the licence you use for the source code.

You can release your artwork and multi-media files under a different license than your source code, but there is a possibility that for that separation to be effective, you need to distribute them in different packages. This is something you definitely need to discuss with a lawyer.

Then the hard question: what license to use for your source code.
The fact that you depend on a closed-source library makes it impossible to use the GPL license, because that license explicitly requires that the GPL applies to every piece that makes up your application.
The MIT or BSD licenses might be applicable to your software, but you should expect a lot of flack. People expect that when the download the source of an open-source project, then they are able to build the project by themselves. But for your application, that would not be the case due to the dependency on the closed-source library. Additionally, the MIT and BSD licenses allow re-licensing of derived software, which seems to be contrary to your first bullet.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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