Skip Navigation

Bitwarden Desktop version 2024.10.0 is no longer free software

Pull request #10974 introduces the @bitwarden/sdk-internal dependency which is needed to build the desktop client. The dependency contains a licence statement which contains the following clause:

You may not use this SDK to develop applications for use with software other than Bitwarden (including non-compatible implementations of Bitwarden) or to develop another SDK.

This violates freedom 0.

It is not possible to build desktop-v2024.10.0 (or, likely, current master) without removing this dependency.

127 comments
  • ITT: A lot of conspiracy theories without much (any?) evidence. Let's see if they resolve the dependency issue before wet get our pitchforks, shall we?

    • I don't know what the heck you're talking about.

      I see overwhelming evidence that they have intentionally made parts of the clients' code proprietary. You can check the client code yourself (for now anyways) and convince yourself of the fact that the bw SDK code is in indeed integrated into the bitwarden clients' code base.

      This is the license text of the sdk-internal used in 2024.10.1 (0.1.3): https://github.com/bitwarden/sdk/blob/16a8496bfb62d78c9692a44515f63e73248e7aab/LICENSE

      You can read that license text to convince yourself of the fact that it is absolutely proprietary.

      Here is also the CTO and founder of Bitwarden admitting that they have done it and are also attempting to subvert the GPL in using sdk-internal:

      https://github.com/bitwarden/clients/issues/11611#issuecomment-2424865225

      Hi @brjsp, Thanks for sharing your concerns here. We have been progressing use of our SDK in more use cases for our clients. However, our goal is to make sure that the SDK is used in a way that maintains GPL compatibility.

      • the SDK and the client are two separate programs
      • code for each program is in separate repositories
      • the fact that the two programs communicate using standard protocols does not mean they are one program for purposes of GPLv3

      Being able to build the app as you are trying to do here is an issue we plan to resolve and is merely a bug.

      (Emphasis mine.)

      The fluff about the ability to even build the app is secondary, the primary issue is that the Bitwarden clients are no longer free software. That fact is irrefutable.

      • That would be an issue if they were not open source. Them making their own SDK proprietary is not a pitchfork issue.

        Open source !== Non-proprietary

        I would go as far as to say that Bitwarden's main competitive advantage and differentiation is that it's open source. They would be insane to change that.

    • Too late. Found a pitchfork sale in my local hardware store, so got a few for this and whatever fucking company does a rug pull next.

  • A few questions out of ignorance. How different is this to gitlab's open core model? Is this a permanent change? Is the involvement of investors the root of this? Are we overreacting as it doesn't meet our strict definition of foss?

    • How different is this to gitlab’s open core model?

      That's a really good question that I don't immediately have a satisfying answer to.

      There are some differences I can point out though:

      • Gitlab has demonstrated its commitment to keep the core of their product, though limited in features, free and open source. As of now, BW's clients cannot even be compiled without the proprietary SDK anymore.
      • Gitlab was always a permissive license (MIT) and never attempted to subvert its original license terms
      • Gitlab-EE's "closed" core is actually quite open (go read the source code) but still squarely in the proprietary camp because it requires you to have a valid subscription to exercise your freedoms.

      Is this a permanent change?

      It'd be quite trivial for them to do in technical terms: Either license the SDK as GPL or stop using it in the clients.

      I don't see a reason for them to roll it back though. This was decided long ago and they explicitly decided to stray away from the status quo and make it closed source.

      The only thing I could see making them revert this would be public pressure. If they lose a sufficient amount of subscribers over this, that might make them reconsider. Honestly though by that time, the cat's out of the bag and all the public goodwill and trust is gone.
      It's honestly a bafflingly bad decision from even just a business perspective. I predict they'll lose at least 20% but likely 30-50% of their subscribers to this.

      Is the involvement of investors the root of this?

      I find that likely. If it stinks, it's usually something stinky's fault.

      Are we overreacting as it doesn’t meet our strict definition of foss?

      They are attempting to subvert one of the FOSS licenses held in the highest regard. You cannot really be much more anti than this.

      An "honest" switch to completely proprietary licenses with a public announcement months prior would have been easier to accept.

      • Gitlab has demonstrated its commitment to keep the core of their product, though limited in features, free and open source. As of now, BW's clients cannot even be compiled without the proprietary SDK anymore.

        None of that makes Bitwarden not open source. Not only that, they specifically state this is a bug which will be addressed.

        I would go as far as to say that Bitwarden's main competitive advantage and differentiation is that it's open source. They would be insane to stop that.

  • Fuck. Is it difficult to export my data to something like Keypass? Very disappointed to hear this.

    • Bitwarden has an export functionality. Export to JSON, import in Keepass, done.

      There's KeePassXC if you want Linux support (keepass2 file is compat with XC variant).

      • Thank you! It seems this whole thing was a misunderstanding however. It was an error on Bitwarden's part that they intend to correct. I may still switch to kepassxc later on, mostly to save the money.

  • i was about to replace my glorified encrypted text file for a password manager. guess relying on 3rd parties in a late-stage capitalist world is not a viable alternative.

    ill stay with my encrypted text file until they privatize encryption. by then ill probably be carving my passwords out on stone. or burning down the servers of these fucking pigs trying to make us identify ourselves for everything on the internet now.

  • pass is enough (+ xdotool + rofi + pass-menu). Synchronization via git or Syncthing.

    • How does this play with mobile?

    • I'm familiar with pass and familiar-ish with rofi. What do the other two do?

      • A small script for entering passwords into various windows via rofi, I take passwords from pass.

        Example script:

         sh
            
        #!/bin/bash
        # Sample file rofi_pass.sh
        passwords=$(find /home/fireshell/.password-store/ -type f -name *.gpg)
        selected_pass=$(echo -e "$passwords" | awk -F "/" '{printf "%s > %s\n", $5, $6}' | rofi -dmenu -p Pass)
        item=$(echo "$selected_pass" | awk '{printf "%s/%s", $1, $3}' | sed 's/\.gpg//g')
        data=$(pass show $item)
        pass=$(echo -e "$data" | head -n1)
        login=$(echo -e "$data" | grep -e "^login: " | sed 's/^login: //g')
        xdotool type "$login"
        xdotool key Tab
        xdotool type "$pass"
        
        
          

        In awesome wm I bound a key that calls it like this:

         undefined
            
        awful.key({ modkey}, "p", function () awful.spawn.with_shell("/home/fireshell/Scripts/rofi_pass.sh") end    ,
        {description = "rofi pass", group = "launcher"}),  
        
          

        I turn on the computer, press the key combination and the script works, or I run this script from the terminal (~/Scripts/rofi_pass.sh), select the password - it works (if necessary, pinentry is called to enter the main password), after that I press the key combination, select the desired entry

        passmenu: extremely useful and wonderful dmenu script.

127 comments