We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28042 ☆ A M B ☆
    • 24,524 Posts
    Perhaps an example will help.

    A company built a router. They used Linux for its OS, and did some hacks to the GPL utilities. Then they sold those routers, but did not release the source to their versions of the utilities to the people who bought them. They were contacted with a warning that they were violating the GPL, and made a download of the code available on their website. They didn’t have to do it that way, they could have sent everybody who bought the router a CD with the source code.

    Now if I bought one of those routers, got the source code and made a few modifications to suit myself, nobody can come to me and demand my modifications. But if I start selling (or giving away) my own version of the router, then I have to let my customers have the source code.
      Studying MODX in the desert - http://sottwell.com
      Tips and Tricks from the MODX Forums and Slack Channels - http://modxcookbook.com
      Join the Slack Community - http://modx.org
      • 19986
      • 90 Posts
      They only need to become GPL if you distribute them. Nobody can come up to you and demand them. That is one of the common misunderstandings of the GPL.

      Thanks, it’s a lot clearer knowing that code only becomes GPL if you distribute it.

      Because a GPL work is copyrighted, a licensee has no right to modify or redistribute it (barring fair use), except under the terms of the license.

      I’m still unclear as to when code becomes tied to the GPL license. Does simply using the API, i.e. calling modx functions from a snippet, require the snippet to beGPL’d? Could I write a snippet for a client for them to sell on to customers (with modx as an installation requirement)?
        • 31337
        • 258 Posts
        Quote from: steph at Dec 17, 2006, 01:36 PM

        Here’s an example to illustrate my questions: You use modx to write produce a web site for a client. You develop a number of new and unique snippets for them, to their requirements. You give all code to them by uploading it to their server (or you host it yourself, in which case they’d still have a claim on the snippets that they paid for).

        Again, as I said previously, where they’re hosted makes no difference. If you delivered work-for-hire, and used GPL-based code, that’s considered distribution and your clients are allowed by the license to the copy of the GPL code you used and/or modified

        Quote from: steph at Dec 17, 2006, 01:36 PM

        Are the snippets GPL?

        That depends. If the snippets are 100% your own code and don’t use any GPL code, then you can license them however you want. BUT..if your snippets use pieces of existing GPL code, then they must be GPL’ed as well

        Quote from: steph at Dec 17, 2006, 01:36 PM

        If all code is under the GPL, someone could approach them and ask for all the source code that powers their website, snippets included. So they pay for a great bit of functionality to make their site unique, and they have to give it any competitor that asks?

        This is absolutely false. As Susan said, the GPL in no way requires this. On the other hand, if your clients were to re-sell the work that you did, they would be obliged by the GPL to have the same commitments you have in distributing the work with the source code.

        Quote from: steph at Dec 17, 2006, 01:36 PM

        In other words, when does a snippet become part of modx and hence subject to the GPL? A snippet could include php code that doesn’t even interact with the modx API. So surely that doesn’t have to be GPL’d. But if a snippet calls even one php function from the modx API, does it have to be GPL’d?


        I’m still unclear as to when code becomes tied to the GPL license. Does simply using the API, i.e. calling modx functions from a snippet, require the snippet to beGPL’d? Could I write a snippet for a client for them to sell on to customers (with modx as an installation requirement)?

        You can call functions from a GPL library and still not be bound by the GPL -- look at how NVidia distributes binary proprietary kernel modules for Linux. But if you use actual source from a GPL program, then your code *has* to be GPL’ed as well.
          • 19986
          • 90 Posts
          You can call functions from a GPL library and still not be bound by the GPL -- look at how NVidia distributes binary proprietary kernel modules for Linux. But if you use actual source from a GPL program, then your code *has* to be GPL’ed as well.

          Ok, great. That makes perfect sense.

          To summarise:
          - I can use modx to develop sites for clients. I can host the site or deliver it to the client to host and neither of us have to release any code, including modified modx code, unless we want to.
          - If I write snippets as part of developing a site for a client, either of us can sell the snippets. We don’t have to distribute them on GPL because they only call the modx API and don’t change any modx code.
          - If I modify the modx code (i.e. anything shipped with the modx tarball) for any reason I can choose to distribute my changes under the GPL, but I can’t sell them.

          Btw, I already use modx and contribute enhancements back to the community, it’s just good to know where I stand. Thanks all.
            • 31337
            • 258 Posts
            Quote from: steph at Dec 17, 2006, 05:34 PM

            To summarise:
            - I can use modx to develop sites for clients. I can host the site or deliver it to the client to host and neither of us have to release any code, including modified modx code, unless we want to.

            I assume that your statement includes making the modx source code (and any changes) available to your customers

            Quote from: steph at Dec 17, 2006, 05:34 PM

            - If I write snippets as part of developing a site for a client, either of us can sell the snippets. We don’t have to distribute them on GPL because they only call the modx API and don’t change any modx code.

            Selling has nothing to do with this issue. This is about *distribution*. Doesn’t matter if you give them away or charge a million bucks for your code.

            Quote from: steph at Dec 17, 2006, 05:34 PM

            - If I modify the modx code (i.e. anything shipped with the modx tarball) for any reason I can choose to distribute my changes under the GPL, but I can’t sell them.

            No. You can sell a "steph-modified" version of modx if you want. Hell, you can take the modx code, strip out all references to modx and charge a million dollars for the "Awesome Steph CMS". The GPL lets you do that. But you *have* to make the source code available any time your distribute GPL code.

            Quote from: steph at Dec 17, 2006, 05:34 PM

            Btw, I already use modx and contribute enhancements back to the community, it’s just good to know where I stand. Thanks all.

            Awesome. Glad to have you as a part of the community.
              • 19986
              • 90 Posts
              Still getting GPL and sales confused undecided So, they should be:

              - I can use modx to develop sites for clients. I can host the site or deliver it to the client to host and neither of us have to release any code, including modified modx code, unless we want to. I have to make the modx code available to the client, or at least tell them where to find it.
              - If I write snippets as part of developing a site for a client, we don’t have to distribute them on GPL because they only call the modx API and don’t change any modx code. We can distribute them using a closed-source commercial license.
              - If I modify the modx code (i.e. anything shipped with the modx tarball) for any reason I must use the GPL if I choose to distribute the changes.
              - We can make money from any of the above because the GPL is only concerned with distribution.
                • 31337
                • 258 Posts
                Bingo! I think that’s a great summary of the issues. I’ll bookmark this thread (and your last post) for the next time the GPL discussion comes up.
                  • 25663 MODX Staff
                  • 12,272 Posts
                  New sticky topic created: http://modxcms.com/forums/index.php/topic,10183.0.html

                  Thanks for starting this discussion. (Should probably be added to the wiki/faq)
                    Ryan Thrash, MODX Co-Founder
                    Follow me on Twitter at @rthrash or catch my occasional unofficial thoughts at thrash.me
                    • 22064
                    • 5 Posts
                    Quote from: steph at Dec 18, 2006, 05:18 AM

                    Still getting GPL and sales confused undecided So, they should be:

                    - I can use modx to develop sites for clients. I can host the site or deliver it to the client to host and neither of us have to release any code, including modified modx code, unless we want to. I have to make the modx code available to the client, or at least tell them where to find it.
                    - If I write snippets as part of developing a site for a client, we don’t have to distribute them on GPL because they only call the modx API and don’t change any modx code. We can distribute them using a closed-source commercial license.
                    - If I modify the modx code (i.e. anything shipped with the modx tarball) for any reason I must use the GPL if I choose to distribute the changes.
                    - We can make money from any of the above because the GPL is only concerned with distribution.


                    You are right.

                    But, I don’t know why do you allways refer to deliverables of source code, when you must deliver it anyway - otherwise nothing will work. If I’m not mistaken, PHP is not a compiled language, and it is always delivered as SOURCE. Those issues about the code are important for C programmers, not for PHP programmers. Also, you are confusing all the time your obligations to the client and your obligations to MODx. Those are sparate things and you should not combine them. The context is different - for MODx you are a customer, for your dustomer you are a distributor. (Here, when I say "you", I don’t mean you personally, but in general, to all of us on this topic)

                    To shorten - you have obligations to MODx only and ONLY if you want to deliver your product under the name of MODx. It means, that ONLY if you download MODx v.0.9.5 and you add your template, and you add your snippets, and you eventually change the code of core MODx, AND YOU WANT TO KEEP CALLING IT MODx, then you have obligations to MODx development team. This is normal, isn’t it? Imagine that everybody here starts releasing his own MODx. Who would support such a software. This is why you should coordinate with MODx team. This is why if you find a problem in the core MODx, you should always inform guys here. This is why you should always download the official verion, etc, etc. Simple as that.

                    On the other hand, you con download MODx, do whatevery you like and change it as much as you like, and change the license - but you MUST NOT CALL IT MODx. Yet you have to explain in your license and other documents that you have developed your system under the MODx platform.

                    The example is Oracle Application Server. It is one of the most expensive J2EE servers. Oracle has embedded Apache Web server inside and it is now an integrated component of OAS. They have taken Apache 1.3, but they have developed many modules that are specific for Oracle Application Server. Do you think you can get the source for those modules??? They have changed the name of that HTTP Server too and they call it Oracle HTTP Server. Do you think there is the source available? Wel NO ! There is no source and you have to pay for that software to use it. The only thing they did in regard to Apache is that they really mention in one miserable file that it was originally an Apache server.

                    It is not true that you have to publish the code for anything you develop on Linux. The story about the router is not correct in that sense. Do you think that you can obtain the sorce code of Oracle Database 10g that is running on Linux? NO! You cannot. Although, the platform where the database runs is GPL licensed indeed. I have a huge list of proucts that run on GPL platforms and are not GPL.

                    --
                    Igor

                      • 19986
                      • 90 Posts
                      Are you saying that if I modify the modx code I must use the GPL if I choose to distribute the changes under the name of modx, but if I rename the software I can distribute it closed source with a commercial license?