dshahin has asked for the wisdom of the Perl Monks concerning the following question:

I work for a company that includes the perl interpreter with our product, written entirely in perl. The people in charge want to follow the "gated community" model of software development. That is, you have access to the source code only if you buy the product. The logic is that they like the collaborative model of Free software, but they refuse to put their valuable IP out there for the world, because as a software development company, the code is their major asset. We frequently use and distribute some CPAN modules, and inherit and subclass those that are practical. Are we violating the GPL or Artistic with these practices? More importantly, if I inherit from a GPL'd class, am I ethically bound to contribute my derived class, even if I don't change any of the original code?

This may seem obvious to many of you, so I appreciate any wisdom you see fit to bestow...

Replies are listed 'Best First'.
Re: ethical software development
by Fastolfe (Vicar) on Jan 12, 2001 at 02:38 UTC
    You can do whatever the hell you want with code copyrighted by you. If you do not own the copyright on all of the code you use (such as the inclusion of GPL'ed code within your own code), then you are subject to the lowest-common-denominator of licenses of the copyrighted works you are using.

    Simply using other Perl modules doesn't count. You may be bundling them with your own code, but your product is not composed of a derivative of their code, you are simply re-distributing their code without modification. Even if you do modify their code, by distributing it you are simply releasing your modifications under their license (the GPL). This in no way "infects" your application.

    Generally the code is yours to do with as you please, unless you have cut/pasted code written by somebody else into your own application, at which point (assuming it's GPL'ed), it's illegal for you to re-distribute the result without GPL'ing it in turn.

      Totally right, my take is that as long as you dont place a more restrictive license upon the GPL'ed components you are fine. So for example if you modify them then you may not place a more restrictive licence upon your mods as they then form part of the GPL'ed whole. If however you -use- them within your code (as in 'use' them) then your code can have what ever license you want.
      --

      Zigster
Re: ethical software development
by Hrunting (Pilgrim) on Jan 12, 2001 at 02:59 UTC
    I won't divulge the name of the company, but a year or two ago, we purchased a license for a software program written in perl to have access to their "source" code (the code they gave you without a license was severely obfuscated, and it was LONG).

    What we found was that, in order to avoid having to redistribute modules with their code, they had simply taken the relevant parts they needed from perl modules and simply included them, verbatim into their code. Now, I'm not sure what the licenses say about that, but I'm pretty sure that that particular practice is dead wrong.

    As for this specific case, IANAL (ooo...), but I would think that as long as you're not selling the actual interpreter and modules, then you've got nothing to fear. You're allowed to sell perl code. Package the two parts separately, one you pay for (yours) and one you don't (everyone else's).

    But just remember, once they have your hands on the perl code, it's kind of hard to stop them from deciphering it, especially if you're using modules which must be called by their names. If they really want to keep managed control of their source, they need to use a compiled language. In my earlier example, we actually did a fair amount of hacking on their code using their munged stuff, simply by tracking which vars went where.

      As for this specific case, IANAL (ooo...), but I would think that as long as you're not selling the actual interpreter and modules, then you've got nothing to fear. You're allowed to sell perl code. Package the two parts separately, one you pay for (yours) and one you don't (everyone else's).

      The GPL puts no restrictions on selling code (the linux distributors would be out of business if this were the case). The GPL is concerned with the distribution of software. Check out http://www.gnu.org/philosophy/selling.html.

      ----
      Coyote

Re: ethical software development
by Coyote (Deacon) on Jan 12, 2001 at 03:27 UTC
    Just out of curiosity, how are you avoiding releasing the source code of your product to your customers? Since it is written entirely in perl, don't you have to give the customer access to the source so they can run it?

    As far as the GPL goes, you can attach any sort of license on your code that you would like as long as you are not including GPL'd in your own.

    note: I am only commenting on the GPL. I am not familiar enough with the Artistic License to comment on it.

    ----
    Coyote (aka: Rich Anderson)

Re: ethical software development
by TGI (Parson) on Jan 12, 2001 at 06:53 UTC
    I'm not even sure how the GPL applies to Perl and other interpreted code. The provisions that require distribution of source only come into effect when one distributes binary or object code.

    It's even less clear to me how the Artistic License applies. I'm tired and all this legalese is confusing.

    IANAL, but it seems a weasel could choose to use the GPL for modules that are dual licensed, and do whatever s?he wants, because s?he won't be distributing binaries.

    It seems to me that the way to be ethical is to give something back. Share bug fixes to modules you use. Perhaps you could write some docs on how to use any modules you use and share them. Maybe your company could fund the developers that work on the modules that are central to your project.

    Don't listen to me, I'm a moron.
    TGI says moo with Minor Updates.

      If you read item #1 of the GPL that you linked to it talks about the source code itself, not any executable or binary files.

      The Artistic license talks about a "Package", which I'd say is pretty obviously to mean the entire tarball or zip file.

      I'd have to agree with the sentiment that the ethical thing to do is to give something back-- it doesn't take much imagination to figure out some good ways to do that. :)