mborsetti / webchanges

webchanges anonymously checks web content (including images) and commands for changes, delivering instant notifications and AI-powered summaries to your favorite platform.
https://pypi.org/project/webchanges/
Other
37 stars 6 forks source link

Missing license header in source files (license violation) #30

Closed thp closed 2 years ago

thp commented 2 years ago

While COPYING clearly states that this project is based on urlwatch, the files in this project which are clearly based on urlwatch don't include the license header (this is the up to date license header, the one from urlwatch on which webchanges is based should have different years most likely, but webchanges is also missing proper git history):

# This file is part of urlwatch (https://thp.io/2008/urlwatch/).
# Copyright (c) 2008-2021 Thomas Perl <m@thp.io>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. The name of the author may not be used to endorse or promote products
#    derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Also, for some reason, the author has decided to truncate the Git history for no good reason (well, presumably to hide the change where the license header was removed, although I don't have data yet to verify this):

https://github.com/mborsetti/webchanges/commits/3.0.0-beta.2/webchanges

You are clearly violating the source license, as the conditions are not met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.

You cannot just remove the license headers from the files like this. If you want to base your code on open source licensed code from other people, please play by the rules.

A copy of the current repository state has been taken for future reference locally in case you change the Git history again and try to hide the origin of the code, as many code changes seem to be mostly about removing licenses and renaming things and removing "urlwatch" from the sources, while still trying hard to "compete" with urlwatch in the documentation by doing "feature comparisons".

Please fix the repository and license notes in the source and documentation to comply with the license of urlwatch on which you based your code.

While you of course have tried to change everything around a bit, it's clear that there's some similarity between the originally licensed code and your code missing the license header:

https://github.com/thp/urlwatch/blob/master/lib/urlwatch/mailer.py https://github.com/mborsetti/webchanges/blob/main/webchanges/mailer.py

Or this:

https://github.com/thp/urlwatch/blob/master/urlwatch https://github.com/mborsetti/webchanges/blob/main/webchanges.py

I don't have time to go through all of those at the moment, but since you keep spamming the upstream repository with "advertising" for your fork that disregards the license, please post a plan how you are going to comply with the license.

thp commented 2 years ago

For future reference and better visibility: Dug out some of your comments in the upstream repo where you are clearly advertising your code as a fork and derivative work while violating the license by removing the copyright notice, list of terms and disclaimer from the source files.

And just for the record: The problem isn't your posting in upstream issues (that's just highly annoying and distracting), the problem is the license violation.

mborsetti commented 2 years ago

@thp I was told that the BSD license does not require that it be added to every single file (where it's extremely annoying), but rather that it be part of the source code bundle, which it clearly is as you yourself point out, so I removed the extra junk. A web search confirms that this is correct, so there's no violation.

I originally had no intention to create a different project, but you're the one that suggested that I do a fork after rejecting my contribution with colorized HTML reporting. And yes, it was my first project ever, and I had quite a few issues with GitHub, so I guess technically it's not a "fork" within GitHub, maybe it's just code "based on"? If you agree I will change the nomenclature throughout.

But I am proud of what this project has accomplished and the solutions it provides.

thp commented 2 years ago

The initial discussion is still available on the internet for people to read and make up their own opinion (including change requests and code quality).

tl;dr: I asked for changes to your PR as it was lacking quality, you said "Sorry, don't have the time to refactor existing code. This contribution is already costing me way too much," to which I replied "Well I guess then I am not going to spend my time to review your PR. Feel free to maintain this thing in your fork then." -- nobody is entitled to getting their code merged without review, and saying "I already spent too much time on this" disrespects the time others are investing in reviewing your code. Nowhere did I suggest forking the project, but you do you ("in your fork" here means your copy of the urlwatch github repo, which for some reason also doesn't exist anymore).

Given that you didn't "have time to refactor existing code", I'm surprised you did have enough time to rename everything and remove licensing headers!

Protip: Just leaving the license headers in there would have saved you even more time.

The license clearly states "must retain", I don't see how what you "were told" and how a "web search" confirms anything. Just read the license -- do not delete the license text in the source files. It's 3 super simple conditions, surely you can read and comprehend? Whether you put a header into competely new files that you create is up to you, but don't delete existing copyright notices.

In other words, please:

  1. Reopen this issue immediately until the licensing issue is fixed
  2. Reinstate the license terms/header in every file that is based on urlwatch code as soon as possible, not "in the next release"
  3. Refrain from aggressively advertising your fork in the upstream issue tracker in the future

You can still call it "fork", and constructive comments in the urlwatch issue tracker as well as PRs to urlwatch are still welcome, but will have to go through normal review process like any other PR and can be rejected for any reason.

mhalano commented 2 years ago

I was using urlwatch, and then I found and started using webchanges, but I came back to urlwatch because of this issue.

smithl commented 2 years ago

Bad form IMO - please fix this issue.

mborsetti commented 2 years ago

That is absolutely not true: all of webchanges is credited to urlwatch and is appropriately copyrighted/licensed.

(1) Webchanges' main page reads:

License Released under the MIT License but redistributing modified source code from urlwatch 2.21 licensed under a BSD 3-Clause License. See the complete license here.

(2) Each file with code contains this at the top:

# The code below is subject to the license contained in the LICENSE file, which is part of the source code.

Note: There is no requirement anywhere in law to spam the entire 61-line, 465 words license text on Every. Single. File. In. Every. Single. Directory; the above notice is amply sufficient.

(3) the license file reads:

This software redistributes source code of release 2.21 of urlwatch https://github.com/thp/urlwatch/tree/346b25914b0418342ffe2fb0529bed702fddc01f which is subject to the following copyright notice and license from https://raw.githubusercontent.com/thp/urlwatch/346b25914b0418342ffe2fb0529bed702fddc01f/COPYING hereby retained and redistributed with the source code (of which this license file is part of), in binary form, and in the documentation. The appearance of the name of the author below does not constitute an endorsement or promotion of this software by such author.

Copyright (c) 2008-2020 Thomas Perl m@thp.io All rights reserved.

[follows full text of the urlwatch license]

While a lot of improvements have been made from urlwatch 2.21, there’s no lack of proper acknowledgement of the package’s roots in Thomas Perl’s code -- in multiple ways -- and of its full, explicit, licensing.

smithl commented 2 years ago

Hi @mborsetti ,

copyright

This seems pretty clear from our perspective. You appear to feel its okay to copy @thp 's code but not the requested license lines as well. While we understand your argument, its simply not in good taste. In fact it suggests you are trying to obfuscate what you have done here.

mborsetti commented 2 years ago

@smithl,

This is my last message on this pedantic subject.

mhalano commented 2 years ago

@mborsetti As far as I can see, this part must be present. I understand it can bloat the file, but the part itself says it must be kept, for good or for worse. I would like to suggest you to put back this part on the files from urlwatch and use LICENSE file to say about webchanges and how it's a derived work. But the part must remain.