mdbootstrap / mdb-react-ui-kit

React 18 & Bootstrap 5 & Material Design 2.0 UI KIT
https://mdbootstrap.com/docs/b5/react/
Other
1.41k stars 264 forks source link

The MIT license only has *one* condition… #5

Closed TheSharpieOne closed 6 years ago

TheSharpieOne commented 7 years ago

And somehow you managed to violate it.

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

(reference)

Not cool.

mattonit commented 7 years ago

Our project is similar to yours, but we didn't use your code. Could you please point me where do we use your code?

TheSharpieOne commented 7 years ago

The components which have substance are the obvious offenders: https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/Collapse.js https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/Dropdown.js https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/DropdownItem.js https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/DropdownMenu.js https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/DropdownToggle.js https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/Fade.js https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/Media.js https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/Modal.js https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/utils.js

Some components have been expanded to add specific features for this project, but they are obviously a derivative of the original work from reactstrap as well https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/Navbar.js

But even then simple components clearly have been copied. Even thought they are simple enough to understand how two projects came up with the same output, it is clear that they were just copied. The variable names, declaration order and usage (including prop order), as well as comments in the code are is the same. It's very obvious that this project just moved the propType and defaultProp declarations to be inline. On a few components some props were removed (such as tag and cssModule) but other components did keep those. (A list of ~80% of the remaining components goes here (A shorter list would be things not copied). If you need me to actually list them and point out how they are copies or derivatives of reactstrap I can in the DMCA Takedown Notice I will submit.)

Also, some of the components have the same typos and incorrect default values (which have been addressed in reactstrap, but apparently after they were copied here)

Tether values, which reactstrap used to use and this project didn't: https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design/blob/master/src/components/utils.js#L1-L107 reactstrap switched to react-popper, just only after the utils.js was copied by this project. Badge has an invalid default color of "default" which bootstrap doesn't have, it's actually "secondary". reactstrap has "default" but has since changed to "secondary" apparently after they were copied here.

If you understand this project copies and uses [a lot of] material from reactstrap, either directly or indirectly as derivative work, all you have to do is include the LICENSE (here and in distributed files such as direct downloads from your website) and everything is good.

Another thing you can do, which is probably better, is to just include reactstrap (via npm) and extend the components reactstrap provides. Most of the components would just be exposed as is, some of the components (like Narbar) you can easily extend without needing to copy any of reactstrap's code (Just add only your extra classes to reactstrap's Navbar and you will get the same result). Then you would not need to include the license as reactstrap's code is not in your project. The license will be included when user perform an npm install and actually retrieve reactstrap (as it is with pretty much every package on npm).

If you still do not believe this project blatantly includes reactstrap copyright without the license to do so, I will submit a DMCA Takedown Notice and let the legal powers that be determine that.

mattonit commented 7 years ago

Thank you for your quick response.

I would like to apologize you for the inconvenience. Now I can see that our projects have a lot of common (more than I was thinking). I couldn’t tell it directly because parts of the code that you mentioned weren’t written by me. These parts of the code were added to our project by our former developer and I don’t know that other part of code well yet. Our project is also MIT-licensed and we respect licenses of other projects so of course, we’ll add information about Reactstrap to our project.

Again please accept our sincerely apologizes

RaHus commented 6 years ago

Another thing you can do, which is probably better, is to just include reactstrap (via npm) and extend the components reactstrap provides. Most of the components would just be exposed as is, some of the components (like Narbar) you can easily extend without needing to copy any of reactstrap's code (Just add only your extra classes to reactstrap's Navbar and you will get the same result). Then you would not need to include the license as reactstrap's code is not in your project. The license will be included when user perform an npm install and actually retrieve reactstrap (as it is with pretty much every package on npm).

We were considering using MDB-react as part of our stack and we are currently reconsidering unless the above approach is taken, the reasoning is 1) To improve visibility to the original authors 2) To get updates from the original project, which is obviously best suited to handle this piece of code 3) To make it apparent what are the additions from the MDB-react project and and allow for better extensibility from the endusers