For those you who read my previous entry on software licensing for my itunes.php scripts and actually cared at all, you'll be glad to know that I've made a decision...

I chose the Creative Commons Attribution-NonCommercial-ShareAlike 1.0 license. This license prevents anyone who uses my code from a) doing so without mentioning me as the original author, b) making money off it without my explicit permission, and c) creating "derivative works" and distributing them under new licensing terms.

Now the term "derivative works" is a bit of a sticky wicket - I will repeat here the license's definition of the term:

"Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License.

The problem is that this is not at all clear with respect to the intricacies of code inclusion, library linking, server-side scripting, etc. The terms "based upon," "transformed," and "adapted" seem to be made intentionally vague, possibly to reflect the different kinds of "Derivative Works" one might build from a PHP script vs. a blog entry vs. a sound clip.

I contend then that a Derivative Work, in the case of the code I will be releasing under this license today, refers to any system of which this code, or some modified version thereof, is an irremovable component, e.g. a system that gets Amazon reviews for the albums you're listening to, or a form that asks you for an artist and album name and spits out the price. What it does not include is unrelated content that may, due to the nature of the web, have to be included within the same file as the code. This I would view as a Collective Work.

Since Derivative Works have to be released under the same license, you can make changes to the code to fit your environment, use it along with the content on your website, and you are obligated to release only the code that relies on my code and the modifications you've made - your own rants and unrelated scripts are safe under whatever license you've been using them with.

Now I'm no lawyer, but I believe that the things I'm saying are in accordance with the actual terms of the license I'm talking about. If something seems awry to you, please make a comment here, and I'll look into it. The code will be up a little later today...