[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#903289: dh-make-elpa license and contribution



Hello,

On Mon 20 Aug 2018 at 03:34PM +0500, Lev Lamberov wrote:

> first, I'd like to stress that my motivation is making clear for
> myself several important (from my point of view) points and
> improvement of dh-make-elpa.

Thank you for your interest in working on dh-make-elpa!

> The point I'd like to focus attention to is licensing of dh-make-elpa.
> Currently, it is licensed under GPL-3+. It is based (and I'd say
> heavily based) on dh-make-perl, which is licensed under GPL-2-only.
> I've asked Sean Whitton about it on IRC and got the following answer:
>
> 23:45 < spwhitton> dogsleg: we don't actually derive code from dh-make-perl -- dh-make-perl's code is included as a library.  so I think the licensing is okay.
> 23:45 < spwhitton> dogsleg: there are very small number of lines that are actually copied directly; probably less than copyrightable.

Please ask participants' permission before quoting from IRC channels
into permanently-recorded formats like the Debian BTS (in this case, I
would have given permission).

> I cannot agree with this summing-up. Namely, I cannot understand what
> proportion of code should be to be considered copyrightable.

IANAL, but AIUI, code that is less than ten lines long is not
copyrightable -- the FSF do not require copyright assignment for
contributions to GNU projects that are less than ten lines.

Until reading your e-mail, I thought that the actual code copied from
src:dh-make-perl into src:dh-make-elpa was less than ten lines.  But it
looks like I was wrong about that.

> As it is put in manpages of dh-make-elpa(1), "a great deal of the
> library code used by dh-make-elpa, and its object-oriented structure,
> comes from dh-make-perl(1), written and maintained by the Debian Perl
> Group."
>
> First, it is not clear what constitutes a library here.

What this text means is that dh-make-elpa imports dh-make-perl as a
library.  That code is not contained in src:dh-make-elpa.

> Second, classes from DhMakePerl are in fact used in DhMakeELPA (as
> base classes):
>
> $ rgrep DhMakePerl
> lib/DhMakeELPA/Config.pm:use base 'DhMakePerl::Config';
> lib/DhMakeELPA/Command/Packaging.pm:use base 'DhMakePerl::Command::Packaging';

According to the FSF,[1] the GPLv3 is not compatible with the GPLv2.  So
it looks like I am not allowed to derive classes from DhMakePerl and
license the new classes as GPL-3+.

I've updated d/copyright to license dh-make-elpa under GPL-2 only, since
that's all that is permitted.

> Nevertheless, let's take a look into some code. For example,
> DhMakeELPA.pm. It contains only one subroutine, run, and the
> difference with the same subroutine from DhMakePerl.pm is as follows:
>
> sub run {
>      my ( $class, %c ) = @_;
>
>      unless ( $c{cfg} ) {
> -        my $cfg = DhMakeELPA::Config->new;
> +        my $cfg = DhMakePerl::Config->new;
>          $cfg->parse_command_line_options;
> +        $cfg->parse_config_file;
>          $c{cfg} = $cfg;
>      }
>
>      my $cmd_mod = $c{cfg}->command;
>      $cmd_mod =~ s/-/_/g;
> -    require "DhMakeELPA/Command/$cmd_mod.pm";
> +    require "DhMakePerl/Command/$cmd_mod.pm";
>
>      $cmd_mod =~ s{/}{::}g;
> -    $cmd_mod = "DhMakeELPA::Command::$cmd_mod";
> +    $cmd_mod = "DhMakePerl::Command::$cmd_mod";
>
>      my $self = $cmd_mod->new( \%c );
>
>      return $self->execute;
>  }
>
> So, since almost the whole DhMakeELPA.pm is an edited copy of
> DhMakePerl, is this part of code copyrightable? If so, then it should
> come under GPL-2-only umbrella, not GPL-3+.

I don't know if this counts as copyrightable or not.  But the point is
moot, because of the above.

[1]  https://www.gnu.org/licenses/license-list.en.html "Please note that
GPLv3 is not compatible with GPLv2 by itself."

-- 
Sean Whitton

Attachment: signature.asc
Description: PGP signature


Reply to: