Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
GNU is Not Unix Open Source

When GPL Becomes Almost-GPL — the CSS, Images and JavaScript Loophole 224

New submitter sobolwolf writes "It has been apparent for some time that many developers (mainly theme designers) are split-licensing PHP-based GPL distributions, releasing proprietary files alongside GPL files with the excuse that CSS, JavaScript and Images are 'immunized' from the GPL because they run in the browser and not on the server. This is almost always done to limit the distribution of the entire release, not just the proprietary items (most extensions will not function in any meaningful way without the accompanying CSS, Images and JavaScript). Some of the more popular PHP-based GPL projects, like WordPress, have gone as far as to apply sanctions to developers distributing split-licensed themes/plugins. Others, such as Joomla, have openly embraced the split-licensed model, even changing their extension directory submission rules to cater specifically to split-licensed distributions. In light of all this, I would like to ask the following question: While it seems to be legal to offer split-licensed GPL distributions, is it in the spirit of the GPL for a project such as Joomla (whose governing body has the motto 'Open Source Matters') to openly embrace such a practice when they can easily require that all CSS, Images and JavaScript be GPL (or GPL-compatible) for extensions that are listed on the Joomla Extensions Directory?"
This discussion has been archived. No new comments can be posted.

When GPL Becomes Almost-GPL — the CSS, Images and JavaScript Loophole

