Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^12: Why non-core CPAN modules can't be used in large corporate environments.

by itub (Priest)
on Dec 07, 2005 at 14:46 UTC ( [id://514849]=note: print w/replies, xml ) Need Help??


in reply to Re^11: Why non-core CPAN modules can't be used in large corporate environments.
in thread Why non-core CPAN modules can't be used in large corporate environments.

About integrating code into a company codebase: from what I gather from my reading of FSF documents, you can do absolutely whatever you want with the code (that's what they call "freedom zero" and "freedom one"), as long as you don't redistribute it. If you redistribute it, then you have some constraints which are specified in the license (some licenses require attribution, some licenses require you to give the same freedoms to the recipient, etc.)

Replies are listed 'Best First'.
Re^13: Why non-core CPAN modules can't be used in large corporate environments.
by tirwhan (Abbot) on Dec 07, 2005 at 15:19 UTC

    I assume you're referring to the GPL here, and you're wrong. Read section 1 and 2 of the GPL, you may use and modify any code however you see fit, provided you keep the license intact, make changes clearly visible and retain the copyright notice. Taking bits of GPL software into your codebase is such a modification. This does not mean your codebase suddenly becomes or needs to become GPL'ed itself, only the parts of the program that were originally under the GPL stay under the GPL. If you distribute your derivative work (i.e. the codebase into which you've integrated the GPL'ed code, or parts thereof, depending on the integration * ) it does need to be licensed under the GPL, but you are right, this does not need to happen if you use the work internally only.

    As an aside, the situation is a bit interesting for independent contractors who write code for other companies and uses GPL'ed software as the base, because this does constitute a distribution of derivative work and as such their work needs to be released under the GPL.

    * Update: I should probably clarify this before someone jumps on me. If you decide to use a GPL Perl module in your proprietary content management system and want to distribute said CMS, this does not mean you need to license the whole CMS under the GPL, unless the CMS can only work with the GPLed software and not with an alternative module (i.e. the module is at the heart of the CMS functionality and essential to it). However, if you take a piece of a GPL module and put that into your own module you are more than likely creating a derivative work, and as such your module needs to be licensed under the GPL. Feel free to correct me on this if you feel I have misunderstood the GPL, but this is how I believe it pertains to Perl modules/programs.


    Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan
      But if you don't distribute the software, it's all theoretical. If I modify John Doe's module to use it to run my website, for example, and I never distribute the modified version, who cares if I posted the list of modifications and copyright notice in the source files (that only I ever see)? That's a formality that only becomes meaningful when you publish the modified version. Otherwise it's just paperwork for the sake of paperwork.

        That's the entire point of why I'm making such a fuss, it can very easily become more than just theoretical nonsense. If you just copy OS code into your internal application and do not attribute it correctly, your manager/successor/etc. may come along, see this code and also find out that it is being distributed for free by someone else they don't know (who happens to be the original author John Doe, but how is your manager supposed to know that). Your company then decides to sue John Doe for copyright infringement and he is left with the mess all because you forgot/didn't care to include his copyright in the code. This is a very real danger, and because of that you should always include attribution (aside from the fact that it is factually illegal not to do so and just plain disrespectful towards John Doe who after all has done a lot of work which you now profit from).

        There are all sorts of caveats you can bring to this such as you may be the only one who ever sees/handles the code, you think you can always tell your manager later who wrote this subroutine or you don't think your company would ever be so mean as to sue someone. To which I reply this is real life and shit happens, you should attribute code for the same reason you check for success on an open call, it may work 99% of the time but the 1% it doesn't work it'll blow up in your face and someone will get hurt. Also, we were talking about code that is integrated into a corporate codebase where the developer has little to no control over what happens with the code afterwards. If all you have is a website which you tinker with on your own and you mix in another person's code without attribution noone will find out or care and Richard Stallman won't come round your house to kneecap you. But if your website becomes hugely popular and you sell it off to $megacorp for $megabucks and suddenly the authorship of this code is in question things become different (okay, Richard still wouldn't kneecap you because he's a nice guy, but he'd have a point to ;-).

        And IMO it's just plain ethically wrong to take the code from someone who is making it freely available, and has gone out of his way a lot to help you with it and then not do the single thing he asks in return, which is that you properly attribute the code to him. I don't know if ethical issues are just theoretical for you, they aren't for me.


        Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://514849]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2024-03-29 01:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found