Hacker News new | ask | show | jobs
by ofek 1141 days ago
I do appreciate that Google is now officially supporting gcsfuse because it genuinely is a great project. However, their Kubernetes CSI driver seems to have in large part copied code from the one I and a co-maintainer have been working on for years:

- https://github.com/GoogleCloudPlatform/gcs-fuse-csi-driver

- https://github.com/ofek/csi-gcs

Here is the initial commit: https://github.com/GoogleCloudPlatform/gcs-fuse-csi-driver/c...

Notice for example not just the code but also the associated files. In the Dockerfile it blatantly copied the one from my repo, even the dual license I chose because I was very into Rust at the time. Or take a look at the deployment examples which use Kustomize which I like but is very uncommon and most Kubernetes projects provide Helm charts instead.

They were most certainly aware of the project because Google reached out to discuss potential collaboration but never responded back: https://imgur.com/a/KDuf9mj

6 comments

Your repository seems to have both an Apache and MIT license. What license are you distributing your code under?

Edit: I see you said it’s dual licensed. From the look of it both allow Google or any other company to copy and reuse code, so what are you upset about?

I don't mean to be rude but yeah, this is exactly what AGPL was intended to combat. It's a lesson learned for these developers, and Google did nothing wrong or even unethical imo.

A lot of people treat licensing emotionally (e.g. WTFPL, or picking licenses that feel good, or that we saw in another project), however business people are very logical and will unfortunately exploit this.

The irony is that Google probably would not have done this if the codebase just omitted a license entirely. When I worked there, they wouldn't allow OSS with no license.

> The irony is that Google probably would not have done this if the codebase just omitted a license entirely. When I worked there, they wouldn't allow OSS with no license.

This is because a license is the only way to legally use code. Code being publicly accessible doesn't mean it's free-as-in-freedom to use.

> The irony is that Google probably would not have done this if the codebase just omitted a license entirely.

Yes they would. Google's code appears not to include attribution to the OP. So either Google authored the code or violated the license. One would hope that it's former.

You're right their Apache licenses are different:

https://github.com/ofek/csi-gcs/blob/master/LICENSE-APACHE

https://github.com/GoogleCloudPlatform/gcs-fuse-csi-driver/b...

OP should submit a PR to correct this. IANAL but pretty sure they're supposed to use the original copy including copyright notice "Copyright 2020 Ofek Lev"

Might be stolen code until they fix this

Either, the choice is up to you.

edit: as I express in a sibling comment this act is legally allowed of course, but is bad practice

> but is bad practice

Says who/why?

"It's mean/I don't get a callout/the credit I deserve" is "bad practice"?

Why aren't you honored that your product was good enough for Google to absorb and build off of? I'd be super proud.

I have to agree. I use non-copyleft licenses because I don't expect people using the code to give me anything in return. Removing your the header and attribution is wrong, but not collaborating? As was said in other comments, if that's what you want, dictate it in your license because there are plenty of -- and dare I so most -- people that use the MIT license that don't care.
This is why free software and open source aren't the same. Free software is about this kind of fairness, among others. The simplicity of open source does have its downsides.
Why it is bad practice ... ?
unless there are legal definitions to “bad” it’s well within their rights you’ve granted them.

You can’t have a license that says one thing and then rely on implicit community norms to expect something to happen. (For one, you’re assuming the person is even aware of the community norms)

Hi Ofek,

I am a contributor who works on the Google Cloud Storage FUSE CSI Driver project. The project is partially inspired by your CSI implementation. Thank you so much for the contribution to the Kubernetes community. However, I would like to clarify a few things regarding your post.

The Cloud Storage FUSE CSI Driver project does not have “in large part copied code” from your implementation. The initial commit you referred to in the post was based on a fork of another open source project: https://github.com/kubernetes-sigs/gcp-filestore-csi-driver. If you compare the Google Cloud Storage FUSE CSI Driver repo with the Google Cloud Filestore CSI Driver repo, you will notice the obvious similarities, in terms of the code structure, the Dockerfile, the usage of Kustomize, and the way the CSI is implemented. Moreover, the design of the Google Cloud Storage FUSE CSI Driver included a proxy server, and then evolved to a sidecar container mode, which are all significantly different from your implementation.

As for the Dockerfile annotations you pointed out in the initial commit, I did follow the pattern in your repo because I thought it was the standard way to declare the copyright. However, it didn't take me too long to realize that the Dockerfile annotations are not required, so I removed them.

Thank you again for your contribution to the open source community. I have included your project link on the readme page. I take the copyright very seriously, so please feel free to directly create issues or PRs on the Cloud Storage FUSE CSI Driver GitHub project page if I missed any other copyright information.

You licensed the code as MIT - https://github.com/ofek/csi-gcs/blob/master/LICENSE-MIT

Are you saying you have an issue with them copying your MIT licensed code?

If the GP is right, Google is violating the terms of the license. A quick search of the code reveals that Google's code doesn't include copyright headers with attribution to the GP. This could be stolen code.
Yes, copying the code without following up to actually collaborate or even forking to show attribution I think is bad practice for such a large organization, or any entity for that matter.
Just to clarify - the licenses you chose do not require any collaboration or "give back", they only require minimal attribution buried in some readme.

You can absolutely berate them for copying without attribution, but that's it; they don't owe you anything else.

If that's what you want, then update your license to require that.
Are you of the opinion that because a behavior is legal that necessarily makes it right in all cases? If so, I suppose that is where I disagree.
You seem to be interpreting a license as a legal formality that shouldn't be taken so literally.

It is a form of very explicit and literal communication. Unfortunately you sent an unambiguous message to the world inviting them to do this.

(Disclaimer that I briefly worked at Google years ago)

EDIT: Well OP did not give them permission to alter the license. Sorry this happened to you. https://news.ycombinator.com/item?id=35791737

If their behavior annoys you, why not DMCA takedown the repo in retaliation for them stripping the copyright header? It'd be within your rights since they violated the license and sends a message they can't ignore.

Otherwise if you're upset they otherwise used code you released under a permissive license that's a personal problem. You signaled to the world that you'd relax your copyright under a permissive license and don't like the results? This is like gifting something and being mad about how the gift was used.

As others have pointed out you don't seem to grasp why licenses exist in the first place? No org or individual in general wants to play guessing games and risk liability. It's entirely on you to signal how you want your work to be used.

Are you accusing Google of "large part copied code" based on an old commit which is not even used in this official launch? Do you have any evidence from their recent commit? At least I don't see the current two repos are anywhere alike, except for that you both implement the same interface. Also, they did reach out to you and you just didn't respond, so why are you complaining now?

It makes me sad that no one here cares about whether your blame is true. And I'd expect you can provide more convincing evidence. But looks like the accusation is not even true. It's not fair for those contributors man, I hope you can apologize.

I'm not sure if you thoroughly read what I wrote but I did respond to them. This is not a false accusation as you are claiming, you can check the contents of the repo in the current state.

Per the licenses they can copy but they must maintain attribution which has not been done.

Update: attribution has been added to the readme file https://github.com/GoogleCloudPlatform/gcs-fuse-csi-driver/c...
Haha a lot of funny comments here. I think overall it's neither here nor there. You should be proud that the "elites" at Google copied your code ;)