Comments Filter:
  • Yes (Score:3, Insightful)

    by Desler ( 1608317 ) on Wednesday June 26, 2013 @05:34PM (#44117827)

    is it in the spirit of the GPL for a project such as Joomla (whose governing body has the motto 'Open Source Matters') to openly embrace such a practice when they can easily require that all CSS, Images and JavaScript be GPL (or GPL-compatible) for extensions that are listed on the Joomla Extensions Directory?"

    Yes, it is perfectly within the spirit of the GPL to add exemptions to the license terms. Plenty of GPL projects, even those from the GNU project, have exemptions to the GPL terms such as linking in GPLed libraries, etc. Stop being such a freetard.

    • Re:Yes (Score:5, Insightful)

      by Archangel Michael ( 180766 ) on Wednesday June 26, 2013 @06:15PM (#44118109) Journal

      Realistically, I'm not sure how this is even a problem since one could create a CSS, JavaScript, and Images of their own, and have a working version. In the two cases above, Wordpress and Joomla, you can have fully working versions of these without adding in custom CSS, JavaScript or Images. These named types do not change the functionality, they are SKINS for the actual program. I'm not sure how OS advocates can claim GPL flows down to skins, being unlinked items not required for functionality of the core software.

    • Joomla is acting like the library component here, because the extensions are using its APIs. If Joomla added an exception that said "you can use the Joomla API under conditions X in non-GPL programs", yes that would be similar to things like the OpenSSL exception [gnome.org]. But if the Joomla is GPL and is serious about advocating that license for their own ecosystem, they shouldn't do that without a seriously good reason. One-off licenses with exceptions create legal headaches that make them less useful than ones

  • Data vs code (Score:4, Insightful)

    by magic maverick ( 2615475 ) on Wednesday June 26, 2013 @05:43PM (#44117885) Homepage Journal

    The GPL has never been about data (e.g. the Doom WAD files), but just about the code.
    The fact that so many themes and what not are violating the principles of separation of content and presentation and interaction (HTML, CSS, and JS) is a problem. But, if they weren't doing it, then it wouldn't matter if the JS and CSS were Free or not. Because the content would be usable without the crap.
    Personally, I just say, don't use themes that aren't all Free. Solves the issue for me.

    • Is it immoral - in the GPL ideology - (or not in the 'spirit' of the GPL) to have non-free works of art (images, audio, video, etc...)? I mean I know the business model pushed by GPL advocates is around paying for support, improvements and documentation but such things don't really apply to works of art like that or even to software products like games.
      • Stallman doesn't generally see non-free art as inherently immoral, as art is usually not functinoal. He does, however, think their copyright lasts too long. So, he probably wouldn't have a problem with the non-free artwork, but he would have a problem with the non-free Javascript (I believe he even considered obfuscation to be non-free). I'm not entirely sure on the CSS, but I would lean towards him not approving, especially if more advances CSS3 features are used.
  • by multiben ( 1916126 ) on Wednesday June 26, 2013 @05:55PM (#44117971)
    Whether or not it's legal is a different matter, but the spirit of the GPL is clearly the proliferation of open source software. Split licence variations have always been very much a compromise on the ideals of the GPL. The line gets muddier when GPL'd software relies on third party extensions to operate effectively. However, at the end of the day, if you're a developer and you don't like the idea of split licence models, then don't develop code for them. There are thousands of other projects out there which are pure GPL.
    • by Desler ( 1608317 )

      Whether or not it's legal is a different matter, but the spirit of the GPL is clearly the proliferation of open source software.

      And the source code is still being proliferated as GPL. Just not the art assets. So taking your logic, according to you id Software is violating the spirit of the GPL by not GPLing their WAD files for Doom, correct?

      • by Ost99 ( 101831 )

        Categorizing javascript as art might get earn you a new shirt and a nice padded room without a view.

        It all depends on whether the javascript (or CSS) is a derivative work of the platform code or not.

    • The artwork is not part of the code base and only interacts with the code base in the most technical of ways.

      The javascript is arguably supposed to be included, but that would be dangerous as it would mean that you couldn't link against GPL libraries without turning that code into GPL code, regardless of whether or not you're changing the GPL code.

      Which is probably not what most people really want.

      • by devman ( 1163205 )
        You can't link against GPL libraries unless your code GPL. You can, however, link against LGPL libraries and not be GPL or LGPL. Allowing non-GPL software to link is the entire reason LGPL exists and why libraries like glibc use LGPL.
    • I don't think you understand. "don't develop code for them" is not possible when your product is a website, which uses separate files for script, images, and styling. It is not embedded, and the images can be replaced with ones that have the same name, and possibly dimensions, without changing one bit of your code.

      The scripts can be replaced with others of the same name. Unless you are using inline styles, your CSS can be replaced, all without violating any copyright.

      Just download this package, unzip it

    • its more the fear of the GPL, where you use something like a css file and suddenly all your website has to be licenced under the GPL too because of the GPL requirements in the CSS files' licence.

      This is usually the reason things are dual-licenced, to try and clear up the kind ofd confusion ordinary people have with using GPL software.

      Personally, I think it might be time to change things a little to keep with the spirit of GPL without affecting your right to make your own software and release it (or not) as

  • HTML is a container (Score:5, Informative)

    by Anonymous Coward on Wednesday June 26, 2013 @06:10PM (#44118067)

    I have asked FSF about this specific issue.

    They basically consider HTML as a container, like a ZIP archive. So, the "bundling" that occurs when HTML is combined and rendered to the browser is not considered a derivative work in the eyes of FSF, just like if you bundle GPL files with non-GPL files in a ZIP file, the contents of the ZIP do not all fall under the GPL.

    This means that when things are combined in to an HTML file, even if parts of the HTML file are GPL, the entire resulting document, is not GPL.

    I find this view inconsistent, and disagree with it, but it's their license, so who am I to judge. Mind, if my view were followed, then things would be quite different on the web. So, their view is probably the "correct", and most certainly "pragmatic" view. I just think it's inconsistent.

    Now, how that applies to externally loaded files (like JS and CSS) is not clear to me, but I assume the same rules apply. In a normal program, were you to link them together, the entire finished product would be GPL. But not under the auspices of the browser environment, apparently.

    I think if the "HTML is a container" view is the correct stance, then the included files would also be immune to the GPL for the same reasons.

    • by Ost99 ( 101831 )

      AFAIK the GPL only applies to linking. The JS and the server software are not combined to form one program in any sensible definition of linking.

      BUT if the non-free javascript / css itself is a derivative of the javascript or css it replaces, it becomes GPL.

      • AFAIK the GPL only applies to linking. The JS and the server software are not combined to form one program in any sensible definition of linking.

        It applies to derivative works, in the true legal sense of the term "derivative work."

        The FSF has suggested that programs aren't a derivative work if they aren't linked together (like, a kernel and userland, for example), but that is not a legal certainty. The idea of 'derivative work' is still not clearly defined by congress, and court cases may end up determining whether javascript and server software are a single program.

        • by julesh ( 229690 )

          It applies to derivative works, in the true legal sense of the term "derivative work."

          It *also* applies to anything that is combined with GPL code to form "a larger program". This could be interpreted as anything linked (and in GPLv2 this was explicit; GPLv3 is [presumably intentionally] more ambiguous, e.g. to cover interpreted or run-time linked programs).

    • Re: (Score:2, Insightful)

      by Anonymous Coward

      The GPL does not cover program output (except under very special circumstances).

      So the PHP script may be GPL, but the HTML document it spits out is YOUR data and is not automagically "GPLed". There's no direct link between the PHP script and any CSS or images. So the FSF is absolutely correct that there's no "linking" (in the derived works sense).

      Likewise, AJAX scripts generally communicate through inert data passed over a defined API -- this is the classic situation where the GPL does not cross program bou

    • I see your point, as you design HTML (or whatever generates the HTML server side), images, and scripts as one whole product. The page works consistently, and if something needs fixed, it could be in the page, or css, or image, or script. It is a whole as a product, as a creation, as a science or useful art.

      What happens is this - a user grabs your free distribution, and bundles a zip file you can unzip and overwrite the original files with a new theme. As you said, bundling files in one zip does not make

    • They basically consider HTML as a container, like a ZIP archive. So, the "bundling" that occurs when HTML is combined and rendered to the browser is not considered a derivative work in the eyes of FSF, just like if you bundle GPL files with non-GPL files in a ZIP file, the contents of the ZIP do not all fall under the GPL.

      The thing is, the FSF has absolutely zero say in what is and is not a derivative work, unless that definition is enshrined in the license that people use.

      Barring that, the only definitions that matter are those of the lawyer sending you the cease and desist, or the judge presiding over the case after you give said lawyer the finger. Unless the law considers HTML as a container, you can still be screwed over.

      This is why the GPL is dangerous - it's complex, it's complexities create ambiguities, and the interp

    • The view is not inconsistent; the output of software programs is plainly not copyrightable (that is, there is no new copyrightable work being produced, only the component works that may go into it, which retain their respective licenses).

  • by i.r.id10t ( 595143 ) on Wednesday June 26, 2013 @06:15PM (#44118111)

    So.... is RedHat Linux non-Free since you can't redistribute their proprietary images/icons/wallpapers/etc ? After all, isn't CentOS the same code base, compiled the same way, with the same configurations, etc. but without RedHat's logos, etc?

    • That's an interesting point. Section 5(c) of the GPL copyright license seems to give you COPYRIGHT rights to distribute the art under GPL:

      c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy.
      This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged.

      However, accordin
      • These trademark issues aren't even specific to RedHat or CentOS. Debian even rebrands [wikipedia.org] their version of Firefox and Thunderbird as IceWeasel and IceDove, also due to trademark restrictions.

        If it's possible to rebrand a program easily in this way, I take that as proof the artwork involved is not really an essential part of the program. The changes of the CentOS and Debian artwork forks do not diminish any feature of the software. That can't be said about most CSS and Javascript, and even some images are ma

  • GPL "Infection" (Score:5, Interesting)

    by LordLucless ( 582312 ) on Wednesday June 26, 2013 @06:29PM (#44118191)

    It's people like this poster who promote the whole "infectious" GPL crap that Microsoft et al have been capitalising.

    This behaviour ("split licensing") is perfectly fine, legal and moral.

    The GPL is all about preserving access to code. If you use GPL code, you have to publish that code. If you make changes to it, you need to publish those changes as well. This is to stop people "proprieterizing" GPLed code by making a few incompatible changes and releasing it.

    The GPL doesn't mean that if you include a GPL library, you need to open source your whole project. But people are afraid it does mean that, due to people like the poster, and Microsoft's FUD. If you want to know why people are shying away from the GPL, and view it as a threat, look to the article submitter.

    • by devman ( 1163205 )
      code that links against a GPL library can only be distributed under the terms of GPL. You're thinking of LGPL which allows non-GPL code to link, and only requires distributing changes to the LGPL library. That's the entire reason LGPL exists and why libraries like glibc use LGPL, otherwise only GPL code could link glibc which would be bad.
      • Javascript libraries (which is what this article is about) are not compiled or linked with their accompanying HTML/CSS files.

        • define 'linking'. Yes, I know the traditional sense...

          The implied context is that a website is the sum of its parts. HTML/CSS/JS/images are all load by the browser, which parses each URL embedded in the html document and invokes an interpreter for each, whose results are combined to form a web page, with the JS dynamically manipulating the DOM produced from the HTML.

          A lawyer for the prosecution would argue that this runtime combination constitutes a derivative work. Just sayin'...

          • To which the lawyer for the defence would respond, with a quote from the GPL:

            Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

            In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

            Seriously - this is the reason nobody wants to use the GPL any more. They don't want lawyers taking their stuff away from them. This attitude is poison to the adoption of the GPL, and is why pretty much everything I use these days is BSD or MIT licensed (including every javascript library I know of - jQuery, Prototype, MooTools).

    • by dfghjk ( 711126 )

      "The GPL is all about preserving access to code."

      No it's not, it's about something else entirely. Otherwise, Tivo-ization would not be an issue.

      GPLv3 addresses Tivo-ization not to preserve access to code but to gain access to hardware. You have to give me what I say or you can't play with my toys. It's not about free code, it's about RMS getting what he wants. It's always been about that.

      "The GPL doesn't mean that if you include a GPL library, ..."

      It would if RMS got his way. RMS once asserted that inc

      • Re: (Score:2, Informative)

        by LordLucless ( 582312 )

        From GPLv2

        Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

        In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

        It's only with GPLv3 that RMS jumped the shark and tried to take everyone else's stuff. Prior to that, the intention was clearly spelled out in the GPL.

        • It's only with GPLv3 that RMS jumped the shark and tried to take everyone else's stuff.

          What part of the GPLv3 implies that he's "[trying] to take everyone else's stuff."

    • by dfghjk ( 711126 )

      "The GPL doesn't mean that if you include a GPL library, you need to open source your whole project."

      You should read what the FSF says about that: http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL [gnu.org]

      • You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.

        Javascript libraries (which is what this article is talking about) are not linked or compiled with the HTML/CSS that is packaged with them.

    • The GPL is all about preserving access to code. If you use GPL code, you have to publish that code. If you make changes to it, you need to publish those changes as well. This is to stop people "proprieterizing" GPLed code by making a few incompatible changes and releasing it.

      Well then the GPL has failed because that is exactly what these people are doing. They're altering the GPL code, offloading code to proprietary files, then releasing the whole thing as a finished product. I presume this can be done with

      • Um, no they're not - where are you even getting that? These people are bundling GPLed javascript libraries in with their own HTML/CSS/JS/images and not open-sourcing the accompanying resources. "Split licensing" doesn't refer to diving up a GPL-licensed file, it means when a given package contains code with two different licenses.

    • It's people like this poster who promote the whole "infectious" GPL crap that Microsoft et al have been capitalising.

      [...] If you use GPL code, you have to publish that code. If you make changes to it, you need to publish those changes as well.

      You take to task another poster's understanding of the GPL and yet you do not seem to understand it yourself. Anybody who uses Ubuntu (to take just one example) is using GPLed code. They don't have to publish anything. As far as changes go, you are not required to release your changes unless you decide to release binaries derived from your changes.

  • Contracts have to be spelled out verbatim whereas as things like legislation and constitutions are open to some interpretation. Usually, a constitution is not interpreted directly but rather other laws are interpreted against it to ensure they are valid and do not violate the "spirit" of the constitution.

    The GPL is based on contract law and copyright rather that it being either a constitution or a law.

    • by dkf ( 304284 )

      Contracts have to be spelled out verbatim whereas as things like legislation and constitutions are open to some interpretation.

      Contracts are subsidiary to law, always, and can most certainly have interpretation. However, the interpretations that courts prefer are those that were understood by the parties to the contract at the time the contract was entered into (or as agreed later if the parties agree to vary that contract, and all subject to the contract actually being legal at all). People work very hard when drawing up a contract to describe exactly what everyone was agreeing to as this reduces the amount of trouble if there's a

  • by hardaker ( 32597 ) on Wednesday June 26, 2013 @06:59PM (#44118361) Homepage

    Ok, he'd chew his hair and wax poetic. We know that already, but what would the poem say?.

    I suspect it'd say: I'm sorry, but CSS very much is code. Not in the sense true languages are like C++, Python and PHP are. Ok, I'm not so sure that PHP qualifies. But anyway, the reason that even so piddly not-real-languages are part of the code is that it's nearly impossible to use the real code with the underlying CSS underpinnings that, actually, pin the boxes to the right place on the screen. Go ahead, take some huge news site, remove the CSS from it and see if you can still use it. I bet you can't. It frequently ends up looking like an application that magically put all their widgets rooted at 0,0 in the window. It's useless. Sure, it's all there, but it's useless. Thus, it has to be a rather important part of the "code". It takes both the output of the underlying framework langue and the CSS to make the result usable. Otherwise it's like compiling C-code into assembly, but for the wrong chip.

    I'm quite sure this violates the principal of the GPL. I'm not sure about the letter of the law, since IANAL. But it sure smells like a GPLv4 is ripe for the picking.

    • I will agree that CSS would generally be considered code, at least if it's complex enough to deserve being put in it's own file.
  • Comment removed based on user account deletion
    • by Arker ( 91948 )

      That is not true at all. The GPL was devised for a very specific purpose and that purpose has been explained and discussed at work.

      What is true is that using force to prevent people from exercising their rights here would be wrong and against the spirit (ie if you actually sue someone in for violating the spirit of the license that suit should not be a winner.) But expecting people that claim to be oriented towards the ideals of free and open source software to avoid circumventing that spirit does not seem

      • Comment removed based on user account deletion
      • by petrus4 ( 213815 )

        That is not true at all. The GPL was devised for a very specific purpose and that purpose has been explained and discussed at work.

        Then this should be made specific and overt. If a relevant or necessary demand is missing from the license, the license needs to be rewritten to include said demand.

        The term, "spirit," by its' very nature, refers to something undefined, non-specific, and acorporeal. I'm surprised that anyone who identifies as an atheist in particular, would be comfortable with using it.

        I say again; if there is a "spirit," or an "ethos," associated with the FSF or the GPL, and such has heretofore been implicit and "intuiti

        • by Arker ( 91948 )

          "Then this should be made specific and overt. If a relevant or necessary demand is missing from the license, the license needs to be rewritten to include said demand."

          You marched right past the point. This is NOT a demand! It is not the intention of the GPL to in any way expand copyright law to regulate any more than it already does! As long as copyright law doesnt define the artwork as a derivative work of the GPLd code then the license, legally speaking, isnt needed. And that's fine. One of the key differ

          • by petrus4 ( 213815 )

            It's ok to use the code and do the minimum required!

            The problem is the fact that anything else gets said. If that is what the license requires, then that is what the license requires. The stuff about, "being a big believer in free and open," is extraneous, subjective garbage; and is exactly the issue, here.

            If I do what I am legally required to do, then I should neither be applauded for being a member of the cult, or condemned if I am not a member of it. If I am legally in compliance, then I should not have to know or care about the opinion of "the communi

            • by Arker ( 91948 )
              "The problem is the fact that anything else gets said. If that is what the license requires, then that is what the license requires. " And again you charge straight past the point, oblivious. I just spent quite a bit of time explaining to you clearly and concisely why this is not the case here. Read it, or dont. I'm not going to waste time retyping it for you if you cant be bothered to read it the first time.
        • The GPL license isn't that long . You could probably read it in one trip to the bathroom.

          If you read it, you'll find that:
          No, you do not have to make your modifications public .
          If you CHOOSE to distribute a binary, you must offer to distribute the source as well.

          The intent, the spirit, IS made explicit in the first paragraph, the preamble.
    • Of course the GPL has a spirit that goes beyond its legal wording. The clearest example of that in action was when the GPL v3 was introduced to block things like Tivoization. That sort of loophole was against the spirit of the license, but not explicitly blocked by it. Once the problem was clearly identified, the legal language of the license was updated. You can think of that as turning more of the spirit of the license into explicit legalese. People who think the wording of these licenses are some so

      • Comment removed based on user account deletion
        • Your first paragraph is a definition of the spirit of a legal document. It's the rules that reflect the goals of those who drafted the GPL, including both seen and hithertofore unforeseen situations. If every situation was foreseen, then there could be no legal loopholes, and therefore nothing could ever could fulfill the letter of the law but not the spirit.

          Do you have a problem with the word spirit or something? This isn't a new concept and it doesn't need scare quotes.

  • A bigger issue is the potential for GPL source for a proprietary interpreter, or GPL source for a chain of GPL interpreters where a proprietary transformation is required at some stages of the build process.  The GPL does not require disclosure of a fully working build process (else a Windows binary compiled from GPL source in Visual Studio would require providing the recipient with a licensed copy of Visual Studio or a working alternative).

"Confound these ancestors.... They've stolen our best ideas!" - Ben Jonson

Working...