brandonwamboldt / utilphp

util.php is a collection of useful functions and snippets that you need or could use every day, designed to avoid conflicts with existing projects
http://brandonwamboldt.github.com/utilphp/
MIT License
1.03k stars 130 forks source link

Severe License breach of UtilPHP #75

Closed hopeseekr closed 9 years ago

hopeseekr commented 9 years ago

A verbatim copy of utilphp exists in the $58 PixelGrade Wordpress theme, bucket (http://themeforest.net/item/bucket-a-digital-magazine-style-wordpress-theme/6107209), but they seem to have both

  1. removed all references to UtilPHP,
  2. removed your copyright claim,
  3. claimed direct authorship of all of the code, and
  4. labeled your code as proprietary property of their company, expressly forbidding permissions to copy or redistribute it.

Evidence: https://github.com/madison-plus/madison-plus/blob/master/wp-content/themes/bucket/theme-utilities/bucket.php

Because it only postdates the release of utilphp by 33 days, this is a more serious matter and all efforts to reach out to the project maintainer should be taken, including a cease and desist letter to them if no response after 60 days, followed by a DMCA takedown (for just that file) to Github and various sites that include PixelGrade's bucket theme.

Besides, it's ethically and legally wrong to commandeer MIT-licensed work as one's own while simultaneously forbidding others the right to even reproduce it. It also violates clause 2 of your of license.

hopeseekr commented 9 years ago

PixelGrade is also open to legal action from Automatic, Inc., owners of Wordpress, because it is flagrantly violating the GPL conditions Wordpress themes have to abide by.

hopeseekr commented 9 years ago

Another breach, also by PixelGrade, but on their lens theme: https://github.com/ganshoot/ashh-blog/blob/fb7958789c5b8881e17eba435ef22e4f6624b2d0/wp-content/themes/lens/theme-utilities/lens.php http://themeforest.net/item/lens-an-enjoyable-photography-wordpress-theme/5713452

brandonwamboldt commented 9 years ago

Well that is a blatant ripoff. Based on this:

https://help.market.envato.com/hc/en-us/articles/202500274-How-can-I-report-a-suspected-copyright-violation-that-I-have-noticed-

I am going to send Envato an email directly to have the theme removed. I'll skip notifying the authors of the theme since it's a blatant violation of the license. Thanks for finding this.

hopeseekr commented 9 years ago

That's a great call.

brandonwamboldt commented 9 years ago

I filed a DCMA takedown request with Envato, naming both themes. I also emailed the authors of the theme directly informing them of the copyright infringement.

brandonwamboldt commented 9 years ago

Found a partial violator:

https://github.com/maitrepylos/Avosoft/blob/master/App/Maitrepylos/Debug.php

Stole the var_dump method.

hopeseekr commented 9 years ago

It's more severe because the project does not have a license, therefore without copyright notice being attached to the ripped function, they are indirectly claiming proprietary ownership.

brandonwamboldt commented 9 years ago

Oh goody, pixelgrade is violating it in another theme:

http://pixelgrade.com/demos/heap -> https://github.com/estrategasdigitales/parasect/blob/master/blog/wp-content/themes/heap/theme-utilities/includes/classes/utilities.php (http://themeforest.net/item/heap-a-snappy-responsive-wordpress-blog-theme/7422943)

hopeseekr commented 9 years ago

I found another breach... assuming you wrote the safe_truncate() function... http://amiyasahu.com/safely-truncate-a-string-in-php/. If you wrote it, I'd recommend just saying so and providing a link to this project as a comment, notifying the owner if he mods comments and it isn't visible immediately.

brandonwamboldt commented 9 years ago

And via their rosa theme.

Proof: https://github.com/Leezlee/Overeasy/blob/master/wp-content/themes/rosa/inc/classes/utilities.php

brandonwamboldt commented 9 years ago

Yes, I wrote safe_truncate() while at BlackBerry. I dropped the buddy a comment asking him to credit the original source.

hopeseekr commented 9 years ago

I just want to report the first find of someone who does a great job crediting your work! https://github.com/tonydspaniard/yiinitializr-basic/blob/master/app/lib/Yiinitializr/Helpers/ArrayX.php#L316

brandonwamboldt commented 9 years ago

I've filed a DCMA takedown request with GitHub for all infringing URLs that I've found thus far.

hopeseekr commented 9 years ago

I have submitted the Citations Pull Request #76.

brandonwamboldt commented 9 years ago

I'll close this once I get confirmation that my DCMA notices were received and properly formatted.

brandonwamboldt commented 9 years ago

@hopeseekr All four theme forest themes were taken off the market place by Envato.

Also, the blog you mentioned (http://amiyasahu.com/safely-truncate-a-string-in-php/) has added a link back to this repo :smile:

pixelgrade commented 9 years ago

@brandonwamboldt Hi Brandon,

How I would have hoped you had dropped an @pixelgrade in here :) We are very sorry for this situation and it truly looks bad. But we are in no way disrespectful or trying to claim credit for another's work (we know that would be the beginning of the end for the open-source community). This whole thing happened due to an automated script that "helped" us put headers on files some time ago (I believe almost a year now) and that file got carried around from theme to theme. We have failed to spot the fact that in this file it removed the proper license.

We are sorry and we will immediately change the header and provide full credit (as we should have done all along).

I hope you understand that this was not something deliberate on our part to steal another's work.

Vlad, PixelGrade

hopeseekr commented 9 years ago

Hi @pixelgrade. To be honest, I never even thought of seeing if your corp name was on Github.

The main thing for me was the changing of the @author block in the code.

Changing it from

* @author Brandon Wamboldt <brandon.wamboldt@gmail.com>
* @link   http://github.com/brandonwamboldt/utilphp/ Official Documentation

to

* Theme utility functions.
*
* @package    bucket
* @category   core
* @author     Pixel Grade Team
* @copyright  (c) 2013, Pixel Grade Media

does look mighty suspicious, and regardless, it is a grievous mistake at best. If your automated script also changes PHPDoc blocks, you need to go scour your code base for other potential infractions of other projects' copyrights and licenses, I would think.

International copyright law since 1987 has been extremely murky on whether NOT copying a copyright clause is infringement, but pretty much every country on board with the WTO IP conventions of the 2000s is in agreement that subsuming copyright is prima facie verboten, except when there is 1) direct, written consent by the copyright holder (e.g., commonly via Commercial licenses with Rebranding clauses) or 2) the code is licensed under very watered down rights of enforcement (e.g., the GNU Public License (GPL) doesn't really permit the authors to challenge forkers who keep their derived code as GPL, too. That's why there are so many hostile GPL forks.).

