Licensing: Can I include SWFs without source in a plugin released on wordpress.org?

If you release your plugin with the SWFs embedded, they do in fact need to be released under a GPL-compatible license. This means you need to make the original source for the SWFs available, but not necessarily in the plugin itself.

You have two options:

The WordPress Way

When WordPress includes a third-party tool or library that’s compiled or minified (i.e. SWFs for uploaders or large JS libraries that are minified on the server), they also include a “dev” version as well.

If you browse the contents of /wp-includes you’ll see things like:

  • admin-bar.dev.js
  • admin-bar.js
  • etc …

So, really, you could include an /src directory in your plugin that has the raw source code of your SWF controls. This makes them immediately available to anyone who needs them and alleviates any concerns you might have regarding hosting them yourself. However, it will make your plugin download considerably larger.

Host them yourself

According to the GPL, you can distribute compiled binaries so long as they include (6b):

Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.

Essentially, if you put a ZIP file on your own server containing the source files and either link to it in your readme or respond to emails requesting a copy, you should be in the clear.

Why this matters

The entire point of the GPL is to protect the end users’ right to modify the program they’re getting from you. In the case of compiled Flash applications, this is only possible if you provide access to the original source code.

The official repository only allows GPL-compatible plugins. This means, whatever else your plugin might be, it must comply with the GPL. So you either need to distribute the source of your SWF binaries with your plugin or provide a clear way for end users to get them.

To answer your second question, you would likely be blocked from publishing the plugin on WordPress.org, or risk having your plugin pulled once someone notices you’re distributing non-GPL-compliant SWF binaries.