This one is something that were brought up a lot by developers including me who are very weary about corporations profiting off of our work for free and this basically put us off from contributing to open source in general.

We get a bunch of dialogues about this such as:

Developers like me: “Many of us who create are concerned about our work being exploited. The possibility of corporations profiting from our open-source contributions without giving back to the community disincentivizes us from participating in such endeavors.”

Open-Source Advocates: “The AGPL exists to mitigate such concerns. It requires derivative works to also be open-source.”

Developers like me: “While I appreciate the intention behind AGPL, there is a loophole - a ‘condom code’ if you will. Even though Linux Kernel prevents such strategies by refusing to merge these changes and that it’s difficult for a singular corporation to force an adoption of a forked version of Linux Kernel, a corporation can fork our much smaller project however and introduce such legal bypass to the copyleft restrictions. This bypass can be justified by them under the guise of extending the software’s capabilities with a plugin interface or an interprocess communication protocol layer, similar to how PostgreSQL allows User Defined Functions. However, I must caution that I’m not well-versed in the legal intricacies.”

When bringing up on non-commercial clause for licensing

Open-Source Advocates: “Disallowing commercial use of your project contradicts the principles of open-source.”

Developers like me: “Well, then perhaps we need a new term, something like ‘Open Code Project’. We can create projects that encourage collaboration and openness while also restricting commercial exploitation.”

So I created this post, because we do need to discuss on a path forward for Open Source in general knowing that corporation can shirk around this restriction and discourage developers like me from participating in open source or open code projects.

Edited to add:

