S5 Licensing

Published 19 years, 3 months past

I’ve gotten a few e-mails and comments to the effect that instead of using a Creative Commons license for S5, I should use GPL instead.  One of the reasons given to me was that the Creative Commons licenses are not considered appropriate for software, according to the Creative Commons folks.

My problem is that I don’t really think of a collection of (X)HTML, CSS, and JavaScript as “software”, so the GPL doesn’t really seem to fit.  Yes, the JS is code, and one could argue that it’s software of a kind, but markup?  Presentational hints?  Not so much.  I feel the same way about the Color Blender: it’s not really software so much as a widget.  A fun widget, perhaps even cool to some people, but still not software in the way that BBEdit or NetNewsWire or any given Web browser is software.

My other problem with GPL is that it’s long and stunningly legalistic.  It kind of has to be, and I think that’s great for the purpose for which it’s intended.  To ‘protect’ things like S5 or the Color Blender, the GPL kind of feels like protecting a kitten with the 82nd Armored Division.  What I like about the CC licenses is that they’re easily understandable; even the “lawyer-friendly” versions are compact and mostly understandable.  In perusing the list of licenses over at the Free Software Foundation, I quickly got a headache.  The one license that seemed the closest fit is the Expat license.  But even there, given the way it’s written, I come up against the question: is a confederation of markup, styles, and client-side code really “software”?

So what to do?  Stick with the CC license?  Move to Expat?  Plunge into GPL-land?  Come up with my own variant license based on Expat or something similarly simple?  I’d be interested to hear people’s opinions—especially those of you who have faced the same question, or a similar question, in the past.

I’m still a little bit bemused that it’s even a question, and a little bit dismayed that ours is the kind of world where I really do have to worry about this sort of thing.


