Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
For the past three years, I have been working on a project to create a object oriented interface to the GCC compiler, the GCC Node Introspector.

This turned into a perl project after realising the power of perl for handling strings and complex data structures. Also the number of tools that link into perl are amazing.

This linking of programs can to GPL code can be very tricky, and full of problems as a detailed review of the GPL and LGPL can point out.

In this meditation, I will point out what I see as some bumpy spots for Perl and GPL, and clauses that might have been overlooked for too long.

Let us review the the GPL and its implications for linking to Perl :

GPL

<quote> This General Public License does not permit incorporating your program into proprietary programs.

If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library.

If this is what you want to do, use the GNU Library General Public License instead of this License.

</quote>

GPL Comment

incorporating is a term that implies to me containment,

If I write a proprietary program that uses the output of the GPL Code is that containment?

If I open the a pipe to another program, and call functions in it using data from a GPL program, is that not what a linker does, but via a different method?

Lets look at the LGPL 2.1

<quote>We use this license for certain libraries in order to permit linking those libraries into non-free programs.

When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library.

The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom.

The Lesser General Public License permits more lax criteria for linking other code with the library.

</quote>

LGPL Comment

Now this does not cover linking via RPC/IPC or Shared Memory or File.

Let alone CORBA or XML-RPC/SOAP.

This comes done to the definition of linking, is linking only with the linker, or is linking a method of passing data between function calls?

Can I call a GPLed Function in GIMP via a perl script webpage, but I cannot link to it?

LGPL part 2

<quote> 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. <quote>

LGPL Comment part 2

distribution conditions are incompatible with these Does that cover PAL which gives you more freedom. Can I link via perl and all of a sudden, there is no more GPL?

By these terms, every perl script which links in with GPLed GIMP via script would require such permission to be asked.

The perl script is called from an apache server, goes across all types of close-source maybe even patented software sitting on routers and switches, and then gets displayed in a microsoft browser, only to call a javascript function that uses the microsoft api to draw on some graphic card.

As you can see, the network has changed the meaning of linking.

mdupont

(Updated to add a readmore, better formatting and an introduction.)


In reply to GPL and LGPL linkage to Perl by mdupont

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others having an uproarious good time at the Monastery: (4)
    As of 2021-04-11 16:34 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found

      Notices?