I often see Rust mentioned at the same time as MIT-type licenses.

Is it just a cultural thing that people who write Rust dislike Libre copyleft licenses? Or is it baked in to the language somehow?

Edit: It has been pointed out that I meant to say “copyleft”, not “libre”, so edited the title and body likewise.

  • enemenemu@lemm.ee
    link
    fedilink
    arrow-up
    15
    ·
    edit-2
    3 months ago

    It’s kind of the default in the docs

    https://doc.rust-lang.org/cargo/reference/manifest.html?highlight=License#the-license-and-license-file-fields

    SPDX license expressions support AND and OR operators to combine multiple licenses.1

      [package]
       # ...
      license = "MIT OR Apache-2.0"
    

    Using OR indicates the user may choose either license. Using AND indicates the user must comply with both licenses simultaneously. The WITH operator indicates a license with a special exception. Some examples:

    MIT OR Apache-2.0
    LGPL-2.1-only AND MIT AND BSD-2-Clause
    GPL-2.0-or-later WITH Bison-exception-2.2
    

    When I started out (I don’t write Rust but other languages), in my first years, I liked gpl and after a couple of years I got to know MIT and I started using that because I thought it is “more free”. I wasn’t aware of the consequences immediately. Once I read the GNU philosophy and started reading more about free software, I started using gplv3 again

      • Ephera@lemmy.ml
        link
        fedilink
        English
        arrow-up
        7
        ·
        3 months ago

        Well, the thing is, if you’re developing a library, you usually do so, because you want it to be useful to people in the ecosystem.
        By putting it under the GPL, you limit that usefulness to only those projects which are willing to also put themselves under the GPL. From an idealist point of view, I certainly also would like to say that people not willing to put their software under GPL don’t need to be my users. But from a library author point of view, I might as well not write a library then, since no one’s going to use it then.

        Many open-source projects are under a permissive license themselves. I might disagree with their choice, but I don’t really want to exclude those from using my library. They’re still doing good things. I would love to exclude specifically any proprietary software from using my library, but that’s not really something you can require in your license without excluding all those permissive open-source projects.

        So, to answer your question, I actually don’t think people are being tricked into it. I thought about choosing GPL for my libraries for a while (all my applications are under GPL) and decided against it. Which is a personal choice that others can disagree with, but all I’m saying is, I know what I’m doing, I wasn’t tricked to use a permissive license.

      • enemenemu@lemm.ee
        link
        fedilink
        arrow-up
        4
        ·
        3 months ago

        You could say that, yes.

        It makes sense to suggest MIT license for a MIT project

        MIT is better than proprietary. MIT does not force you to not make your project free.

        • davel@lemmy.ml
          link
          fedilink
          English
          arrow-up
          3
          ·
          edit-2
          3 months ago

          MIT does not force you to not make your project free.

          Given the double negative and the ambiguity of “free,” I don’t know what you’re trying to say here.

          • enemenemu@lemm.ee
            link
            fedilink
            arrow-up
            4
            ·
            3 months ago

            You are allowed to license your code change under gpl, you do not have to use MIT just because the package author uses MIT. You can use GPL.

            You can also use MIT or no license at all. it does not force you to use MIT

          • enemenemu@lemm.ee
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            3 months ago

            I am no dev of rust.

            My guess:

            • they didn’t want to scare anyone.
            • They really think that MIT is free and that anyone shall do with it whatever they like. They are not afraid that someone takes the rust code base and produces a proprietary fork and make money from it.
  • trevor (he/they)@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    15
    ·
    3 months ago

    I’m a (mediocre) Rust dev, and I use GPL licenses for my projects. There’s nothing preventing you from doing so. I think the answer to your question is that it’s largely cultural.

  • Arthur Besse@lemmy.ml
    link
    fedilink
    English
    arrow-up
    9
    ·
    3 months ago

    I often see Rust mentioned at the same time as MIT-type licenses. Is it just a cultural thing that people who write Rust dislike Libre licenses?

    The word “libre” in the context of licensing exists to clarify the ambiguity of the word “free”, to emphasize that it means “free as in freedom” rather than “free as in beer” (aka no cost, or gratis) as the FSF explains here.

    The MIT license is a “libre” license, because it does meet the Free Software Definition.

    I think the word you are looking for here is copyleft: the MIT license is a permissive license, meaning it is not a copyleft license.

    I don’t know enough about the Rust community to say why, but from a distance my impression is that yes they do appear to have a cultural preference for permissive licenses.

    • TheChickenOfDoom@lemm.ee
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 months ago

      The MIT license is a “libre” license, because it does meet the Free Software Definition.

      Nope. It allows someone to use code without sharing the changes of that code. It enables non-free software creators like Microsoft to take the code, use it however they like, and not have to share back. This is what Free Software prevents.

      Tired of people calling things like MIT and *BSD true libre/Free Software. They’re basically one step away from no license at all.

      • Arthur Besse@lemmy.ml
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        3 months ago

        Nope.

        Nope, it is.

        It allows someone to use code without sharing the changes of that code. It enables non-free software creators like Microsoft to take the code, use it however they like, and not have to share back.

        This is correct; it is a permissive license.

        This is what Free Software prevents.

        No, that is what copyleft (aims to) prevent.

        Tired of people calling things like MIT and *BSD true libre/Free Software.

        The no True Scotsman fallacy requires a lack of authority about what what constitutes “true” - but in the case of Free/Libre software, we have one: https://en.wikipedia.org/wiki/The_Free_Software_Definition

        If you look at this license list (maintained by the Free Software Foundation’s Licensing and Compliance Lab) you’ll see that they classify many non-copyleft licenses as “permissive free software licenses”.

        They’re basically one step away from no license at all.

        Under the Berne Convention of 1886, everything is copyrighted by default, so “no license at all” means that nobody has permission to redistribute it :)

        The differences between permissive free software licenses and CC0 or a simple declaration that something is “dedicated to the public domain” are subtle and it’s easy to see them as irrelevant, but the choice of license does have consequences.

        The FSF recommends that people who want to use a permissive license choose Apache 2.0 “for substantial programs” because of its clause which “prevents patent treachery”, while noting that that clause makes it incompatible with GPLv2. For “simple programs” when the author wants a permissive license, FSF recommends the Expat license (aka the MIT license).

        It is noteworthy that the latter is compatible with GPLv2; MIT-licensed programs can be included in a GPLv2-only work (like the Linux kernel) while Apache 2.0-licensed programs cannot. (GPLv3 is more accommodating and allows patent-related additional restrictions to be applied, so it is compatible with Apache 2.0.)

        • TheChickenOfDoom@lemm.ee
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 months ago

          Love how *BSD-obsessed people bend over backwards and find all sorts of loopholes to justify their garbage license that lets Microsoft abuse their entire goddamn OS for their own horrible purposes.

          Shame on you.

          • Arthur Besse@lemmy.ml
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            2 months ago

            Lmao that my pedanticism could be perceived as BSD advocacy - fwiw, I primarily use GNU/Linux, I develop GPL-licensed software, and I think GPLv3 or AGPLv3 are good choices for many new projects starting today.

            My opinions about the history and future of copyleft are somewhat complicated but I didn’t mention any opinions in the comment you’re replying to - I was just correcting your factual misunderstandings about the accepted definitions of these terms.

  • 3h5Hne7t1K@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    3 months ago

    This is somewhat concerning, as im a big fan of working for free, as long as it benefits the users. I have also been looking at the EUPL as a happy middleground (it permits static linking, while any changes to the acual code is copyleft). Copyleft is important, and needs to be talked about.

  • irotsoma@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    4
    ·
    3 months ago

    I don’t think it’s Rust exactly. I think Rust is just newer and this attracts developers with less experience with licensing. It’s not really something developers want to think about very much so they often just use the default. Heck, most code on github, etc., didn’t have any licenses at all for a really long time until businesses realized they couldn’t use the code without them due to copyright laws being applied by default but patents not being default in many countries, etc.

    There are consequences to using copyleft as opposed to more permissive libre licenses, and vice versa, that may not be well understood by a lot of developers in general until they get into a situation where it matters. Either their code can’t be used by people they wanted to sue it, or companies are abusing the code without proper attribution, etc.

    • some@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 months ago

      It’s not really something developers want to think about very much so they often just use the default.

      Do you think it was intentional ideological decision by the Rust developers or some other contributors/interests to make permissive the default? Or a random decision that has ended up being consequential because of the popularity of Rust?

      I have noticed for a long time that github promotes MIT license. It lets you use any, of course, but puts a real positive shine on MIT. My perception is that this is a purposeful intervention by MS into FLOSS to promote MIT.

      • irotsoma@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        2
        ·
        3 months ago

        I think its just that the language having built in licensing is a newer concept as opposed to just having a companion document. And MIT and Apache are the licenses the pieces of the language is licensed under, so they made those default. That way it’s a conscious decision to make it more restrictive.

          • irotsoma@lemmy.blahaj.zone
            link
            fedilink
            arrow-up
            2
            ·
            3 months ago

            Rust crates manifest file requires a license be set to be hosted on crates.io and the example manifest file uses:

            [package] 
            license = "MIT OR Apache-2.0"
            

            Something like the Java’s jar manifest doesn’t have a predefined license property for interpreters to parse. Maven has a property, but it’s not required.