in reply to Re^6: 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.

Well, if you talk about copying code and sneaking it into another codebase then it's not too much to ask whether you've observed the author's copyright, is it? A simple yes or no will do.


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
  • Comment on Re^7: Why non-core CPAN modules can't be used in large corporate environments.

Replies are listed 'Best First'.
Re^8: Why non-core CPAN modules can't be used in large corporate environments.
by stvn (Monsignor) on Dec 06, 2005 at 22:56 UTC
    Well, if you talk about copying code and sneaking it into another codebase then it's not too much to ask whether you've observed the author's copyright, is it? A simple yes or no will do.

    Well, the problem is that Devel::Trace does not seem to actually have a copyright or license attached to it at all. How can you honor what does not exist?

    I also have to agree with Moron that you are jumping to conclusions. Open Source (IMO) has grown and flourished the way it has because people share code and knowledge freely. I think it is understood that if you release your code open source, the possibility exists that people will use it in ways you never intended, which can include "sneaking it into another code base". And if you put code up on CPAN (and it gets mirrored all over the globe) then it is ridiculous to expect that you can retain any control what so ever over that code and how it is used.

    I also think you should read Moron's post a little closer.

    ... just copy the parts or even ideas you need from the module rather than treating its use as an all-or-nothing proposition and suddenly the developer is king again - I used that method to sneak Devel::Trace into a Q/A environment.

    I am of the opinion that "just copying the parts or even ideas you need from a module" is exactly in line with the spirit of open source development. Giving credit to the original author is always good manners, however, not always possible (or advisiable) in large corporate environments (especially the politically charged ones Moron seems to be in).

    In short, I think you are nitpicking, and need to take a step back.

    -stvn
      ...Devel::Trace does not seem to actually have a copyright or license attached to it at all. How can you honor what does not exist?

      That's not how copyright works. If you are the original author of a "work", you automatically have copyright of that work and anyone wishing to use it (within the realm of copyright law) needs your permission for that use. As copyright holder you can to a large extent govern how people can use your work, for example you can put the work in the public domain and thus remove the copyright obligation for your users (it is however not possible in some countries to give up your copyright, you can just relinquish the rights it gives you). Every open source/free software license I know works from that fact and voluntarily gives up some of the copyright holders rights (for example the GPL works by giving up these rights only under certain conditions, which assure that the user/distributor has to give the same rights to their users). No FLOSS license I know gives up the requirement to name the author and attribute the work correctly.

      There is no license file in the Devel::Trace package, true. In theory, this means that noone can copy or use this package without the express consent of the author. Yes, that's correct, without a license the code is copyrighted and its use extremely restricted. In practice, if the author were to sue you over using this package against his wishes, a court would probably (and this is shaky ground already) look at how the package was obtained and conclude that, since it came from a repository of free software without separate legal specification, the user was reasonably assuming the package was free under similar license as other software from this site and the author could not demand damages (though he could demand you desist from using it). I don't think any court would give a user the right to take this work and attribute it to himself.

      Lots of software authors, and I most certainly, will agree that free software is a great thing and sharing knowledge freely is a noble ideal we should all aspire to. It is however most certainly not a good thing to ignore a free software authors copyright and use the code as if it were in the public domain and I for one would be royally pissed if anyone used code that I wrote in that way (I'm not the only one, look at the lawsuits that are being fought and won in defense of the GPL). There are lots of practical reasons for that too, for example, imagine a user takes a piece of free software and integrates it into a commercial project without attribution (I'm not alleging Moron did that btw, I was asking him whether he correctly handled the legal side of "copying"). Some time later a company legal pinhead discovers that the code "they own" is also being distributed for free on the Internet by someone they don't know. The company could then feel obligated to sue this same person (the original author) because they think they own the copyright to this code and it's up to him to prove they do not. Not a situation anyone wants to be in (you've heard of SCO?).

      it is ridiculous to expect that you can retain any control what so ever over that code and how it is used.

      That is not ridiculous at all, but rather written into every license on CPAN. Authors are giving anyone in the world the right to use the code, change it as they see fit, redistribute it and charge for this redistribution. Only a few requirements remain, at core the GPL requires that you make your modifications available under the same license if you distribute them, and the Artistic License requires that you make changes freely available in some form (though you can charge for the distribution of the changes). They both require that you retain the copyright notices on the code. Even the BSD license (which can be viewed as even more liberal than the Artistic License) demands that.

      I am of the opinion that "just copying the parts or even ideas you need from a module" is exactly in line with the spirit of open source development.

      Taking ideas and integrating them into your own code, absolutely. Taking code and using it in your own code, absolutely, as long as you acknowledge the original authors copyright. Copy-pasting non-trivial bits of code into a commercial codebase without proper attribution is not just "bad manners" it is downright illegal and extremely poor behavior. And you can go talk to your company lawyer if you don't believe me, you'd actually be putting your company into a legally extremely vulnerable position if you do not observe the license a piece of free software comes under.

      If you do not agree these things are in the spirit of what you want to do with your code, you can put your code into the public domain. But open source licenses work differently and noone should just ignore that. Am I picking nits? I don't know, the fact that you apparently were not aware of these details makes it worthwhile that I asked IMO


      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
        That's not how copyright works.

        I am sorry, allow me to be more specific.

        Devel::Trace does not seem to actually have a copyright attribution or license file attached to it at all. How can you honor the authors wishes if said author does not express them?
        Now, this is not to say that the lack of copyright means that I think people are free to go running around doing anything they like to the code. I am only pointing out that the issue becomes fuzzy at this point. I know you agree with me on this since you explained very thoroughly the legal issues/problems in your response.

        My real point here is that your nitpicking what Moron said, and bringing up legal questions, when the module itself (even without Moron involved in the equation) stands on already fuzzy legal ground (as you pointed out yourself). Since I am not a lawyer, and I assume that neither are you, nor is Moron, discussing the legality and illegality of someones 'alleged' actions on a perl programming forum seems kind of silly.

        It is however most certainly not a good thing to ignore a free software author's copyright and use the code as if it were in the public domain ...

        And I would never advocate such a thing either.

        However, as an open source author myself, who works for a company which both uses OSS and sponsors the development of OSS, I realize that I am taking a risk by releasing my code open source. Despite any copyright or license I include, my code is out in the world, and I just simply cannot control its use 100%. I would be a fool to think I could.

        Of course my company lawyer (if I had one) would tell me different (afterall, thats his job), but that won't stop some programmer in another country (one maybe where the American/Western legal system has no real bearing) from copying my code verbatim (minus the copyright) and making a million $some_currency with it.

        I highly doubt I would have much recourse in such a situation, and so I have long ago resolved that if it were to happen, oh well. And to tell the truth, I would rather some random programmer (albeit a dishonest one) make $$ off my code than to have a lawyer take my $$ (or my companies $$) directly, while trying to get that money from said programmer (of which I would only see a fraction of after lawyer/court fees).

        Again, let me say, I am in no way advocating that anyone just ignore a software license (OSS or otherwise), I am only trying to point out the reality that IP law concerning software (and especially when it is on a global scope) is a slippery issue at best. Just look at Microsoft's long battle with copyright issues in Asia to see that it's not so straightfoward and easily enforced as you seem to imply.

        it is ridiculous to expect that you can retain any control what so ever over that code and how it is used.
        That is not ridiculous at all, but rather written into every license on CPAN. Authors are giving anyone in the world the right to use the code, change it as they see fit, redistribute it and charge for this redistribution.

        Yes, but they are all just words. Words which are only as effective as the legal might which can be bought to back them up. Words which have limited legal power (if any at all) in many countries.

        Sure, in an ideal world, we would all respect these words, and the rights they give us. But this is not an ideal world, and so theory means very little if it cannot be enforced in practice.

        Now, does that mean that I/you/Moron should ignore these words? Of course not, but MJD (and any CPAN author for that matter) should realize that these "rights" that you speak of, are just not that easily enforced. I mean to start with, you have to discover the violation in the first place (which is the proverbial needle in a haystack), then you have to prove that it is in fact your code (a very non-trivial thing indeed), then you have to fight out the (probably very expensive) battle in court. I would be very suprised if many people had the time and money to do those things.

        Once again, I cannot stress enough that I do not feel that ignoring software licenses is an acceptable practice. But do not for one moment think that the legal system (american or otherwise) gives you some kind of assurance against this rude and illegal practice.

        Am I picking nits? I don't know, the fact that you apparently were not aware of these details makes it worthwhile that I asked IMO

        I am aware of pretty much all of the details you pointed out (although I agree I did not express that knowledge well in my first post). I guess I just don't have as much faith that the theory you speak of can be effectively practiced in a way which doesn't just end up benefiting the lawyers of the world.

        -stvn
        Taking ideas and integrating them into your own code, absolutely. Copy-pasting non-trivial bits of code into a commercial codebase without proper attribution is not just "bad manners" it is downright illegal and extremely poor behavior.

        A few questions arise from that, and since you seem to understand this stuff:

        • Define non-trivial?

          Presumably, copying the word 'if' into my program would require a consultation with the author of the code I took it from?

          How about an if condition?

          What if I change the variable names?

          What about merlyn's is_numeric() function?

          sub is_numeric { ($_[0] & ~ $_[0]) eq "0"; }

          Under what circumstances should I take a consultation or negotiate a licence before using that in a commercial Perl project? And how does this affect commercial organisations using CPAN modules as a whole?

          Where do you draw the line?

        • From what you say above, it would suggest that it's the "copy-paste" operation that is the key here?

          So, if I re-type the code I wish to use, then it's okay?

        • At what point do I have to consult with merlyn if I want to use a Swartzian Transform in my code?

        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
A reply falls below the community's threshold of quality. You may see it by logging in.