|Think about Loose Coupling|
Perl modules and the GPLby Tanktalus (Canon)
|on Feb 01, 2010 at 19:49 UTC||Need Help??|
Tanktalus has asked for the
wisdom of the Perl Monks concerning the following question:
As I'm arguing with our local lawyers to get "permission" to ship perl modules with a product (up to now, I've only ever used perl internally, my new job involves shipping perl code to customers to perform tasks, and damnit, some of those modules make my life so much easier), I'm having to pay attention to licenses.
The first problem I encountered was a module with no license explicitly allowing re-use. Nothing in its Makefile.PL, or its README or anywhere that I can see would allow me to re-use Sort::Topological. Email to its author has gone unanswered. Lawyer's answer: no way.
The basic question I have here, though, is the GPL. I understand how, in C, one's application can "link to" or "load" a GPL library, thus triggering GPL obligations, I'm just not clear on how this affects Perl code. If said code were really solely available under the GPL, and had some XS code, then, theoretically, it's perl that is loading, not me. And, in general, is one triggering GPL obligations simply by "use"ing it? It seems odd to me.
Now, as far as I understand, this aspect of the GPL has never been really tested in court in any language, nevermind perl. Not that my employer's lawyers really are itching to be a test case. So I need to abide by their advice. And, thankfully, most code on CPAN is dual-licensed (though not always obviously so - sometimes it's in the POD, which makes it very difficult to abide by the lawyer's rules that I can't download the code without corporate approval, and I need to tell them what license it's under...). So, hopefully the question doesn't really come up. So this may be more academic than anything.
I also realise that this is more a legal question than a technical question. Yet I imagine most modules have been put up on CPAN without a lawyer's advice on what license would be appropriate, and thus may be of interest to those.
I'm basically at somewhat of a loss to figure out what, if any, advantage the dual license under GPL gives. Without it, can a GPL app not use our modules? With it, does it prevent proprietary apps from using it (ignoring the Artistic license for a moment)? Or is it there "just in case" someone has that different interpretation? What confuses me more is that among the list of modules I have to ship is DBD::DB2 which has a completely different license than anything else that I've encountered before (apparently, IBM pays someone to develop the code, because only IBM could come up with an open-source license that hard to comprehend). And yet, it depends on (and thus links to) the optionally-GPL DBI code. Would a GPL app not be able to use DBD::DB2, while being able to use DBI and DBD::CSV? It just has my head spinning on how this all interacts.