http://www.perlmonks.org?node_id=146015

I was reading over the GNU General Public License a couple days ago and began to wonder how it applies to Perl modules. It has been my perception that the vast majority of modules on CPAN use the GPL but I haven't heard of any discussions regarding this issue. Quick searches on the subject, both here and on google, turned up nothing.

While I am not a copyright lawyer (you had to know that was coming ;) it seems that selling code that uses GPL'd modules is justifiable because you are doing just that, selling the code that uses the modules, not selling the modules themselves. In addition there is also the approach of charging for customization/installation of a script that uses a GPL'd module. However there are other conditions of the GPL that come into play.

1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

Would this require that you email the client a copy of the GPL with each module installation? or is this already covered through some other means?

I'm interested in hearing what procedure most monks use when installing GPL'd modules or selling code that uses such modules. Has anyone ever encountered problems in this area? or is there some aspect of this issue that I have totally overlooked? Thanks in advance for all of your replies.

  • Comment on Using GPL'd Perl Modules in Commercial Software

Replies are listed 'Best First'.
Re: Using GPL'd Perl Modules in Commercial Software
by IlyaM (Parson) on Feb 17, 2002 at 18:26 UTC
    Vast majority of Perl modules are dual-licensed under Artistic and GPL.

    As for your questions. Read GPL FAQ. It should answer most of them.

    --
    Ilya Martynov (http://martynov.org/)

Re (tilly) 1: Using GPL'd Perl Modules in Commercial Software
by tilly (Archbishop) on Feb 18, 2002 at 03:39 UTC
    IANAL and this is not legal advice.

    One of the big grey areas in the GPL is the question of what a "derivative work" is. What I have heard is that there is rather little case law on this question, and so there are a lot of question marks. Lots of those question marks are about what does and does not constitute combining components into one whole work.

    This memory is verified by the GPL FAQ which says that:

    What constitutes combining two parts into one program? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

    If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

    By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

    The distinction between interacting but separate and combined is very fuzzy. But legally it matters a lot because it is the line between where you have copyright over the whole, and where you don't. Since the GPL by structure only of gives back some permissions taken away by copyright law, unless copyright applies the GPL has no effect.

    If this seems very arbitrary, it is. After all copyright started in the English-speaking world as a grant of control to authors so that publishers could get what they used to get through censorship laws...

Re: Using GPL'd Perl Modules in Commercial Software
by kal (Hermit) on Feb 17, 2002 at 18:37 UTC

    Just a quick moan:

    it seems that selling code that uses GPL'd modules is justifiable because you are doing just that, selling the code that uses the modules, not selling the modules themselves.

    There's nothing wrong with selling GPL'd modules: the GPL does not state that you have to give software away for no cost, only that you must make the source code reasonably available.

    The other nit, why are you worrying about having to supply a copy of the GPL? You can't inform a user of their rights without giving them the licence: this isn't GPL specific; the same applies with any other licence.

      There's nothing wrong with selling GPL'd modules: the GPL does not state that you have to give software away for no cost, only that you must make the source code reasonably available.

      According to the Faqs (Thanks to IlyaM for the link :)...

      Except for one special situation, the GNU General Public License (20k characters) (GNU GPL) has no requirements about how much you can charge for distributing a copy of free software. You can charge nothing, a penny, a dollar, or a billion dollars. It's up to you, and the marketplace, so don't complain to us if nobody wants to pay a billion dollars for a copy.

      I was under the impression that the GPL specified you could only charge a "reasonable rate" for distributing the software. I was obviously wrong about this and your first statement is correct.

      The other nit, why are you worrying about having to supply a copy of the GPL? You can't inform a user of their rights without giving them the licence: this isn't GPL specific; the same applies with any other licence.

      I don't think I fully understand what you're saying here. Surely you're not claiming that I shouldn't supply a copy of the license because if they do not know their rights, they can't use them?

        The other nit, why are you worrying about having to supply a copy of the GPL? You can't inform a user of their rights without giving them the licence: this isn't GPL specific; the same applies with any other licence.

        I don't think I fully understand what you're saying here. Surely you're not claiming that I shouldn't supply a copy of the license because if they do not know their rights, they can't use them?

        No, I'm not saying that at all!! My point was, whenever you distribute software, you always need to tell people what rights they have, and distribute the licence with it. This isn't a problem of the GPL: the requirement of the GPL (and all other licences!) is that you inform the user of the agreement they're making before they use the software.

Re: Using GPL'd Perl Modules in Commercial Software
by cjf (Parson) on Feb 17, 2002 at 19:54 UTC
    Also from the Faqs...
    In an object-oriented language such as Java, if I use a class that is GPL'ed without modifying, and subclass it, in what way does the GPL affect the larger program?

    Subclassing is creating a derivative work. Therefore, the terms of the GPL affect the whole program where you create a subclass of a GPL'ed class.

    If I interpret this correctly, this means you can't use a GPL'd module in a non-GPL'd program, does it not?

      That would seem to depend on the definition of 'use'. The way I took it is that
      use Foo; my $foo = Foo->new();
      is ok since I'm just using the Foo object as is. Where something like
      package Foo::Bar; use base("Foo"); sub some_method_in_foo_that_i_override { my $self = shift; # stuff } 1;
      would be caught by this clause. Foo::Bar is based upon the code in Foo...not just making use of the Foo object as it was distributed. See the subtle difference?

      /\/\averick
      perl -l -e "eval pack('h*','072796e6470272f2c5f2c5166756279636b672');"

        Yes, I believe this subtelty is one reason why the LGPL exists. However the wording (shared library) makes me think that it is truly the more appropriate license (vs. GPL).

        --
        perl -pe "s/\b;([st])/'\1/mg"

Re: Using GPL'd Perl Modules in Commercial Software
by belg4mit (Prior) on Feb 17, 2002 at 18:57 UTC
    Yes, I believe we provided full source and a copy of the GPL in dox as well as a list of everything to which it applied.

    If this is insufficient you might consider soliciting the author to relicense under LGPL.

    --
    perl -pe "s/\b;([st])/'\1/mg"