At Thu, 31 Jan 2013 09:20:28 -0700,
Eric Blake wrote:
On 01/31/2013 02:47 AM, Claudio Bley wrote:
>
> IMO, these files are "object files", as far as the GPL v3 is
> concerned.
>
> ,----[ GPL v3 1. Source Code ]
> | The "source code" for a work means the preferred form of the work
> | for making modifications to it. "Object code" means any non-source
> | form of a work.
> `----
That sets off alarm bells in my head. Doesn't GPL require that if we
distribute binary files, then WE are responsible for shipping the source
used to produce those binaries?
Responsible, yes. But shipping it, no.
That is, we can't offload our obligation onto a third-party
project
- if we are going to ship binary css and js pages, then the
libvirt-1.x.x.tar.gz tarball must include the source code that
produces those binaries.
No, not AFAICS but IANAL.
,----[ GPL v3 1. Source Code ]
| The "Corresponding Source" for a work in object code form means all
| the source code needed to generate, install, and (for an executable
| work) run the object code and to modify the work, including scripts to
| control those activities. However, it does not include the work's
| System Libraries, or general-purpose tools or *generally* *available* *free*
| *programs* which are used unmodified in performing those activities but
| which are not part of the work.
`----
The compression was done using the YUI Compressor
(
https://github.com/yui/yuicompressor) which is a free tool and we
don't have to ship that.
,----[ GPL v3 6. Conveying Non-Source Forms. ]
| d) [...] If the place to
| copy the object code is a network server, the *Corresponding Source*
| may be on a different server (operated by you or a third party)
| that supports equivalent copying facilities, provided you maintain
| clear directions next to the object code saying where to find the
| Corresponding Source.
`----
So, all we'd have to do is adding a file with directions on how to
obtain the Corresponding Source. This would have to be distributed
with a libvirt tarball.
Remains only this paragraph to comply to:
,----
| Regardless of what server hosts the Corresponding Source, you remain
| obligated to ensure that it is available for as long as needed to
| satisfy these requirements.
`----
Probably the easiest way would be to add it to the repo.
And if the source code is more legible, and the formula for
generating the minimal size binary is simple enough, then
libvirt.git should just store the source files and the creation
rules, not the binary files.
No, I'd say it's not that simple. At least not when it comes to
ECMAScript.
>> Also, since you are copying from somewhere else, a comment
about the
>> original source would be appropriate.
>
> Fair enough, where should I put it?
Again, if we copy the original source files, rather than a compiled
minimal generated version, then the attribution would go as a comment in
the copied source file. And if the generated compiled version is not
shipped in the tarball, then not having a copyright disclaimer/license
in the .js file _might_ be okay. Then again, it might not be: the FSF
LibreJS project exists to reject execution of any javascript files that
do not contain a clear license.
https://www.gnu.org/software/librejs/
https://www.gnu.org/software/librejs/free-your-javascript.html
I haven't read the whole text, but I found this section in Appendix A:
,----
| As additional permission under GNU GPL version 3 section 7, you may
| distribute non-source (e.g., minimized or compacted) forms of code
| without the copy of the GNU GPL normally required by section 4,
| provided you include this license notice and a URL through which
| recipients can access the Corresponding Source.
`----
Too bad SHJS doesn't have this added to its source code. Maybe I can
get this added...
>>> diff --git a/docs/sh_main.min.js b/docs/sh_main.min.js
>>> new file mode 100644
>>> index 0000000..31d1ba0
>>> --- /dev/null
>>> +++ b/docs/sh_main.min.js
>>> @@ -0,0 +1,4 @@
>>> +/* Copyright (C) 2007, 2008 gnombat(a)users.sourceforge.net */
>>> +/* License:
http://shjs.sourceforge.net/doc/gplv3.html */
>>
>> This has a copyright, but the license is incomplete - the FSF states
>> that it is insufficient to point to a URL when using the GPLv3 (and a
>> non-canonical URL at that); while a URL is helpful, any package shipping
>> a GPLv3 file must also ship the full GPLv3 text as part of the
>> package.
>
> OK, I'll add a GPLv3 license file.
The more you explain what this commit is trying to add, the more I'm
worried that we are getting ourselves into legal hot water. People
downloading libvirt.git and seeing GPLv3 COPYING might be worried that
we have changed the license of overall libvirt (although our goal is to
avoid that, and leave most things at LGPLv2+, and some of the built
executables at GPLv2 or GPLv3 depending on libraries that they were
linked with).
We could move the SHJS files into docs/shjs with an accompanying
LICENSE.txt. I guess that would make it sufficiently clear which files
it applies to.
Is source code highlighting on the web page documentation really
worth the hassles?
Having written all that above, I'm not entirely sure, anymore. I chose
SHJS just because it had a GNU license, who would have known it would
cause so much hassle by itself...
But besides, arguing with you is always worthwhile. ;)
>> What does upstream have against whitespace?
>
> It is a compressed version of the original code. Intended to cut down
> on download time, snappier page loading.
I'm not sure whether to believe their claim, though. sh_emacs.min.css
already weighs about 1800 bytes, so it already transmits as 2 packets
with an MTU of 1500. Upstream is arguing that shaving 30 or so
strategic newlines would cause a noticeable speedup? I would have been
more impressed if the compression cut a file from 2 TCP packets down to 1.
Granted, CSS compression tends not to have great potential for
compression. Removal of comments, color compression, semicolon
reduction and - well - removal of newlines doesn't buy you that much
(especially when there are no comments in the source file to begin with).
But, in general, it makes a huge difference for ECMAScript
files. sh_main.js is reduced to 35% of the original size (15 to 5 KB).
In summary, this would be required for inclusion of SHJS for
rendering:
- compressed files (if we want to use them)
- doc/shjs/LICENSE.txt
- source code of the compressed files
- edit source code of SHJS in order to have it include
a copyright
- doc/shjs/ABOUT.txt explaining where the files
have been obtained
Claudio
--
AV-Test GmbH, Henricistraße 20, 04155 Leipzig, Germany
Phone: +49 341 265 310 19
Web:<http://www.av-test.org>
Eingetragen am / Registered at: Amtsgericht Stendal (HRB 114076)
Geschaeftsfuehrer (CEO): Andreas Marx, Guido Habicht, Maik Morgenstern