Hello, I work on Pharo, an open source derivative of Smalltalk. Pharo is licensed under MIT hence most of my work needs to be licensed also under MIT.

However, time to time I have some projects in my free time that I made for my personal usage or for friends, and in those cases I am not OK with my work being used by for-profit project not giving anything back. I would very much prefer to use GPLv3 on those cases, but my understanding of licensing is very poor and I have been told there is a “virus” behavior on GPLv3 that may prevent people to use at all what I do, and that’s not my intention.

Do you have any advice how to handle this?

  • breadsmasher@lemmy.world
    link
    fedilink
    arrow-up
    6
    arrow-down
    1
    ·
    edit-2
    1 year ago

    Not 100% sure on the “virus” thing you mentioned but I can make an assumption.

    One license type (I think its GPL3) requires any software which includes GPL3 code must also be licensed as GPL3 and thus all sources made public. You can’t take the open code, use it and then close off your own source. If I am remembering correctly

    This would mean commercial applications which want to remain closed source wouldn’t be able to use that licensed code unless they were to then opensource their own code as well. So it wouldn’t prevent other open sourced, same licensed software being able to use it

    • duncesplayed@lemmy.one
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      Sort of. And this “viral” nature applies to all copylefted licences (GPL1, GPL2, GPL3, AGPL, CC-SA).

      You can take GPL3 code, use it, and then close off your own source, as long as it’s for private purposes. What you can’t do is then distribute it under different terms. The GPL says that if you take GPL code, modify it (make a “derivative work”), and then redistribute it, you must redistribute it under the same terms that you got the original code from. So your users must have the same rights that you had when you got the original code.

    • estebanlm@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      arrow-down
      3
      ·
      1 year ago

      this is the “virus” thing explained (by chatgpt, heh, but this is exactly what I heard) : Inheritance and Derivative Works: In object-oriented programming, inheritance allows you to create new classes based on existing classes, inheriting their attributes and behaviors. When using GPL-licensed code, whether GPLv3 or LGPLv3, any derived classes or subclasses created within your project will be considered derivative works. As a result, if you choose to distribute or publicly release these derivative works, they must comply with the licensing terms of the original GPL-licensed code.

      • duncesplayed@lemmy.one
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        That’s not really a good explanation. The concept of a “derivative work” in copyright law is unrelated to object-oriented technology, and the GPL is mainly applied to non-OO code anyway.