I really want to thank you all for discussing a rather contentious topic and adding your own thoughts to this. I really appreciate everyone’s thoughts into this. I clearly have a lot to do on researches.

  • conciselyverbose
    link
    fedilink
    41 year ago

    I kind of want GPL, but with one extra clause that says that violating the terms of the GPL permanently and irrevocably terminates all right to touch anything else under the same license, including your own code.

    • RandoCalrandian
      link
      fedilink
      21 year ago

      Fat chance. We can’t get the existing terms of GPL to be enforced

      Re: red hat restricting redistribution of GPLv3’d code

  • @federico3@lemmy.ml
    link
    fedilink
    English
    41 year ago

    Software licenses cannot solve every problem and AGPL is still the best option.

    There are many larger problems related to FOSS including freeloading, right of repair, surveillance, lock-in… and they require social solutions rather than new licenses.

  • @MJBrune@beehaw.org
    link
    fedilink
    English
    3
    edit-2
    1 year ago

    Simply put, for works you want to prevent from being commercialized by other companies. Don’t open-source it. Keep it closed source. If you feel like it, put an email address out there and say something like “if you want access to the source, let’s talk.” It requires you to vet everyone who has access but if you are wanting to be that guarded with your code then that’s what you need to do.

    That said you could just BSD/MIT license your code. If your project is small it’s unlikely to even be noticed. In the end, any license you create that offers the source code without applications means it’s open for any corporation to just take. Regardless of the code license. The fact is that you are a small-time developer and don’t have the power of lawyers to counter them. So either open your code for everyone, vet each entity you open the code for, or don’t introduce the headache of dealing with any of this and keep it closed. Tell yourself you will open the source later on after you are done with it.

    Realistically, these are your options. There are plenty of creative commons or such licenses that exist to exclude commercial works but again, lawyers cost money. If you aren’t willing to fight the battle you might as well CC0 the code because that’s essentially what it is.

    • @TheTrueLinuxDev@beehaw.orgOP
      link
      fedilink
      English
      21 year ago

      You sum up what I thought about as well, yep. There are compromises to each license and obviously the loophole that is presented for each one. One of the idea I was exploring is licensing my GUI Toolkit (alternative to GTK and QT) something similar to Community License in Visual Studio (it allows commercial use for personal/small business and if organization is larger than that, then it would have to purchase a separate license.)

      • @MJBrune@beehaw.org
        link
        fedilink
        English
        21 year ago

        Check out Epic’s Unreal Engine License. Essentially after a certain amount of income they require revenue percentages from sales of the product. You could likely do something except as a flat fee rather than a percentage of sales. Again, though, enforcement takes money though. Is your GUI toolkit so revolutionary that people will even use it? It’s more likely to get more people using it if it’s open source but of course, it means you can’t really monetize it to commercial projects.

        • @TheTrueLinuxDev@beehaw.orgOP
          link
          fedilink
          English
          0
          edit-2
          1 year ago

          I don’t think it’s that revolutionary, but there are some things that doesn’t exist in current GUI Toolkit worlds.

          The GUI Toolkit I wrote utilize few things:

          1. It runs on Vulkan and the pipeline use custom developed 2D rendering context, not 3D so there is a significant boost in performance and reduction in computation requirements on both GPU and CPU. Vulkan allows GUI to work on just about any devices made in the last decade and can fallback on CPU using Swiftshader.
          2. I established FFI-JSON to simplify binding for any programming languages to bind to my GUI Toolkit as well as extending the GUI Toolkit itself.
          3. Designed for Buffer-based controls - If you want to load up a 2GB text file into a textbox, it offers a way that it would work without freezing up the program.
          4. Accessibility protocol in IPC - Similar to DBus, but documentations are provided to simplify the process of utilizing such protocol and it’s focusing on cross-platform conventions where Dbus might not be available.
          5. Library itself is Cross-platform and written in C Language, enabling the larger cross-section of compatibility
          6. The project is built for IR linkage purposes hence why the code should be open source, because the code is already open by IR anyway. By offering IR linkage by default rather than Object files or dynamically linked library, IR allows everyone to gain immense performance boost through compiler’s features of auto-vectorization, dynamic dispatch converting to static dispatch when possible, internalization pass and more aggressive dead code eliminations. It’s not unusual to see a 80% reduction in code size through this process and see as much as 10x performance improvement compared to dynamically linked libraries.
          7. Conventions for stylizing/theming the GUI through CSS (the goal is to offer a permanent theming capability in GUI even though it can be a challenge to maintain.)

          That on top of my head, I wanted to have a GUI that focuses on making it easier to extend while keeping it conventional for those familiar with Windows Forms on Microsoft Windows and eventually WPF if time allows.

          That the gist of why I wrote my GUI Toolkit and I have spend 4 years working on it, it’s reaching the point that it could be ready for prime time basically.

          The licenses you brought up is interesting and it could work too.

          • @MJBrune@beehaw.org
            link
            fedilink
            English
            01 year ago

            Okay, now I am interested in learning more about this GUI toolkit even though I am a game developer, not an app developer. Got a website or such?

            • @TheTrueLinuxDev@beehaw.orgOP
              link
              fedilink
              English
              11 year ago

              Currently early atm, but generally, I got the backend code sorted out where we have cross-platform windowing context, vulkan code, accessibility protocol, and so forth. The challenges are the front end GUI, making it looks pretty, it’s still have a way to go.

              And of course the documentation which is still WIP. I wrote other docs sometime like this for C language development community which I have put off for a while since I worked on few projects:

              1. Finish making deliverable for AI Framework to replace Pytorch/Tensorflow that uses IREE Compiler for my client. (IREE Compiler basically takes in your MLIR code and compile that to either SPIR-V shader code, CUDA code, ROCm, or anything else really rather than just mainly CUDA on Pytorch/Tensorflow.) I should have this done by tomorrow, it just making a web for my client that is 90% done and I just have to plug my AI into it.
              2. Work on Melosynthos which is basically a Compiler Generator, it’s about 60% done and can help a lot on building unit tests for GUI Toolkit.
              3. Finish up GUI Toolkit and try to make GUI that takes some inspirations from this
              4. Finish up documentations for that GUI Toolkit
              5. Build a web to demonstrates GUI Toolkit and let people go nut with it.

              The best part is… I solo-develop all of it… facedesk

  • InvisibleShade
    link
    fedilink
    01 year ago

    Do you mind explaining the loophole to the AGPL a little more? I didn’t quite understand that part.

    • RandoCalrandian
      link
      fedilink
      1
      edit-2
      1 year ago

      He’s saying they add a plug-in system to add additional functionality, but the plugins don’t have to be open source and can be DRM’d to hell

  • thejevans
    link
    fedilink
    English
    31 year ago

    It hasn’t been tested in court yet in the US as far as I know, but non-commercial licenses can potentially be more restrictive than you intend. As such, I don’t contribute on projects with non-commercial licenses and I know others who do the same.

    That said, I understand the frustration of big companies using your code for something big and you not getting a share of the profits. That frustration though, either as a frustration of capitalists benefiting from your work or from you not getting profit you feel you may deserve, seems like a nothing-burger to me. If you weren’t planning on selling licenses to your code before-hand and them using it doesn’t affect the maintenance burden that you have, then what is the problem? It functionally changes nothing concerning the time and effort you were planning to put in.

    The power of open-source licenses is in how they allow for quick and painless sharing of software for the collective benefit of others. There are tons of ways to get paid while using open-source licenses. Non-commercial licenses are unnecessary bloat that could gum up the works.

  • Boris MannA
    link
    fedilink
    English
    131 year ago

    There are a number of licenses that do this. And yes, many of them are not OSI approved and people will say mean things about not using the word open source. Which you should ignore and instead perhaps say fair source instead if you care.

    A couple to look at:

    Big Time License

    a public LICENSE that makes software free for noncommercial and small-business use, with a guarantee that fair, reasonable, and nondiscriminatory paid-license terms will be available for everyone else

    Prosperity License

    Prosperity is a public LICENSE for software that makes work free for noncommercial use, with a built-in free trial for commercial users.

    I also recommend going through the back log of posts by Kyle Mitchell, an engineer - lawyer who has authored a number of great software licenses, including the two I listed.

  • boothin
    link
    fedilink
    21 year ago

    MongoDB has a modified version of the AGPL that they call Server Side Public License that might interest you. Specifically the change in section 13:

    “Service Source Code” means the Corresponding Source for the Program or the modified version, and the Corresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.

    By my reading, it closes that loophole you mention by specifically calling out interfaces and APIs as also requiring the source to be available. At the top of the page I linked there is also a PDF showing the removals and additions they made to the AGPL to end up with their SSPL.

    • @TheTrueLinuxDev@beehaw.orgOP
      link
      fedilink
      71 year ago

      That a pretty interesting license, I distinctly remember that there were an argument on the internet over that license. So I took the time to review what happened, there were few criticisms for it:

      Conflict over “Open Source” Definition - Open source license must allow the software to be freely used, modified, and shared. The SSPL adds additional restrictions, particularly the requirement to open source not just the software itself but also the software used to offer the program as a service.

      Restricts Freedom to Use the Software - It requires that anyone who makes the software available as a service must release the source code for their entire stack.

      But none the less, this license is an interesting one and an inspiration could be drawn from it to not go to that extreme stipulated by SSPL, but to have some lines drawn to address some of the concerns around AGPL loopholes.

      • boothin
        link
        fedilink
        21 year ago

        Yeah, I think it falls squarely into your thing about a new term from open source as its not recognized as being open source by the OSI and probably won’t be due to it being too restrictive, but the restrictions close the loopholes, forcing the software to be more free at the same time so it’s kind of in a weird spot

      • vaguerant
        link
        fedilink
        21 year ago

        This isn’t a hill I’m willing to die on at all, but it does mildly annoy me that The Open Source Definition is used by proponents to mean the same thing as “open-source”. For anyone not familiar, The Open Source Definition is a document used to determine whether code should be certified by the Open Source Initiate as “OSI Certified”. Proponents argue that anything which does not meet the OSI’s definition is not open-source, while I think there’s room in the language and the mind for disagreement on whether “open-source” and “eligible for OSI certification” are synonyms.

        The OSI was originally founded with the goal of registering a trademark for “Open Source”, but this was unsuccessful as the term is too broad and descriptive. Failing that, the OSI decided to instead register the trademark “OSI Certified”, which can be applied to works which meet their Open Source Definition. Ultimately, what this means is that nobody owns the phrase “open-source” and it’s an organic part of language which is not strictly defined by the specific terms of any certifying documents.

        Over the years, there have been plenty of non-commercially licensed software with source available for use: a popular example is video, computer and arcade game emulators. The MAME emulator was for years released under its own non-commercial copyleft license before eventually being relicensed under BSD (which meets OSI’s Open Source Definition), and popular SNES and Mega Drive/Genesis emulators Snes9x and Genesis Plus GX both continue to be released under similarly “open but non-commercial” licenses.

        I’ll happily agree that none of those are eligible to bear the “OSI Certified” trademark and that they don’t meet OSI’s Open Source Definition. But when people start saying they’re “not open-source” it rubs me the wrong way, because we’re just talking, not trying to achieve trademark certification. Not to mention that the whole nature of software licensing is to note what restrictions there are on the use of the code, e.g. most open-source, copyleft licenses deny you the right to use their code without attribution. However, we basically all agree that that’s fine and you can still call a license open-source if it includes that restriction. It’s a shades of gray situation that people are treating as black and white just because a definition exists which they can refer back to, with the assumption that all people must subscribe to those specific terms.

        There’s entirely valid counter-arguments, of course. It’s useful to have strict definitions of nebulous concepts like open-source because it could cause confusion, and you have to draw the line somewhere or else the term becomes completely meaningless. e.g. You risk people referring to things like source code leaks as “open-source”. There are frequently cases of people ignoring non-commercial license terms and selling those softwares (Snes9x and Genesis Plus GX are often bundled with commercial retro emulation hardware), which you could argue stems from confusion about whether or not commercial use is allowed. But the same devices often violate the licenses of OSD-compliant software as well, so it seems more likely they just don’t care about open-source software licensing terms.

        So anyway, Genesis Plus GX is open-source but I’m not willing to fight you about it.

      • commandar
        link
        fedilink
        31 year ago

        Restricts Freedom to Use the Software

        I’ve always found this particular one somewhat frustrating. It’s essentially the intolerance paradox repackaged into a software licensing analog:

        “You are restricting the freedom of users by taking away their ability to close the code and restrict the freedom of other users!”

        It’s always read very “I got mine” to me.

        That said, while I lean copyleft, I also don’t find just barring commercial use entirely interesting. The goal is to ensure source code remains available to users; I think there are better ways of addressing that than trying to delineate and exclude commercial use.

        • @TheTrueLinuxDev@beehaw.orgOP
          link
          fedilink
          21 year ago

          That one of the reason why I brought up this thread to bring up discussion on some of the other ways we could address this while retaining commercial use.

          My interpretation of non-commercial licensing is that it would allows the code to remain open, it just that it may mandates companies to purchase commercial license if they wish to peruse such project commercially. There are some projects that practiced dual licensing schemes.

  • TomTom
    link
    fedilink
    English
    21 year ago

    Historically the GPL seems to be not cermercial in the sense of taking care for developers rights. The GPL is also connected to the term Open Source. Because it was too restricted for some cases a derivation was made witj the LGPL with which it is posdible to use GPL licenced libraries easier in combination with other more restricted or more opened licenses.

    For some looking for Free Software all this was too restricted and the libre BSD license and all its derivations were made.

    There are several licenses which forbid commercial use. But where does this work? When I want to use a piece of software while working on a profitable project it is commercial use. It may be on purpose to restrict this but sometimes it is not meant to be not free.

  • HaleyHalcyon
    link
    fedilink
    21 year ago

    I’ve heard of the term “copyleft”, which allows everyone EXCEPT corporations to use a certain work.

    • @TheTrueLinuxDev@beehaw.orgOP
      link
      fedilink
      161 year ago

      Well corporations can use the given work too, it just that they also have to disclose their derived work of the given code and have it licensed under GPL or AGPL as well. That the general idea of copyleft.

  • Lionir [he/him]
    link
    fedilink
    English
    81 year ago

    I think the biggest con with this kind of license is that it also means neither you nor the collaborators can try to make a living out of it. Such a type of license forces entirely hobby work.

    The cost of maintainership of the project and the fact that it may exclude people that don’t have the privilege of being able to contribute in their free time are both things that concern me quite a bit when you remove all commercial usage.

    • @TheTrueLinuxDev@beehaw.orgOP
      link
      fedilink
      English
      3
      edit-2
      1 year ago

      From what I understood about the copyright law is that you could create a separate license apart from non-commercial license and you could still sell a commercial license (if all contributors agreed to it, CAA/CLA agreements been signed, or some other agreements in place.) A project can have multiple licenses. Please correct me if I’m wrong however.

      • Lionir [he/him]
        link
        fedilink
        English
        51 year ago

        Yeah, that’d be the only way to do this but it also means the project can change the license at any time. As an outside developer, I would probably not want to rely on a project where it can go fully closed source potentially at any time.

        It’s also worth noting but if you have a non-commercial license, you will also be incompatible with any GPL license.

  • nfriedly
    link
    fedilink
    11 year ago

    I’ve worked at more than one job where I was told it was OK to use MIT, or Apacje-2.0 licensed things, but to not touch any GPL or AGPL software.

    So, even though there wasn’t any non-commercial clause in the license, it’s copyleft nature led to that effect at those businesses.

    In general, I like the balance that the GPL & AGPL strike - commercial use is allowed, but the company has to give back. The “condom code” thing that you mentioned is certainly less than ideal. I would prefer that businesses open up their full codebase. But, I think the more likely scenario is that they just don’t use any open source at all (or they use it and violate the license!) I’d prefer condom code over either of those possibilities.

  • syrinx20xx
    link
    fedilink
    41 year ago

    @TheTrueLinuxDev - If your goal is indeed non-commercial usage, then what you need is a clear new license with a clear new name: “Non-Commercial Source License” (NCSL), or possibly “Public Domain Source License” (PDSL).

  • rimu
    link
    fedilink
    41 year ago

    You don’t need to read much history to find plenty of bad things done by non-commercial entities, e.g. governments. Or churches.

    It’s not commerce that is the problem, it is oppression. Use of my code for oppressive purposes is the thing I want to avoid.

  • Prof. Sweetlove
    link
    fedilink
    English
    171 year ago

    Contributing to open source projects is pretty much just altruism.

    If we’re talking about protection of people integrating open source code in their proprietary code we’ll always have issues. It doesn’t matter if we declare our projects under GPL, AGPL, LGPL, CC or whatever, unless they do shoddy work, we won’t be able to know what code snippets, libraries or frameworks they’re using when source code isn’t disclosed.

    People that want to be assholes will always be assholes. If you feel like giving back, contribute to an open source project. If you don’t, don’t. But making it about evil corporations is a bit meh. Even a company like Amazon is actively contributing to improving Java, offering the Amazon Corretto JDK for free. So the path forward may just be trying to be the change yourself, and making sure the company you’re working for is also giving back somehow.