pixelgrade commented 9 years ago

Hi @hopeseekr

That was not a line by line change, it was a "dummer" script then that. That is why we haven't used it for a long time and we have changed the headers we have found, but to our mistake have missed this one and from one miss, it got carried away into other themes (other newer members of our theme failed to notice it because they didn't know the history).

We are under no circumstances trying to get credit for other people's work simply because it doesn't bring us any good (financial or otherwise). So I hope you understand it was just an awful mistake.

hopeseekr commented 9 years ago

@pixelgrade To come into full compliance, I suggest you 1) copy the latest utilphp 100% into its own utilphp.php file. 2) In your template-specific classes, do something like

/**
  * @author Pixel Grade Team
  * @copyright (c) 2015 Pixel Grade
*/
class lens extends \utilphp\util
{
    // Your custom code, if any, here.
}

That way you'd maintain proper copyright claims, abide by the utilphp license terms, and not have to change your template code... Seems like pure wins. I would appreciate a screenshot attached to this ticket of this new file, for the record, to show your compliance.

brandonwamboldt commented 9 years ago

@hopeseekr They emailed me the source code to confirm the header has been added back in with proper licensing & attribution.

brandonwamboldt commented 9 years ago

Due to the resolution of the main issues here, I think the ticket is good to close.

pixelgrade commented 9 years ago

Great to hear this. Thanks

pixelgrade commented 9 years ago

Hi @hopeseekr

You are right about that. Unfortunately we can't use namespaces since WordPress needs to work down to PHP 5.2 (we would require PHP 5.3).

We have already fixed the header, and moved our own code (separate functions) to a different class, and submitted the changes to be approved.

We will update to the latest version, but we need to make sure that nothing breaks down (both in our themes and also with regards to the PHP version).

brandonwamboldt commented 9 years ago

@pixelgrade PHP 5.2 prevents the use of closures which we also use. I don't think upgrading the version is needed, as long as you leave in the header.

pixelgrade commented 9 years ago

@brandonwamboldt Yes the closures too :(