Re: anti-tarball clause and GPL

2019-07-24 Thread Yao Wei
On Wed, Jul 24, 2019 at 10:28:19PM +0200, Florian Weimer wrote:
> On the other hand, not allowing source distribution as a “flat
> tarball” sounds like an additional restriction, which would be
> incompatible with the GPL.  (Just like parts of glibc used to require
> distribution on tapes, only less inconvenient.)

I believe that "flat" tarball in Adam's question means tarball stripping
out VCS information, not tarball as a format.

Also, the clause doesn't disallow the distribution using tarball, but
only define what "source code == preferred form for making modification"
is.  So, "flat tarball" becomes object code license-wise.

Yao Wei


signature.asc
Description: PGP signature


Re: anti-tarball clause and GPL

2019-07-24 Thread Florian Weimer
* Adam Borowski:

> In the light of the currently discussed GR proposal, I wonder if the
> following license clause would be considered DFSG-free and GPL-compatible:
>
> ##
> I do not consider a flat tarball to be a preferred form for modification. 
> Thus, like any non-source form, it must be accompanied by a way to obtain
> the actual form for modification.  There are many such ways -- unless you
> distribute the software in highly unusual circumstances, a link to a
> network server suffices; see the text of the GPL for further details.
> ##
>
> I believe such a statement would be GPL-compatible; rationale:
> * by the 2011 Red Hat kernel sources outcry, it is obvious such a tarball
>   is long obsolete
> * a flat tarball deprives the recipient of features of modern VCSes
> * comments giving rationale for a change tend to be written as VCS commit
>   messages
> * future forms are not banned: it is conceivable that next week someone
>   invents a revolutionary new form that wins over git
>
> Thoughts?

The GPL version 2 already requires that you maintain something like a
ChangeLog:

|   2. You may modify your copy or copies of the Program or any portion
| of it, thus forming a work based on the Program, and copy and
| distribute such modifications or work under the terms of Section 1
| above, provided that you also meet all of these conditions:
| 
| a) You must cause the modified files to carry prominent notices
| stating that you changed the files and the date of any change.

On the other hand, not allowing source distribution as a “flat
tarball” sounds like an additional restriction, which would be
incompatible with the GPL.  (Just like parts of glibc used to require
distribution on tapes, only less inconvenient.)



Re: anti-tarball clause and GPL

2019-07-24 Thread Jeff Licquia
On 7/23/19 6:49 PM, Adam Borowski wrote:
> In the light of the currently discussed GR proposal, I wonder if the
> following license clause would be considered DFSG-free and GPL-compatible:
> 
> ##
> I do not consider a flat tarball to be a preferred form for modification. 
> Thus, like any non-source form, it must be accompanied by a way to obtain
> the actual form for modification.  There are many such ways -- unless you
> distribute the software in highly unusual circumstances, a link to a
> network server suffices; see the text of the GPL for further details.
> ##
> 
> I believe such a statement would be GPL-compatible; rationale:
> * by the 2011 Red Hat kernel sources outcry, it is obvious such a tarball
>   is long obsolete
> * a flat tarball deprives the recipient of features of modern VCSes
> * comments giving rationale for a change tend to be written as VCS commit
>   messages
> * future forms are not banned: it is conceivable that next week someone
>   invents a revolutionary new form that wins over git
> 
> Thoughts?

Flat tarballs are not the preferred form for the modification of
anything; they are a popular method for storing directory hierarchies,
which can then be distributed in many ways.  Modern VCSes provide other
methods for distributing directory hierarchies, some of which are
becoming quite popular in their own right (i.e. "git clone").

So, to my reading, upstream is merely adding restrictions to the way
some project's source code may be distributed, which looks to me like an
additional restriction that makes it GPL-incompatible.

Imagine forking something like gcc, and then requiring that anyone
distributing your fork must distribute the result using git.  Can you
imagine the FSF being on board with that?

(Actually, to make it more clear, imagine forking gcc, and then
requiring distribution via CVS.  I think a few more people would object
than just the FSF, and on more than just principled grounds.  But it
also illustrates why this kind of restriction is against the spirit of
free software.)

If the intent is to not strip out the usual VCS metadata, then why not
just say that?  "We consider VCS metadata to be essential to proper
modification of our project, and thus stripping out such metadata is
tantamount to making the result a non-preferred form for modification of
the work."

Does it really matter that your .git directory was created directly with
the git tool, as opposed to being unpacked via tar?  The git tool itself
doesn't seem to care.

