Themes are GPL, too

If WordPress were a country, our Bill of Rights would be the GPL because it protects our core freedoms. We’ve always done our best to keep WordPress.org clean and only promote things that are completely compatible and legal with WordPress’s license. There have been some questions in the community about whether the GPL applies to themes like we’ve always assumed. To help clarify this point, I reached out to the Software Freedom Law Center, the world’s preeminent experts on the GPL, which spent time with WordPress’s code, community, and provided us with an official legal opinion. One sentence summary: PHP in WordPress themes must be GPL, artwork and CSS may be but are not required.

Matt,

You asked the Software Freedom Law Center to clarify the status of themes as derivative works of WordPress, a content management software package written in PHP and licensed under version 2 of the GNU General Public License.

We examined release candidate 1 of WordPress 2.8, which you provided to us at http://wordpress.org/wordpress-2.8-RC1.tar.gz. The “classic” and “default” themes included in that release candidate comprise various PHP and CSS files along with an optional directory of images. The PHP files contain a mix of HTML markup and PHP calls to
WordPress functions. There is some programmatic logic in the PHP code, including loops and conditionals.

When WordPress is started, it executes various routines that prepare information for use by themes. In normal use, control is then transferred via PHP’s include() function to HTML and PHP templates found in theme package files. The PHP code in those template files relies on the earlier-prepared information to fill the templates for serving to the client.

On the basis of that version of WordPress, and considering those themes as if they had been added to WordPress by a third party, it is our opinion that the themes presented, and any that are substantially similar, contain elements that are derivative works of the WordPress software as well as elements that are potentially separate works. Specifically, the CSS files and material contained in the images directory of the “default” theme are works separate from the WordPress code. On the other hand, the PHP and HTML code that is intermingled with and operated on by PHP the code derives from the WordPress code.

In the WordPress themes, CSS files and images exist purely as data to be served by a web server. WordPress itself ignores these files[1]. The CSS and image files are simply read by the server as data and delivered verbatim to the user, avoiding the WordPress instance altogether. The CSS and images could easily be used with a range of HTML documents and read and displayed by a variety of software having no relation to WordPress. As such, these files are separate works from the WordPress code itself.

The PHP elements, taken together, are clearly derivative of WordPress code. The template is loaded via the include() function. Its contents are combined with the WordPress code in memory to be processed by PHP along with (and completely indistinguishable from) the rest of WordPress. The PHP code consists largely of calls to WordPress functions and sparse, minimal logic to control which WordPress functions are accessed and how many times they will be called. They are derivative of WordPress because every part of them is determined by the content of the WordPress functions they call. As works of authorship, they are designed only to be combined with WordPress into a larger work.

HTML elements are intermingled with PHP in the two themes presented. These snippets of HTML interspersed with PHP throughout the theme PHP files together form a work whose form is highly dependent on the PHP and thus derivative of it.

In conclusion, the WordPress themes supplied contain elements that are derivative of WordPress’s copyrighted code. These themes, being collections of distinct works (images, CSS files, PHP files), need not be GPL-licensed as a whole. Rather, the PHP files are subject to the requirements of the GPL while the images and CSS are not. Third-party developers of such themes may apply restrictive copyrights to these elements if they wish.

Finally, we note that it might be possible to design a valid WordPress theme that avoids the factors that subject it to WordPress’s copyright, but such a theme would have to forgo almost all the WordPress functionality that makes the software useful.

Sincerely,
James Vasile
Software Freedom Law Center

[1] There is one exception. WordPress does reads CSS and image files to create previews of templates for the template selection portion of the administrative interface. Even in that case, though, nothing in those files calls any WordPress functions, is treated as a command by PHP, or alters any other WordPress data structure. These files are read as data and used to create an image and display a miniaturized version of a webpage to the user.

Even though graphics and CSS aren’t required to be GPL legally, the lack thereof is pretty limiting. Can you imagine WordPress without any CSS or javascript? So as before, we will only promote and host things on WordPress.org that are 100% GPL or compatible. To celebrate a few folks creating 100% GPL themes and providing support and other services around them, we have a new page listing GPL commercially supported themes.