Comments (41)

  1. Pingback ::

    Licensing

    […] available under a Creative Commons Attribution License. However it has been brought to my attention that this is not suitable for JavaScript (software) solutions. These wil […]

  2. Pardon the lesson in military affairs, but there is no 82nd Armored Division. I assume you intended to reference the 82nd Airborne Division.

  3. How good would an airborne division be at protecting a kitten anyway? Assuming they could see the kitten from 40,000 ft and Mach 1, all it would take is a single clumsy parachute drop..

    Can you write your own license, and then licence the license under CC? Are CC licenses licensed?

  4. I may be slightly underinformed, having only done some brief research in response to this post, but here are my views, none the less.

    Because of the level of user interaction involved S5 could, and perhaps should, be considered as software. As far the XHTML and CSS are, I think CC quite adequately covers them. By their very nature they are exposed to anyone who might be interested, and anybody would have a hard time enforcing any sort of warranty or payment for them.

    The remaining issue, then, is the javascript. My understanding of the GPL is that it applies best to compiled code and its source, not script. There don’t seem to be any rules that prohibit you using the GPL, but it’s a bit like serving pictures of my cat over https.

    As far as the expat license is concerned, you might have something. It would have to be modified if you want to preserve your by-attribution clause from CC, but it has the advantage of dealing with some of the specific issues of software. Of course, I personally don’t see a need to switch licenses. For S5, I believe that CC is adequate.

    As an aside, you should make the specific CC license you use more noticable, perhaps right on the S5 homepage, rather than putting it inside of the actual slideshow.

  5. I’mm be watching the comments. I’ve been thinking about software licenses being applied to web-sites/markup/widgets for some time now.

  6. What’s wrong the BSD license? It’s probably the simplest of them all.

  7. Actually, what options of CC will you be using? Each option make the CC license very different.

    Also, please be careful that you don’t make the license too strict for the XHTML. I guess only “public domain” is okay for the XHTML. Those CSS files also have similar concern.

  8. S5 is definitely software. The Debian Linux project sometimes debates whether documentation counts as software (with many people thinking it does); they even recommend using the GPL for licensing documentation. Since your files are in computer-readable data formats (rather than a human-oriented format) I don’t think it’s controversial to deem them to be software.

    Use the GPL or BSD licenses — they’re widely used, and they work.

  9. Use the BSD-license. It is well-known and very simple.

  10. The problem with the BSD license is that there is not one but several different licenses. In the same way, there is not one MIT license either. The Expat license is probably what most people recognize as MIT. One advantage with Expat is that it is GPL compatible.

  11. We’ve licensed sIFR under a CC-GNU LGPL which allows even companies to use it without having to license their entire application (imagine a CMS) under GPL.

    In general, as with sIFR but also with S5, I don’t think you should license software under a normal CC license. That’s for content, but software isn’t content.

  12. The flaw in your military analogy is that it’s usually more effort to persuade an armoured division to come and protect your kitten than it is to e.g. lock it in a room while you are out. Whereas it’s about as easy to put one licence header on a set of files as another.

    S5 is definitely software – and even if it’s on the borderline now, people may want to take bits of it and incorporate them into larger works, which will certainly be software. If you want to encourage that sort of thing (and I would hope you would) then you should pick a recognised free software license – GPL if you want people to share-alike, BSD if you don’t mind. Otherwise, people will be faced with questions like “can I combine this CC-licensed code with my GPL-licensed code to make my cool new project?” And such questions are always a pain to answer.

    Let’s keep the number of different licenses used for software down as far as possible. :-)

  13. First of all I would recomend against creating a new license, as Grev said:

    Let’s keep the number of different licenses used for software down as far as possible. :-)

    Secondly, as you said the CC-licenses are not well suited for software and the javascript is definitly software and the other parts of S5 could be considered software (I do, but some people dont).

    This boils down to my sugestion: dual license it under GPL and CC A-SA license, that way some one who wants to incorpotare the whity copy from the inroduction into there film script under CC A-SA and the sotware writer who wants to integrate the slide show functionality into a photo management system under GPL can do so.

  14. Markup is code. It may not be executable code, but it is code.

    Here’s a question: Does Mozilla copyright (for example) just the compiled products or the source code as well? or just the source code?

    Can all computer code can be copyrighted with no conceptual or legal problem *as software*? Maybe that’s the wrong question. Maybe you just want to GPL your code regardless of whether it’s software or not.

  15. I may be stupid, but why not just say: “This software/HTML/CSS/etc is free to use for whatever you want. Don’t whinge if it doesn’t work how you hoped.”

  16. For those who neither know nor bothered to read it (what business do you have debating licenses if you don’t read, anyway?): the Expat license’s terms are what most people think of when they say “BSD-style license”.

    Eric: I too vote for the Expat license, assuming you want a license at all. Otherwise I’d vote for putting S5 in the public domain, but that’s your prerogative.

    It might be an idea to license only the Javascript, and put the XHTML and CSS in the public domain, since the JS is really the part which makes S5 what it is. You can throw away the XHTML and start from scratch and it’s still S5. You can even throw away the CSS and start scratch and it’s still S5. But you cannot throw away the JS and start from scratch without it becoming something different — that would be much like S5 maybe, but it would be a clone, not S5.

    So that’s what seems to make the most sense after some brief thinking out loud: put the markup and stylesheets in the public domain and the code under the Expat license.

    This opinion is in the public domain; do whatever you want with it, but don’t hold me liable. ;)

  17. Why not simply dual license it as GPL and Creative Commons. There is no need to choose between the two.

  18. I got a great idea. How about rather than giving a license, you just declare it public domain? The idea of a license is to protect something. You are not trying to protect S5 as it isn’t even really software in your opinion. Just release it with a 4 line paragraph disclaimer telling how its public domain and free to distribute anywhere in any form. It wouldn’t hurt to do this anyhow.

  19. Aristotle, has some good points. Perhaps you could GPL the actual “code” and then use a CC for the XHTML and the CSS. It seems to have worked well for other projects.

  20. Simon Willison was asking a similar question recently, and a popular recommendation was the MIT license (which looks identical to the Expat one you referenced). Despite the “Software” label, this seems to be commonly used for mark-up/scripting-based items.

  21. If you dislike current strict license so much, is there perhaps a “transitional” license you could use?

  22. Trackback ::

    joeys blog

    Eric’s Archived Thoughts: S5 Licensing
    [In response toEric’s Archived Thoughts: S5 Licensing] I belive Eric should keep S5 under creative commons. It works, why fix it? There’s nothing wrong with using creative commons. He asks over and over: Is S5 really software? And I have an answer: i…

  23. Markup is not executable, but it drives the execution of an executable. The collection of markup, ccs, config files, etc is (should be?) considered “software”.

    Don’t reinvent the wheel with licenses. Pick the best one, GPL or BSD.

  24. I’ve actually been a bit confused by the licensing of S5… do the presentations I make fall under the current license, or just modifications to the infrastructure? I’m not sure because to make a presentation, I modify the files that come with S5. That’s a bit different from keeping a compiled program as-is and just making my own input file.

    Perhaps a note in the FAQ would be good for clearing this up.

  25. Weighing in from the legal perspective:

    /* begin a 30-45 second primer on copyrights */

    The creator or author of a work is automatically granted copyrights to the work (including a copyright notice or registering the work with the US Copyright Office is not necessary but may serve to put others on notice that a work is protected). All this means is that the creator gets exclusive rights to do certain things with the work in exchange for the public’s rights to do certain things with the work. For example, a creator has the exclusive right to control the first sale of the copyrighted work; however, the work may be used for certain purposes which are called “fair uses.”

    Combinations of computer code–whether labeled as software or not–can be eligible for copyright protection.

    A license is nothing more than permission to use a protected work in a particular matter.

    /* end primer */

    With that in mind, the license, if any, that should be selected should reflect whatever permissions the creator intends to authorize. If no rights are authorized, a simle statement like “Copyright 2004 Eric Meyer; all rights reserved” should suffice. On the other hand, a statement like “Copyright 2004 Eric Meyer; no rights reserved” essentially waives any uses that would otherwise be prohibited. For permissions somewhere in the middle, a license appropriate to those permissions should be used.

    The advantage to using a licensing scheme already devised by another entity or well known is the relative certain that comes from knowing what the license means or how it has been interpreted previously. Granted, those licenses can be complex and are written by lawyers for lawyers–usually not for the general public–because legal terms of art have different meanings in a protection context. The disadvantage, obviously, is that the lay person may get horribly confused by the legalese and not know what uses are permitted or prohibited–and, in fact, may be deterred from using the protected work in a manner that the creator has already authorized.

    On the other hand, a plain language statement by the creator which indicates which uses are permitted and which are prohibited is much more useful for the potential user. However, the creator runs the risk of unintentionally permitting or prohibiting a use because plain language may be ambiguous or vague.

    A license which includes both legalese and a plain language statement of what uses are authorized by the creator can be an effective tool for making clear exactly where the creator stands in relation to the protected work. Thus the appeal of the Creative Commons licenses.

    Of course, this discussion assumes that the creator intends to protect the work to some degree. Otherwise, the work should be released to the public domain with no rights reserved.

  26. I may be stupid, but why not just say: “This software/HTML/CSS/etc is free to use for whatever you want. Don’t whinge if it doesn’t work how you hoped.”

    There is one major problem with simply releasing software into the public domain; even though you are giving people any rights they wish to view, alter, use and re-distribute your software, it is then possible for them to repackage and ship that same software, or derivative works, with a very restrictive licence; thus limiting other peoples rights – in direct contravention of the original rights you bestowed on them. It may even be included as a smaller section of a larger package which equally limits the end users rights in this manner.

    As someone who cares very much about free (as in speech, not beer) software and our rights as developers I find it unacceptable to release software knowing that someone could come along and remove those freedoms I gave to my users.

    For this reason I use the GPL , an ingenious licence specifically designed to play propriety software companies at there own game, by using cleverly written legalese to “lock” in any re-distribution or derivative works so that they MUST come with exactly the same freedoms they were originally distributed with.

    The The GPL’s homepage summarises it quite succinctly:

    The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software–to make sure the software is free for all its users.

    To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. […]

    I understand your point about legibility Eric, but I feel like there is enough discussion about the effects and philosophy of the GPL that most people would either know, off-the-bat as it were, or you could simply point them to the human-readable summary of the GPL the Creative Commons provides.

  27. . . . someone could come along and remove those freedoms I gave to my users.

    Unless I misunderstand, they can’t. They can only specify restrictions on derivative works. Your original work will always have the same freedoms (barring retrospective legislation).

    I view the GPL (and similar licenses) as a good means of coercing the development of free software, not of protecting existing free software.

  28. Comment 26 says exactly what I would have said in reply to 25. If you give it away free, no-one else can *stop* you giving it away free. Who cares if someone wants to build a (restrictively licensed) product on it.

    As Voracity says, the GPL and similiar is about coercion, not about altruism.

    The world that worries about this stuff, that Eric says he doesn’t really want to live in, is created *entirely* by people fussing over this stuff when they don’t need to.

    My favourite licence at the top of a bit of give-away software says pretty much exactly what I originally suggested. I’ve yet to see the problem with this. It certainly isn’t as stated in comment 25, where the perpetrator would either have to add a lot of value of their own, or they’d have to compete against a similar product which was being given away. Fair play to them for the first, tough luck in the second.

  29. I definitely agree with your choice. I never was sure what to consider ‘project’, ‘software’, ‘tool’, ‘utility’, etc.

    If you think of HTML or JavaScript as borderline cases, think of shell scripts or plain-text that’s so-called intellectual property.

  30. As Voracity says, the GPL and similiar is about coercion, not about altruism.

    The Stallman quote comes to mind: “Your freedom to throw your fist ends at the tip of your nose”. I don’t think the term coercion applies to the idea of the GPL. After all, you can always not use it.

    Unless you see all laws as coercions, too. But I’d still think you’re wrong.

    Back to the topic, now?

  31. Oops. “my nose”, not “your nose” in the previous comment.

  32. The GPL could easily be interpreted to mean that the CSS would be protected by the GPL, and must be freely reusable. Which maybe is okay, but you can also reasonably feel that users should be able to keep their styles “private” if they want (more like trademarked really, since everyone can see it, but they don’t want people to copy them). Especially if you are integrating your external style into an S5 presentation, the viral aspect of the GPL comes into play, putting the entire CSS file under the GPL. I doubt this is the intention. The LGPL is very vague for situations like this (since it was written with C code in mind), though you could also make an explicit exception to the GPL/LGPL that you do not interpret CSS to be covered.

    And actually, the presentation itself would fall under the GPL. That’s definitely not what you intend (I presume). At most, I would put the Javascript code under the LGPL, and make it explicit that this only covers other Javascript code, not any HTML or CSS. Or just put it under a BSD-style license for simplicity.

  33. I concur with the pleas to choose an existing, well-understood free software license. If you like copyleft (share and share alike), choose the GPL. If you want to let others to make proprietary versions of S5, choose the 3-clause BSD or the MIT X11 license.

    Never doubt that S5 is software. You furrow your brow over whether it is a program, and try to distinguish between the scripts and the markup; these distinctions are irrelevant. It is a creative work, functionally useful, represented as information. (I call that “software”; whether you agree with that name or not, that definition describes S5.) As such, it makes sense to put a free software license on it.

    We need your unambiguous license terms for copying, modification, redistribution, aggregation et cetera. The question of whether S5 is a program or not has no bearing on that issue.

    If you want to usefully release S5 to the community, please follow the Creative Commons folk’s advice and *don’t* use their contract-like agreements; choosing a well-understood universal grant of license like the GPL makes the situation clear.

  34. As for the dilemma about S5 being a program or not: as far as I’ve understood this, S5 incorporates XHTML and CSS (which we could call a “themeable” GUI) and javascript (the code underneath that GUI). How’s this not a program? Examples that ring a bell could be (but I’m probably talking out of my bottom end) the postscript engine in apple’s mac os, or some “apps” like windows update, pure javascript and other code underneath the html. Mangled and disgusting, sure, but still an app (don’t take this as a comparison between S5 and windows update, please :) ).

    I can see that you could wish to keep parts licensed differently, but still I fail to see much of a difference between it and a “normal” GUI app.

  35. As an interpreted language, the Javascript source is the distributed end product, as opposed to compiled languages, where the final executable is different from the source. As such, even though S5 consists of programs (rule-based, in the case of the CSS; procedural in the case of the Javascript), since there is no derivative intermediate form or executable form, a license written to specifically cover these common derivative works for software may not be required. A license used for written works may be sufficient. The usual caveat applies: this is only my personal opinion and is not professional or legal advice.

    I agree with comment 23 that a bit of clarification would be helpful. I assume that s5-blank.html itself is essentially being placed in the public domain, so the contents of one’s presentation does not have to be licensed under the Creative Commons license.

    I’m not sure what the implications are for copyrighting the CSS files, though; the question if a web design implemented in CSS can be copyrighted was recently discussed by Paul Scrivens. It would seem that by copyrighting and licensing the CSS files with a Creative Commons license, any slide presentation designs based on S5 would have to be covered by the same license.

    By the way, since <sup> isn’t listed as a supported attribute in your comments, it’s unsurprising that people are not superscripting the 5.

  36. I think the CC licence is quite adequate. It makes it perfectly clear that I can make derivative works, but must share-alike, and must also give attribution to you, which I’m quite happy to do. I tried reading the GPL, but it’s long and confusing with so many conditions, and seems to be a lot of overkill for this system. I’ve not heard of Expat before, so I don’t know anything about it. So, my advice is to keep it simple, and, for me at least, CC are the simplest licences I’ve read.

  37. Here is a licence taken from the innards of FreeBSD:

    “THE BEER-WARE LICENSE” (Revision 42): wrote this file. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp

    Short and sweet, I think.

  38. I would suggest this one .

    Plus you can take a look at the other ones.

  39. Speaking of headaches caused by (attempting to) read various licenses:

    Based on my recommendation, my employer (a California State agency which will remain nameless, thank you very much) is contemplating S5 as a replacement for posting PowerPoint presentations on the web. Suppose we go through all the requisitions (yes, even with freeware), approvals, signatures, etc. ad nauseam — when Mr. Meyer decides to change the licensing structure. That means we (my employer and I — the person who made the original suggestion) would have to go through the entire process.

    Just keep it simple and explicit:

    • Content is Copyright ©2004 Eric Meyer. All rights reserved.
    • The S5 Framework (XHTML document structure, CSS, and Javascript) is also Copyright ©2004 Eric Meyer … with a link to whatever license you choose.

    Just let me know when you decide on the final license—then I can start my paperwork.

  40. I would like to understand is if I create a presentation using S5, am I licensing only the changes I make to S5 or am I supposed to license even the *content* under the same license? – I got this doubt because CC licenses are usually meant for content such as articles and books.

    Forgive me if this is a ‘duh’ question, I was just kind of curious.

  41. This is pretty interesting. :)

    The JavaScript etc. would constitute software, in the same way that a browser extension which might provide the same functionality would be.

    However, the Creative Commons FAQ item that you linked to says that it doesn’t recommend their licenses because they “do not make mention of source or object code”, but in the distribution of JavaScript and the like, there is no distinction between source and object code. The JavaScript, CSS, XHTML, everything else, whether or not software, will always be text files, which a Creative Commons license should have no problem taking care of.

    It might be different if you were encrypting of obfuscating the code in some way and wanted to protect against the grande scourge that is reverse engineering, but, you know… you don’t.

Add Your Thoughts

Meyerweb dot com reserves the right to edit or remove any comment, especially when abusive or irrelevant to the topic at hand.

HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <em> <i> <q cite=""> <s> <strong> <pre class=""> <kbd>


if you’re satisfied with it.

Comment Preview