Personally, I wouldn't take this latter approach, because I don't trust
that VCS tools treat their metadata with enough care to make a VCS
checkout operation reproducible.  And that doesn't even consider how VCS
metadata tends to explode in size over time.  But, to each their own.



Re: anti-tarball clause and GPL

2019-07-24 Thread Simon McVittie
On Wed, 24 Jul 2019 at 02:34:13 +0200, Adam Borowski wrote:
> > > ##
> > > I do not consider a flat tarball to be a preferred form for modification. 
> > > Thus, like any non-source form, it must be accompanied by a way to obtain
> > > the actual form for modification.  There are many such ways -- unless you
> > > distribute the software in highly unusual circumstances, a link to a
> > > network server suffices; see the text of the GPL for further details.
> > > ##

Are you asking this hypothetically, or is there a piece of software that
someone intends to apply this to?

As always for legal questions on whether something is allowed in Debian,
asking -legal will only get you some speculation: the ftp team is the
authority on what can and can't be in Debian. However, I think this would
be an unwise precedent to set, with undesirable practical implications,
and I suspect the ftp team would think the same.

Remember that GPL-2 §3c is only allowed for non-commercial redistribution,
so commercial redistributors have to use §3a or §3b. This means they have
to take steps to redistribute the preferred form for modification themselves
(e.g. copy it to *their* network server).

In the GPL-3 case, a commercial redistributor could rely on §6d (GPL-3
§6 is the equivalent of GPL-2 §3), but it's unwise to rely on a third
party for this without some sort of contractual relationship, because
"you remain obligated to ensure that it is available for as long as
needed to satisfy these requirements" (so linking to upstream's network
server is not enough, because if upstream stop distributing source,
you would be in violation of the license unless you immediately stop
distributing binaries). Debian and its derivatives are longer-lived
than many of the packages we include, so we need to know that we are
already distributing source for all our binaries.

Redistributing the entire history of a third-party project is practically
problematic because it is no longer enough to check that there is nothing
you don't want to distribute (e.g. non-free software) in the HEAD commit:
you also have to check that there is nothing that you don't want to
distribute anywhere in the history. If I remember correctly, this is
why the ftp team do not allow "3.0 (git)"-format source packages in the
Debian archive: if a git-based source package format is allowed in future,
it will have to be "shallow", which makes it functionally equivalent to
a tarball plus metadata.

For established projects, the complete history is also inconveniently
large: my git clone of glib2.0 has a 57M .git, which compares poorly
with a 4.5M source tarball (and glib2.0 isn't even particularly big or
old by the standards of projects like glibc and the Linux kernel).

> By this logic, a pile of .c files with comments removed or preprocessed
> with cpp would be allowed as well.  The VCS is also a means to store
> human-readable comments.

We have to draw a line somewhere. You could equally well say the software's
bug tracking system and mailing lists, which also store human-readable
comments, are part of the preferred form for modification - but those
don't normally have any copyright license granted (I certainly didn't
put this email under a copyright license!) so they are non-free.

> Another piece of [meta]data that a flat tarball lacks is authorship
> information.

Projects that consider this to be important put copyright notices in
source files, lists of authors in source files and/or lists of authors
in ./AUTHORS.

smcv



Re: anti-tarball clause and GPL

2019-07-24 Thread Landry, Walter
Adam Borowski writes:
> Hi!
> In the light of the currently discussed GR proposal, I wonder if the
> following license clause would be considered DFSG-free and GPL-compatible:
>
> ##
> I do not consider a flat tarball to be a preferred form for modification. 
> Thus, like any non-source form, it must be accompanied by a way to obtain
> the actual form for modification.  There are many such ways -- unless you
> distribute the software in highly unusual circumstances, a link to a
> network server suffices; see the text of the GPL for further details.
> ##
>
> I believe such a statement would be GPL-compatible; rationale:
> * by the 2011 Red Hat kernel sources outcry, it is obvious such a tarball
>   is long obsolete
> * a flat tarball deprives the recipient of features of modern VCSes
> * comments giving rationale for a change tend to be written as VCS commit
>   messages
> * future forms are not banned: it is conceivable that next week someone
>   invents a revolutionary new form that wins over git
>
> Thoughts?

Not everyone uses version control.  Making requirements on how people
make modifications would be a significant change.  It would definitely
be incompatible with the GPL.

Cheers,
Walter Landry