AI Horde’s AGPL3 hordelib receives DMCA take-down from hlky
dbzer0.com
dbzer0.com
I find it hard to be sympathetic, personally.
You don't remove copyright notices when you copy code files from one repo to another.
This is seemly a clearly vindictive and deliberate action by the OP to remove credit for the files, due to whatever personal history:
> I would rather not have any mention or contribution of this person in our library, as they go against everything the Free Software movement stands for!
The GPL FAQ is unambiguous on this point: https://www.gnu.org/licenses/gpl-faq.en.html#IWantCredit
It's petty and seems quite dishonest to file a DMCA for something like this, and fixing it should give you a perfectly ok license to continue to use it.
...but just think, if you hadn't been petty and removed it in the first place, it wouldn't have been an issue at all.
To some degree, you reap what you sow.
That said, I was under the impression that my actions were License compliant due to section 7b
> Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
> Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
I.e. since that blurb didn't request explicit preservation, it was ok to remove.
> I don't want to get into a he said/he said discussion because it won't go anywhere
Nothing against you or your project, but this is hardly a "they said I said" thing, this is clearly a violation of the AGPLv3.It surely could be handled nicer and all that, probably from both sides, not questioning that part, but messing with copyright statements willy-nilly is never a good idea if one isn't absolutely sure (i.e., got legal counsel) that it is OK.
> Will just say that it's bad enough that it forced us to rewrite an AGPL library
One _can_ fork a AGPLv3 project, but one needs to adhere to the terms. > in which I was personally contributing for months
Again, not wanting to go against you, but you made those contributions accepting the License of the work.And more importantly the AGPLv3 will also protect your contributions from being re-licensed or have your copyright notices removed, well at least if you did not sign some CLA, i.e., the protection goes both ways.
> I was under the impression that my actions were License compliant due to section 7
Well: > *(if authorized by the copyright holders of that material)*
Did you get authorization by the copyright holders? As the terms of section 7 are not unconditionally, which is made quite clear, they are just to make the license a bit more flexible to adapt to the rights a project want's to grant to forks to differ what counts as (forbidden) "further restrictions" and what might not.> Requiring preservation of specified reasonable legal notices
Given that this didn't appear. I felt it was OK.
> One _can_ fork a AGPLv3 project, but one needs to adhere to the terms.
We had already forked and had kept all the copyrights statements intact. We still ended up having to rewrite...
Why?
Suffice to say, hlky was absolutely hell-bent on us NOT using the previous AGPL library after we forked it, and used many underhanded means to cause us constant stress and worries. At some point we decided it wasn't worth it.
I dont know if you are OP, but plenty of other UIs have interrogator code, like https://github.com/VoltaML/voltaML-fast-stable-diffusion/tre...
https://lwn.net/Articles/912355/
I think stripping copyright notices is only appropriate if one entity unambiguously owns the copyright of all the code (which may imply not accepting outside contributions or requiring signing a CLA, and not copying code over from other code bases even when the license matches).
> In the process I stripped out the explicit license mention in those files, because our whole repository is licensed under AGPL3, and it goes against our style to add unnecessary licenses to each file.
It's not a matter of style. Also AGPL3 requires attribution, let alone retaining copyright information, like many other FOSS licenses.
Starting the discussion with the DMCA process is certainly a dick move, but we will never know if the other party started with it, or brought up the issue informally first.
This is unnecessarily pedantic. Provided attribution is present in some form, cleaning repeated licensing headers from other files should be perfectly legal.
The post seems to imply this person is a total d*k, but there’s always more than one side to the story
What’s hlky’s version of this?
NodeJS uses the MIT license [1] and reproduces the license for the MIT-licensed Acorn.
OP stripped the copyright statement and license attribution without mentioning hlky or the originating project in the license file. OP proceeded to confuse matters by assuming that "AGPL" suffices. It seems like the copyright statement was the offense here.
A simple email or github issue might have resolved the matter. Given the tenor of the relationship between the OP and hlky it should be no surprise that hlky opted for the "nuclear option"
The license is here:
https://github.com/Haidra-Org/hordelib/blob/main/LICENSE
Does it allow that or not? I skimmed through it and can't find a section which forbids it.
> You may convey verbatim copies of the Program's source code as you
> receive it, in any medium, provided that you conspicuously and
> appropriately publish on each copy an appropriate copyright notice;
> keep intact all notices stating that this License and any
> non-permissive terms added in accord with section 7 apply to the code;
> keep intact all notices of the absence of any warranty; and give all
> recipients a copy of this License along with the Program.
So by removing the copyright notice from "each copy" of the "convey"ed source code, I think you could argue they violated this.
But as others have argued, even if you don't believe that this section forbids it, the polite thing to do would be to either a) get permission to remove the copyright notices, or at the very least b) create a file (e.g. CONTRIBUTORS.md, or a section of the readme) and place the copyright information in there. Saying "Ooh, we don't like X's name at the top of the file, it's too ugly" without any attempt to maintain some acknowledgement might not be a violation, but certainly isn't within the spirit of the AGPL, the main point of which is to "(1) assert copyright on the software".
As I said, I tried to stick to the facts in this post so it's easy in isolation to think we're being petty dicks, but there's a reason we had to rewrite a WHOLE AGPL3 ML library from scratch, instead of re-use the existing AGPL3 library we had, because it was associated with hlky.
So I discussed this situation generically, because the specific situation doesn't really matter given the question asked. And no, I said it was impolite - but I totally understand that impolite is a big step up from toxic.
The bigger issue is, and maybe this doesn't apply here, but creating a situation where there may be a legal copyright claim to be made simply gives the a-hole more leverage over you, which is exactly what you don't want, if even the mention of his username is triggering.
(I won't point out that you mentioned his username 10 times in your blog post!)
So weigh up the risk/reward. If he's done a DMCA, and you've batted it back, the next step is legal proceedings. A license is exactly that - a license, it never assigns ownership. If I remember correctly, AGPL3 has protections so that he cannot revoke the license on a whim - unless you break the AGPL3 license.
You will never own the copyright to that file, no matter how much you desperately want to, no matter how many times you change the file, no matter if you remove his name, no matter how much you feel like you've paid in dealing with him being a dick. If he can make a case that the file you have is not significantly different in nature to the one he wrote, he still owns that file.
Toxic people will be toxic, but never get into a pissing fight with a skunk.
see: https://github.com/pharmapsychotic/clip-interrogator
P.S. It's strange to me that this is a big deal, there are plenty of libraries for this stuff afaik, but I don't pay attention to licenses personally.
i don't see a problem in that. Unless the other party is alleging that they have removed AGPL license only to put the whole project under AGPL license, uh
So, if you ever use code from someone else, track where it came from.