views:

123

answers:

6

I'm about to release a CMS written in PHP (using Zend Framework). It's very powerful and easy to manage once you understand it.

I was wondering to release it some under commercial license (I want money) but I realized that there's a saturation of CMS's on market.

So I think I'm going to release it under some open-source license. I know I have to choose the license but the question is: once the license is choosen what do I need to do to release it? To turn it official, so one cannot just "steal" it's code and say that created it.

I read on a website that I just need to create a file called "license" and write the license there but what about the security? I know the code cannot be compiled or obfuscated so what do I do to "turn official" that I created it?

Thank you for attention.

+5  A: 

Licenses don't actually prevent someone from viewing/taking code - they just give you grounds to take legal measures against someone if they violate the terms of the license.

A license is official from the moment you specify that it's the license that applies to the code. The most common way of doing this is including a text file with the license as part of the download (and many of the common open-source licenses specifically refer to including the license with the code if any copies are made), but it's also just as valid if you specify a license on your website or such.

Amber
A: 

This is really a legal question, and while Stack Overflow is good for programming questions, it's not really meant to give you legal advice. You should ask a lawyer.

That said, I am not a lawyer, but in the United States I've heard that you should submit your creation to the US Copyright Office. The real purpose of that is so that if you get sued (or want to sue someone) you can produce something that "proves" it's your creation. Under the Berne Convention your work is copyrighted the moment you create it, but the US courts still like to see some proof.

But again, this is pretty much only useful if someone takes you to court, or if you want to take someone to court. As a practical matter that may not even come up.

Advice for other countries may vary.

asveikau
It should be noted (I am not a lawyer, either) that specifically copyrighting code is likely a bad idea, as simply making minor changes to the code (even code styling/formatting) can invalidate the copyright and represent a derivative work. Consult the license that you choose to determine the proper means of registering the work, if it is recommended.
mattbasta
@mattbasta: And I'm not a lawyer either, but your claim is (AFAIK) false. The original author still has rights to a derived work, and can even legally prevent a derived work from being published. Otherwise, there'd be a hundred knockoffs of *Gone With The Wind* in which (for example) Rhett's name has changed to Fred, and Scarlett's to Charlotte. (Google for "The Wind Done Gone" for a far broader claim on a "derivative" work that apparently had at least *some* credibility.)
Dan Breslau
@Dan Technically speaking, the function of code is not what copyright covers, that's left to patents (another story entirely). If an author changes the code just enough that it can be considered a unique piece of software, it is no longer the property of the original owner. The courts have ruled that derivative works created through reverse engineering are legal, and I'd imagine that this would stand even if the creator was in possession of the original creator's source. Consider the work "Wizard People, Dear Reader".
mattbasta
@mattbasta, if you change the code format or style, you are *not* changing the functionality (well, unless the code is in Python ;-) And reverse engineering, by definition, means not having access to the source code.I would urge you or anyone else to consult a lawyer and listen *very carefully* to his or her advice before proceeding on the theories you're suggesting.
Dan Breslau
+2  A: 

There is no way to "officiate" an open source project. If your license states that the user is allowed to redistribute or modify code, then they are free to do so. The idea behind open source is that the source code is visible to anyone who wishes to see it. Compiled or obfuscated code (without the original source) is not open source, it is simply proprietary code with exposed endpoints.

Consider which license you wish to implement; a good starting point is to look at other open source projects which have licenses that you can appreciate. For instance, Mozilla Firefox is licensed under the tri-license. Apache code is released under the Apache license. There are plenty of decent licenses that are available to choose from, and most of them have "Boilerplate" code which you place at the top of each file (stating that the file is under a given license).

While there is no open source means of enforcing a license, you can police the community and industry to ensure that your license's terms are not being violated. Should someone violate the terms of your license, you have the option to send a cease and desist notice or bring about legal action.

Hope this helps.

mattbasta
Compiled code is not "proprietary" by definition - the word "proprietary" pertains to the licence, compiled code can be released with an open-source licence (and with source linked or accompanying). Also Firefox is released under three licences, "tri-licence" is not the name of either. Sorry I don't mean to be a pedant, just trying to be informative.
lucideer
@lucideer I actually work for Mozilla, a lot of times, the three licenses are called the "tri-license" internally. My bad for the jargon. As far as open source goes, though, if the source code to the compiled code isn't available, then (by definition) the code is not open source. Kind of an over-generalization on my part.
mattbasta
Ha ha, ok. It just seemed odd to me reading "compiled is not open source" (originally) and then seeing you cited Firefox. :P
lucideer
A: 

Take a look at how ExpressionEngine does it. They're a PHP based commercial CMS.

philfreo
ExpressionEngine is not released under an open source licence (as the OP seems to want to do). CodeIgniter (the PHP framework EE is built upon) is FOSS, but EE is proprietary.
lucideer
How do ExpressionEngine takes care about security? how do they prevent other from buying just 1 license and use it on lots of websites?
Rafael
Short answer is they don't. You can only download updates if you have (at least one) license purchased within the last year. Seems like they go mostly off the idea that if you're willing to pay for one, you're not highly likely to illegally use it for other sites. Most of the time it's developers passing the cost onto their clients anyway.
philfreo
A: 

I was wondering to release it some under commercial license (I want money) but I realized that there's a saturation of CMS's on market.

So I think I'm going to release it under some open-source license.

You seem to be talking about "commercial" and "open-source" as if they're opposites. You do know there's such thing as "commercial open-source"?

what do I need to do to release it? To turn it official, so one cannot just "steal" it's code and say that created it.

Someone can ALWAYS steal your code if you release it (even if it's compiled they can theoretically reverse-engineer it - though it may not be practically feasible) - a licence just gives you the right to take legal action if someone does.

I read on a website that I just need to create a file called "license" and write the license there but what about the security?

The licence gives you legal security.

lucideer
A: 

For "turning official" you might consider an established project hoster, like Sourceforge or Google Code, github. Once your code is in SVN or another VCS repository, there's a timestamp associated with it. If you use one of the trusted big hosting services, this pretty much establishes proof of your authorship best.

As for the license: use the GNU GPL if you don't want code reuse. Use the LGPL if you want to permit and encourage it. Use the AGPL if you want contributions back. Or use MIT or BSD-style licenses if you want attribution and to spread quality code instead.
But as you already mentioned, there is an abundance of WebCMSes. So it won't make much of a difference anyway.

mario
GPL does not forbid code reuse
knittl