Forgot your password?
typodupeerror
Businesses GNU is Not Unix Software PHP Your Rights Online News

WordPress Creator GPL Says WP Template Must Be GPL'd 571

Posted by timothy
from the several-sticky-wickets dept.
An anonymous reader writes "Matt Mullenweg (the creator of open source blog software WordPress), after review by various legal experts, is sticking to his guns that themes and plugins that 'extend' WordPress violate the GPL if they are not themselves distributed under the GPL. Matt has gone so far as to post this on Twitter. According to Matt, the premium template called Thesis should be under the GPL and the owner is not happy about it. WordPress is willing to sue the maker of Thesis theme for not following GPL licensing. The webmasters and Thesis owners are also confused with new development. Mark Jaquith wrote an excellent technical analysis of why WordPress themes inherit the GPL. This is why even if Thesis hadn't copy-and-pasted large swathes of code from WordPress (and GPL plugins) its PHP would still need to be under the GPL."
This discussion has been archived. No new comments can be posted.

WordPress Creator GPL Says WP Template Must Be GPL'd

Comments Filter:
  • And this folks... (Score:5, Insightful)

    by DarkKnightRadick (268025) <the_spoon.geo@yahoo.com> on Thursday July 22, 2010 @03:50PM (#32994858) Homepage Journal

    ...is why I don't do any work creating anything for WordPress. CopyFree [copyfree.org] is the way to go.

  • by popo (107611) on Thursday July 22, 2010 @03:51PM (#32994866) Homepage

    Given that loads of major software companies have released plugins for WordPress, including payment gateways, social networking plugins, twitter plugins, etc ... doesn't this expose a huge amount of proprietary code to potential (and possibly unintended) open-sourcing?

  • by cgenman (325138) on Thursday July 22, 2010 @03:56PM (#32994958) Homepage

    ...is why lots of businesses won't touch open source software. It is stuff like this that gives ammunition to the FUD.

  • by MightyMartian (840721) on Thursday July 22, 2010 @03:59PM (#32995012) Journal

    What FUD? GPL is pretty clear. The developer in this case was an idiot. If you don't want to be bound by any particular license's restrictions, open source or otherwise, don't use stuff licensed using it, or at the very least don't release it publicly.

  • by Hatta (162192) on Thursday July 22, 2010 @03:59PM (#32995014) Journal

    No. It exposes a huge amount of authors of proprietary code to a copyright infringement lawsuit. How they settle this is up to them, but they can't be forced to open their code. In any case, they'll get off a lot easier than if they had misappropriated proprietary code.

  • by LordPhantom (763327) on Thursday July 22, 2010 @03:59PM (#32995018)
    ...except not all open source software is licensed with the GPL. If anything the issue is less with OSS as a concept and more with the licensing wordpress uses.
  • by Anonymous Coward on Thursday July 22, 2010 @04:02PM (#32995054)

    It's also why my company does its best to avoid anything open source. I re-invent the wheel all the time for fear of some OSS zealot snaring me with some hook.

    "You may use this library for whatever you want as long as you leave this license file handy" BZZZT, that actually means if you write an add-on for your niche that leverages the library you are evil and all your base are belong to someone else.

    It's too bad... I'm a big fan of open source and run nothing but Linux at home. The concept is amazing, but the GOTCHYA's have gotta stop if companies like the ones I've worked for are desired to utilize and contribute to OSS projects.

  • by jabberw0k (62554) on Thursday July 22, 2010 @04:18PM (#32995272) Homepage Journal
    Themes contain code that works to a certain API. If a theme contains no lines of Wordpress code, then by definition it could work with any program that used the same theme API.

    How then can Wordpress say that its licensing is required?

  • Re:I don't buy it. (Score:4, Insightful)

    by improfane (855034) * on Thursday July 22, 2010 @04:21PM (#32995314) Journal

    This is like the GPL libraries. If your project uses a GPL product, does it become GPLed too (and you want distribute it)? Yes, it does. Why you should not use the LGPL for your library [gnu.org].

    Essentially, you're using Wordpress as a library, which is GPL and not LGPL. It makes sense, it's just your (and my) perceptions of what constitute as data and code is blurred with templates. You'd think they'd be a data structure but they're actually code. It's the same in Joomla too: most templates I have read have to copy and paste lots of code from the default templates to get the same basic behaviour.

    So they use Wordpress as a library and they then "become" GPL or they're violating.

  • by 0racle (667029) on Thursday July 22, 2010 @04:23PM (#32995346)

    What part about it makes him a troll or a moron?

    The "It's infectious" part makes him a troll or a moron.

  • by wesw02 (846056) on Thursday July 22, 2010 @04:26PM (#32995360)
    His argument is that WordPress Plugin should be bound to the WordPress license because it uses hooks and attributes from their API. By that very argument Wordpress should be using the PHP License.
  • by Sloppy (14984) on Thursday July 22, 2010 @04:39PM (#32995576) Homepage Journal

    If that's why, then they're idiots. The WordPress guys are not talking about their license or even WordPress itself; they are issuing an opinion about what Congress and the court's inconveniently undefined implied definition of derived work is. Their opinion would apply just as well to proprietary software as it does to Free software. If you write a Microsoft Windows program that calls Windows and is also called by Windows in the same way that Windows calls itself, like say, an installable filesystem or a device driver or perhaps even an MSIE plugin, then these guys would say that your program is a derived work of Microsoft's product. This flavor of FUD, much like software patents, is a threat to all software, not just Free software.

    BTW, if you really want to fuck around with people who have this perverse view of what a derived work is, write a new system that is compatible with WordPress plugins. Then all WP plugins will automagically and retroactively become derived works of your program in addition to WordPress itself. License your program in a way that is incompatible with GPL and then you'll end up with a beautiful paradox. Their heads will explode, we can hose the mess away, and all will be well again.

  • Simple solution: (Score:1, Insightful)

    by Arimus (198136) on Thursday July 22, 2010 @04:43PM (#32995652)

    Take all F/OSS and 'commercial/paid for' evangelists.

    Place on deserted atol.

    Take a B52 and a nuclear bomb.

    Fly B52 over atol.

    Drop bomb.

    Rants and pointless drivel cease.

  • by Sloppy (14984) on Thursday July 22, 2010 @04:44PM (#32995656) Homepage Journal

    GPL is pretty clear.

    GPL is irrelevant. A license does not have the capacity to define what a derived work is. You've got your dependency hierarchy backwards.

    Now, I'm not saying FSF's (the GPL's author) legal opinions are irrelevant and can lightly be blown off, however wrong they happen to be. ;-) And I applaud their efforts to try to change public opinion by attempting to write a license that redefines the law which causes people to become bound by that license. Bootstrapping attempts can be wonderful works of art. But it's an illusion.

  • by Peach Rings (1782482) on Thursday July 22, 2010 @04:44PM (#32995666) Homepage

    How is dropping a text file in the same folder as wordpress creating something that is "part of WP"? This is exactly the kind of restrictive insanity that free software licenses were supposed to eliminate.

  • by grumbel (592662) <grumbel@gmx.de> on Thursday July 22, 2010 @04:53PM (#32995820) Homepage

    In piracy articles, other people's work is free to trade. In GPL articles, other people's work suddenly should be protected.

    There is no conflict, both are done to maximize the users freedom.

    In reality, without copyright, the GPL would have no power, because it's a copyright license!

    And that would be quite fine, as it would allows the reuse and recycling of other peoples work. It would however get a little messy, as reverse engineering and decompilation might often be needed. In practice however most people don't argue the abandonment of all copyright anyway, just a drastic shortening of it and extended fair use.

  • by Chris Burke (6130) on Thursday July 22, 2010 @04:54PM (#32995846) Homepage

    Well, what is a derivative work? Guess what? The GPL itself doesn't define that term.

    Of course it doesn't, since that term is defined by the legal code regarding copyright in your jurisdiction. Because the GPL is not anything else but a copyright license, it cannot apply to anything which is not a derivative work by the definition of the relevant legal code, because anything not a derivative work is not restricted by copyright law. So if the GPL did give a definition it would be irrelevant, and if it happened to differ from the legal definition at your current location in space-time, it would be wrong. How's an irrelevant and wrong definition going to reduce confusion, exactly?

    But then you go and look at the legal code and see that, what do you know, the real definition of derivative work is vague. This is an issue that applies to all of copyright, and sparks many debates (and lawsuits), and has nothing specifically to do with the GPL. The lack of a clear definition is not something the GPL can fix.

    It's trivially easy to comply with, but it's VERY hard to make a clear determination if the restrictions extend to you or not. So most people "just take the easy way out" and license GPL.

    It's a fair point, that people license their own code GPL just because it's the only way to be sure they aren't violating the GPL of some other code they are using.

    However the same issue of confusion applies in any situation where it matters whether you're creating a derivative work or not. With proprietary software, that means people "take the easy way out" and avoid doing anything with the software that could possibly be derivative. The only time the issue doesn't matter is when the license is so liberal it doesn't matter if your work is derivative or not because you can just repackage it with whatever license you want anyway.

    And while BSD-style licenses are great for those who want to give away code, I don't think it's worth abandoning the advantages of Copyleft just to avoid the stick issue of what exactly constitutes a derivative work.

  • by Anonymous Coward on Thursday July 22, 2010 @04:55PM (#32995864)

    Copyright law defines a derived work. Why does the GPL have to?

    "And this is why I hate the GPL."

    And this is why you want the GPL to do so. So you can disobey copyright law.

    "It promotes the "If you want to comply, you can do no wrong by licensing GPL" attitude."

    And this is wrong how?

    "but it's VERY hard to make a clear determination if the restrictions extend to you or not."

    Blame copyright law then when it comes to software and what defines a derived work under copyright. That's defined by law (as is what determines a copyrightable product).

    "So most people "just take the easy way out" and license GPL. Not out of belief, not out of fear, not out of requirement, but out of confusion and misunderstanding..."

    Most people use MS Windows because it's the "easy way out". Not out of belief, not out of utility, not out of requirement, but out of confusion and misunderstanding...

    I don't hear complaining from you there.

  • by amorsen (7485) <benny+slashdot@amorsen.dk> on Thursday July 22, 2010 @04:57PM (#32995892)

    Then all WP plugins will automagically and retroactively become derived works of your program in addition to WordPress itself.

    That isn't how copyright law works. Copyright cares about the history of how the particular bits came into existence.

  • by NNKK (218503) <nknight@runawaynet.com> on Thursday July 22, 2010 @05:00PM (#32995950) Homepage

    you could say the same thing about software that calls functions in a GPL library, does software that dynamically links against a GPL library have to be GPL? Its calling functions in defined in GPL code.

    Yes. Please read up on dynamic linking and the GPL and LGPL. The questions your asking have been asked, answered, and discussed by many people every day for the past twenty years. Try Google, it's very useful.

  • by locallyunscene (1000523) on Thursday July 22, 2010 @06:07PM (#32996890)
    Can you suggest a Google search for such cases because I haven't heard of them. Well, I had thought this was THE case, but after reading more about it I think WP is right and people claiming that GPL APIs are somehow tainted are misinformed. I would read WP's argument above. At first I was skeptical, but he makes a pretty clear distinction between a derivative work and an external work that uses APIs.

    On APIs

    WordPress has many external APIs that spit out data. Interacting with these APIs does not put your code on the same level as core WordPress code. These APIs include Atom, RSS, AtomPub, and XML-RPC. Something that interacts with these APIs sits entirely outside of WordPress. Google Reader doesn’t become part of WordPress by accessing your feed, and MarsEdit doesn’t become part of WordPress when you use it to publish a post on your WordPress blog. These are separate applications, running separately, on separate codebases. All they are doing is communicating. Applications that interact with WordPress this way are separate works, and the author can license them in any way they have authority to do so.

    This is a wholly different model of interaction than with themes. Themes are not standalone applications. They are scripts that become part of WordPress itself, and interact with WordPress on the same level that WordPress interacts with itself.

    For the sake of argument let's pretend WP was a commercial product. Do you think you'd be able to create a theme for it and release it and sell it and not have it be considered a derivative work?

  • by Anonymous Coward on Thursday July 22, 2010 @06:28PM (#32997138)

    A Wordpress theme is NOT just adding something to Wordpress.

    Wordpress REQUIRES a theme to run, and you are modifying (replacing) that theme with another, so Wordpress now REQUIRES your theme to run (until you replace with something else).

    This is further clarified by the fact that basically all WP themes (including the one being discussed) have major copy-paste action going on from the distributed theme. Because it is SO intertwined with WP, it is really the only practical way to write a new theme.

    I'm not saying I LIKE this idea, just that this is how it is.

    I prefer BSD licence, truely free open source.

  • by tomhudson (43916) <barbara DOT huds ... a-hudson DOT com> on Thursday July 22, 2010 @06:52PM (#32997416) Journal

    PHP is an interpreted language - "dropping a text file in the same folder" is actually adding code - creating a derivative work.

    Absolutely not - otherwise, dropping a css file into a folder would also be creating a derivative work.

    One of the problems is that the developers are taking the position that "because they don't work in separate processes, they're one program." This is absolutely false. Back in the single-process DOS (and pre-DOS) days, all programs "worked in the same process space", yet they were still copyrighted. Clearest case in point is a TSR (Terminate and Stay Resident - for you young'uns).

    The argument that calling the APIs is not sufficient isolation is totally bogus. Calling an API does not make your code part of that code, any more than calling, say, the Windows API means that your program suddenly is merged with Windows and licensed by Microsoft.

    When the guy argues in response to this question [wordpress.com]

    So the Plugins API is actually not an API?
    Why is it called Plugins API then?

    Strictly speaking, no, it isn't an API. It's how WordPress itself is written! "X API" in this sense loosely means "WordPress core functions for purpose X."

    It is not "an interface implemented by a software program which enables it to interact with other software." It's just functions. The use of API in this case is technically incorrect, but it's become common parlance, at least in the WordPress community. The incorrect label doesn't change my view of how plugins, themes and WordPress core form a single application, as explained above.

    I'll give those links a read.

    That's just idiotic. Even a c API is "just functions".

    This whole thing is dumb.

    Is the php code linked in, in any way, even at runtime? No. They both get run by a separate process, the php interpreter.

    I'm in favour of the GPL, but this is beyond stupid.

  • by yakovlev (210738) on Thursday July 22, 2010 @09:22PM (#32998750) Homepage
    This is why (particularly for things like interpreted languages, but even for things like the Linux kernel) the correct thing to do is to label various interfaces as internal or external. Internal interfaces are those that, if called, make your work a derivative work. External interfaces are those that are considered "using" your work, and thus do not create a derivative work.

    As a rule, internal interfaces are specific to HOW your implementation works, whereas external interfaces are more general to WHAT your software does. As such, internal interfaces are more subject to change. There are of course exceptions.

    This kind of distinction is particularly important for applications that offer a plug-in or theming API.

    Some cases are cut-and-dry:
    If you modify GPL source code, your modification becomes GPL.
    Most GPL libraries are pretty explicit that EVERYTHING is an internal interface and referencing it make a derivative work. Data is the only thing that doesn't.
    For LGPL libraries, linking and calling pretty much any function exported by the original work fails to create a LGPL derivative work.

    Other cases are tougher:
    A plug-in may operate in the same process space as the main application, but may be considered a separate work if it only calls documented plug-in APIs.
    Certain Linux kernel drivers are considered okay (graphics drivers) but others are considered too tightly tied to the original work.

    Consider this: If a minor modification to the function call implementation (think remote function call) causes the answer on whether or not it's a derivative work to change, then the line wasn't clearly drawn.

    This smells like one of those cases. If PHP scripts were called in a different process space, that would seem to change the result of the analysis, which means we're definitely in dangerous territory.

    Without really understanding all the details, it sounds like the developers have made what was generally treated as a public API into an internal one. If it was clearly (READ: In the API documentation) stated as being an internal API that creates a derivative work, then you're okay. If, after the fact, you're saying "no, that API that we treated as public/external really wasn't" then you're in hot water. If this goes to court, you better believe that the documentation and the early mailing list/forum posts by the primary developers will be presented as evidence. If it looks like they EVER implied that you were free to use those without creating a derivative work, then the argument for NOT derivative has a pretty strong case.

    NOTE: As was conceded in the comments of the analysis, simply running in the same PHP process without calling WordPress (WP) code isn't enough to create a derivative work. Also conceded in the main article was that using the WP RSS APIs (presumably outside PHP) also do not create a derivative work. In that sense, it seems pretty clear that he considers the RSS APIs to be external while the theming APIs are internal.

    The question becomes: Was this ALWAYS clear? If not, you can't go changing the rules just because you don't like what somebody is doing with your work. If it was just ambiguous, then it's a toss up as to who wins. If you were lenient earlier and are now trying to tighten your grip saying that they were wrong all along then you are likely to lose, at least with a jury.

    Consider, for comparison, a GPL C library, where there's pretty good agreement on what the rules are. The C library is released as an incomplete "part of a program" where a program that derives from that part must become GPL. It's generally fair game to make that a simple but useful program (think cat/grep) and release to code for that. Then that GPL program can be called by a more complicated program that then does not become GPL. It gets ambiguous but generally not allowed when you make a program that basically exposes the internal APIs without doing anything useful beyond exposing those APIs, and then write a separate non-G
  • by Anonymous Coward on Thursday July 22, 2010 @09:32PM (#32998794)

    By that very argument Wordpress should be using the PHP License.

    You're wrong. Wordpress don't need to use the PHP license but they must comply with it.

    PHP licensing is BSD which allows any kind of proprietary or GPL software without any (significant) obligations.

    Similarly PHP must comply with Apache, and Apache must comply with the operating system licenses. That's how copyright works.

  • by tomhudson (43916) <barbara DOT huds ... a-hudson DOT com> on Friday July 23, 2010 @12:43AM (#32999792) Journal

    Interpreting scripts has nothing to do with linking. This is a major fail in understanding by the original author, and it's obvious from reading the debate that, like most web monkeys, he's not had extensive experience with real programming languages, where you have a compile and LINK.

    Scripts do not "link" to each other at any time. To link has a very specific meaning. It binds a jump instruction to an address. Interpreters don't do that, because the php scripts are not object code.

    In fact, if you have two php scripts that are mutually dependent, neither one actually calls the other - the interpreter is sitting there in the middle. IT doesn't call either script, since there's no object code to "call". Instead, it reads the script, interprets it, and runs it's own internal code based on the parameters in the script. For example, when it sees a printf() command it doesn't run the printf code in the script - there is none. Instead, it reads the parameters, then run's it's own internal copy of printf.

    Same thing with include(). The main file never actually "includes" the other file - instead, the interpreter sees the request, looks for the parameter, then executes a whole sequence of events - loading the file and interpreting it.. At no point does the first file now "include" any code from the second file. It is totally unchanged, both on disk and, more importantly, in memory.

    Simply put, scripts that interact via an interpreter with other scripts can have their own separate license. There is no "viralness" in an interpreted world, since there is no linking, and no "incorporating" one script into another unless they are physically appended on the disk before being loaded into the interpreter. You can distribute a php script you wrote that interacts with a GPL script, and you're free to attach any conditions you want to your script - or none.

  • by harlows_monkeys (106428) on Friday July 23, 2010 @02:59AM (#33000270) Homepage

    His analysis is all about how the code works when someone takes a theme and loads it in WordPress. While accurate on the technical details, it completely misses the point. When someone runs a theme in WordPress, they have caused a derivative work of WordPress to be created. They've also caused a derivative work of the theme to be created. No one seriously questions this. However, the license of WordPress allows this, so there's no problem here.

    The important question is whether or not a WordPress theme, AS DISTRIBUTED BY ITS AUTHOR, is a derivative work, and he fails to address this. The answer to that depends on whether or not the theme has incorporated (by copying, transforming, adapting, etc) any copyrightable elements of WordPress.

    The particular theme in question did include such elements, and so has a problem. However, in general, you do not appear to have to include any copyrightable Wordpress elements in a theme, and so a theme does not inherently have to be GPL.

    The majority of court cases that are relevant to this agree that writing code X to interface to code Y does NOT automatically make X a derivative work of Y. The FSF thinks that merely designing code to link with another piece of code makes the first a derivative work of the other, but there's no court cases that support that view, and better lawyers (such as Larry Rosen) than the FSF uses say that it doesn't automatically make a derivative work.

  • Re:Marketing (Score:3, Insightful)

    by silentcoder (1241496) on Friday July 23, 2010 @07:39AM (#33001444) Homepage

    >I like open source but the GPL is sounding more and more dangerous.
    when even it's advocates can't seem to agree on what exactly it covers I'd be worried.

    That's just not true. It's advocates are all in unison here that it covers works like this. It's on idiot in Florida who dissagrees and he is hardly an "advocate".

No amount of careful planning will ever replace dumb luck.

Working...