[Free] New Cartoon/Animation Drawing Program: Create Your Own Cartoons

Fancy creating your own cartoon (animation), with or without sound? Pencil lets you create your cartoons as a Flash file, a QuickTime movie file or as a series of PNG images. For lack of a better category page to list this interesting open source program, I've provisionally added it to the Free Drawing and Painting Software page. Since it can produce Flash files, you can even exhibit your cartoons on your own website. (QuickTime movies should work too, but not everyone has the QuickTime plugin.)

Free PHP Real Estate Script with open code

Free PHP Real Estate Script with open code Infocus Real Estate Enterprise Edition, is a complete power packed script with tons of powerful features. You can now have your own Real Estate Script similar to 99acres.com, makaan.com or magicbricks.com. The script is very handy and completely customizable. Below are some of the outstanding features of this script. Key Features & Applications of the Real Estate Enterprise Portal Script: Script is designed by keeping an eye on the basic search requirements of visitors, Agents & Brokers Entry & their Details, Fully controllable by Admin. All the sites templates are easily editable to suit your requirements. 3rd Party script integrations possible. Impressive Layout to attract your customers and visitors. Payment Gateway options.

Adding Supr urls to your site

Over the last couple months I had a chance to help create a great new product for Stumbleupon. Su.pr lets create short urls, publish directly to Facebook and Twitter and gives you great tracking and statistics around them. Su.pr also helps you get more traffic by making it easy to get your content in front of the Stumbleupon community.

Last week we launched our API which lets you integrate shorten and post functionality into any site or application. Today we are adding the ability to use your own domain for shortening. This lets you have urls like http://joshuaeichorn.com/9OPL so your readers can know what domain they are going too before they click on the link.

Now down to the fun part installation.

Step 1, Sign up for Su.pr

Just go to the su.pr homepage and sign up using suprjosh for the invite code (The code is good for 500 sign ups).

Step 2, install and configure the PHP re-director

I’m not going go over this in detail since instructions are already available from su.pr.

Note: when installing the rewrite rule you’ll want to make sure its not catching any of your other pages, I put mine after all my custom rules and added a condition to check the given url wasn’t the name of a file or directory.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[a-zA-Z0-9]{4}$ supr.php?supr=$0
RewriteRule ^supr_settings.json$ supr.php?check_install=$0

If your doing your URL rewriting in PHP you might want to handle the link detection there instead, but 4 character words with no extension aren’t too common.

Step 3, Test is out

Now that you are up and running any short url created on Su.pr for your domain will be use your domain instead of su.pr for the shortening. If you ran into any problems let me know, I will see what I can do to help.

Details on how things work

  • The settings on your server tell Su.pr if it has a redirector
  • If the redirector is enable all new Su.pr urls for the matching domain are made with your domain
  • Requests go to your server and are picked up by the rewrite rule
  • The redirector on your server makes a call to the Su.pr API which returns a domain redirection url, something like http://su.pr/d/joshuaeichorn.com/abcd
  • The user is redirected back to su.pr and then forwarded to the correct page on your server

The double redirection at the end lets us collect stats and do the required setup for showing the Javascript version of the Stumbleupon toolbar.

PHP Mosaic

Package:
Summary:
Display of mosaic composed of multiple images
Groups:
Author:
Description:
This class can be used to display of mosaic composed of multiple images.

It can read a given directory to open all contained image files in JPEG format.

The class generates a single image with all read images tiled as a mosaic.

The resulting image is saved to a given file also in JPEG format.


[Free] New Icon Editor: Add a Favicon Icon to Your Website or Customize Your Desktop

Two new free tools, an icon editor and a cursor editor, have been added to the Free Resource Editors, Compilers and Icon Editors page. The icon editor, IcoFX, lets you create icons, such as the "favicon" icon that is used by websites or the icons that appear on your computer desktop. The cursor editor, AniFX, can be used to create cursors, even animated cursors, that you can integrate into your programs or substitute for existing ones to customize your computer. Check them out.

Powered by Gewgley