14 ms·
No right to relicense this project
- Confirm2754 8mo ago[dead]
- charcircuit 8mo agoClean room implementations are not necessary to avoid copyright infringement.
- mytailorisrich 8mo ago> Licensed code, when modified, must be released under the same LGPL license. Their claim that it is a "complete rewrite" is irrelevant, since they had ample exposure to the originally licensed code (i.e. this is not a "clean room" implementation). I don't think that the second sentence is a valid claim per se, it depends on what this "rewritten code" actually looks like (IANAL). Edit: my understanding of "clean room implementation" is that it is a good defence to a copyright infrigement claim because there cannot be infringement if you don't know the original work. However it does not mean that NOT "clean room implementation" implies infrigement, it's just that it is potentially harder to defend against a claim if the original work was known.
- _ache_ 8mo ago"Exposure" means here, I think, that they feed the 6.X code version to Claude.
- Radle 8mo agothe ai copy pasted the existing project. How can such a procedure not fall under copyright? Especially now that ai can do this for any kind of intellectual property, like images, books or sourcecode. If judges would allow an ai rewrite to count as an original creation, copyright as we know it completely ends world wide. Instead whats more likely is that no one is gonna buy that shit
- charcircuit 8mo ago>the ai copy pasted the existing project. The change log says the implementation is completely different, not a copy paste. Is that wrong? >Internal architecture is completely different (probers replaced by pipeline stages). Only the public API is preserved.
- fzeroracer 8mo agoIt's up to them to prove that a) the original implementation was not part of whatever data set said AI used and b) that the engineers in question did not use the original as a basis.
- charcircuit 8mo agoIt's up to the accuser to prove that they copied it and did not actually write it from scratch as they claimed.
- fzeroracer 8mo agoNo, that's not how copyright laws work. Especially in a world where the starting point is the accused making something and marketing it as someone else's IP with a license change.
- Ukv 8mo agoIt's still on the claimant to establish copying, which usually involves showing that the two works are substantially similar in protected elements. That the defendants had access to the original helps establish copying, but isn't on its own sufficient. Only after that would the burden be on the defendants, such as to give a defense that their usage is sufficiently transformative to qualify as fair use.
- klustregrif 8mo agoIt will hold up in court. The line of argument of “well I went into a dark room with only the first Harry Potter book and a type writer and reproduced the entire work, so now I own the rewrite” doesn’t hold up in court, it doesn’t either when when you put AI in the mix. It doesn’t matter if the result is slightly different, a judge will rule based on the fact that this even is literally what the law is intended to prevent, it’s not a case of which incantation or secret sentence you should utter to free the work of its existing license.
- mytailorisrich 8mo ago> “well I went into a dark room with only the first Harry Potter book and a type writer and reproduced the entire work, so now I own the rewrite” This is not a good analogy. A "rewrite" in context here is not a reproduction of the original work but a different work that is functionally equivalent, or at least that is the claim.
- IanCal 8mo agoPossibly important is that it’s largely api compatible but it’s not functionally equivalent in that its performance (as accuracy not just speed) is different.
- deleted 8mo ago[deleted]
- red_admiral 8mo agoTo stay with the analogy, Harry Potter is not a rewrite of A Wizard of Earthsea, even if they both contain schools that teach magic.
- jerven 8mo agoI was wondering how the existing case law of translated works, from one language to an other works here. It would at suggest that this is an infringement of the license especially because of the lack of creativity. But IANAL and of course no idea of applicable case law.
- spacedcowboy 8mo agoI came here to say this. While I agree with Mark that what they’re doing is not nice, I’m not sure it’s wrong. A clean-room implementation is one way the industry worked around licensing in the past (and present, I guess), but it’s not a requirement in law as far as I know. I’m not sure that “a total rewrite” wouldn’t, in fact, pass muster - depending on how much of a rewrite it was of course. The ‘clean room’ approach was just invented as a plausible-sounding story to head off gratuitous lawsuits. This doesn’t look as defensible against the threat of a lawsuit, but it doesn’t mean it wouldn’t win that lawsuit (I’m not saying it would, I haven’t read or compared the code vs its original). Google copied the entire API of the Java language, and got away with it when Oracle sued. Things in a courtroom can often go in surprising ways… [edit: negative votes, huh, that’s a first for a while… looks like Reddit/Slashdot-style “downvote if you don’t like what is being said” is alive and well on HN]
- actionfromafar 8mo agoI thought we were debating if it was legal, not if it's wrong. The law is about creativity. Was this creative or a more mechanical translation?
- toyg 8mo agoLol at the statement that "clean room" would have been invented to scare people from suing. It's the opposite: clean room is a fairly-desperate attempt to pre-empt accusations in court when it is expected that the "derivative" argument will be very strong, in order to then piggyback on the doctrine about interoperability. Sometimes it works, but it's a very high bar to clear.
- duskdozer 8mo agoI spent like two minutes looking at the diff between the original and the supposed "clean room" implementation [1] and already found identical classes, variable names, methods, and parameters. It looks like there was no actual attempt at clean-rooming this, regardless of whether that "counts". [1]https://github.com/chardet/chardet/compare/6.0.0.post1...7.0.0 https://github.com/chardet/chardet/compare/6.0.0.post1...7.0...
- bo1024 8mo agoI agree that (while the ethics of this are a different issue) the copyright question is not obviously clear-cut. Though IANAL. As the LGPL says: > A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) Is v7.0.0 a [derivative work](https://en.wikipedia.org/wiki/Derivative_work https://en.wikipedia.org/wiki/Derivative_work)? It seems to depend on the details of the source code (implementing the same API is not copyright infringement).
- hu3 8mo agoI torn on where the line should be drawn. If the code is different but API compatible, Google Java vs Oracle Java case shows that if the implementation is different enough, it can be considered a new implementation. Clean room or not.
- spoiler 8mo agoThat whole clean room argument makes no sense. Project changed governance and was significantly refactored or reimplemented... I think the maintainers deserve to call it their own. Original-pre MIT release can stay LGPL. I don't think this is a precedent either, plenty of projects changed licenses lol. I keep kind mixing them up but the GPL licenses keep popping up as occasionally horror stories. Maybe the license is just poorly written for today's standards?
- DarkmSparks 8mo agoNo. Because they couldnt have done any of that refactoring without a licence to do so, and that licence forbids them from relicencing it.
- spoiler 8mo agoSo effective, LGPL means you freely give all copyright for your work to the license holder? Even if the license holder has moved on from the project? What if I decide to make a JS or Rust implementation of this project and use it as inspiration? Does that mean I'm no longer doing a "clean room" implementation and my project is contaminated by LGPL too?
- justinclift 8mo agoThe standard way of "relicensing" a project is to contact all of the prior code contributors about it and get their ok. Generally relicensing is done in good faith for a good reason, so pretty much everyone ok's it. Trickiness can turn up when code contributors aren't contactable (ie dead, missing, etc), and I'm unsure of the legally sound approach to that.
- geenat 8mo agoFastAPI's underlying library, Starlette, has been going through licensing shenanigans too lately: https://github.com/Kludex/starlette/issues/3042 https://github.com/Kludex/starlette/issues/3042 Be really careful who you give your projects keys to, folks!
- Orygin 8mo agoThat doesn't seem related at all, this is just adding attribution, not changing the license through LLM-washing
- Roritharr 8mo agoAs part of my consulting, i've stumbled upon this issue in a commercial context. A SaaS company who has the mobile apps of their platform open source approached me with the following concern. One of their engineers was able to recreate their platform by letting Claude Code reverse engineer their Apps and the Web-Frontend, creating an API-compatible backend that is functionally identical. Took him a week after work. It's not as stable, the unit-tests need more work, the code has some unnecessary duplication, hosting isn't fully figured out, but the end-to-end test-harness is even more stable than their own. "How do we protect ourselves against a competitor doing this?" Noodling on this at the moment.
- mellosouls 8mo agoThe famous case Google vs Oracle may need to be re-evaluated in the light of Agents making API implementation trivial. https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_Inc https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_....
- littlecranky67 8mo agoInteresting case, IANAL but sounds legal and legit. The AI did not have expose to the backend it re-implemented. The API itself is public and not protectable.
- bandrami 8mo agoOTOH as of yesterday the output of the LLM isn't copyrightable, which makes licensing it difficult
- scosman 8mo agoSounds like they didn’t build a proper clean room setup: the agent writing the code could see the original code. Question: if they had built one using AI teams in both “rooms”, one writing a spec the other implementing, would that be fine? You’d need to verify spec doesn’t include source code, but that’s easy enough. It seems to mostly follow the IBM-era precedent. However, since the model probably had the original code in its training data, maybe not? Maybe valid for closed source project but not open-source? Interesting question.
- zozbot234 8mo agoThis seems right to me. If you ask a LLM to derive a spec that has no expressive element of the original code (a clean-room human team can carefully verify this), and then ask another instance of the LLM (with fresh context) to write out code from the spec, how is that different from a "clean room" rewrite? The agent that writes the new code only ever sees the spec, and by assumption (the assumption that's made in all clean room rewrites) the spec is purely factual with all copyrightable expression having been distilled out. But the "deriving the spec (and verifying that it's as clean as possible)" is crucial and cannot be skipped!
- oytis 8mo agoIt requires the original project to not be in the training data for the model for it to be a clean room rewrite
- zozbot234 8mo agoThat only matters if expression of the original project really does end up in the rewrite, doesn't it? This can be checked for (by the team with access to the code) and it's also quite unlikely at least. It's not trivial at all to have an LLM replicate their training verbatim: even when feasible (the Harry Potter case, a work that's going to be massively overweighted in training due to its popularity) it takes very specific prompting and hinting.
- 8mo ago
- q3k 8mo ago> 12-stage detection pipeline What is this recent (clanker-fueled?) obsession to give everything fancy computer-y names with high numbers? It's not a '12 stage pipeline', it's just an algorithm.
- IanCal 8mo agoIsn’t it? I mean 12 stage pipeline has a very specific meaning to me in this area, and is not a new way of describing something. The release notes description sounds like a multi stage pipeline. Do you know this kind of area and are commenting on the code?
- mamoon_syed 8mo ago"ok chatgpt, what name do i give to this algorithm, so it sounds fancy and advanced?"
- p0w3n3d 8mo agoWow that's hot. I was not aware that you need to be "untainted" by the original LGPL code. This could mean that... All AI generated code is tainted with GPL/LGPL because the LLMs might have been taught with it
- actionfromafar 8mo ago[flagged]
- wongarsu 8mo agoBeing completely untainted is the standard many reimplementations set for themselves to completely rule out legal trouble. For example ReactOS won't let you contribute if you have ever seen Windows code. Because if you have never seen it, there can be no allegation that you copied it. That is however stricter than what's actually legally necessary. It's just that the actual legal standard would require a court ruling to determine if you passed it, and everyone wants to avoid that. As a consequence there also aren't a lot of court cases to draw similarities to
- indrora 8mo ago> For example ReactOS won't let you contribute if you have ever seen Windows code. Because if you have never seen it, there can be no allegation that you copied it. I've heard this called in some circles "The curse of knowledge." The same thing applies to emulator developers, especially N64 developers (and now Nintendo emulator developers in general) after the Oman Archive and later Gigaleaks. There's an informal "If you read this, you can NEVER directly contribute to the development of that emulator, ever." This comes to a head when a relatively unknown developer starts contributing oddly specific patches to an emulator.
- imcritic 8mo agoLicenses are cancer and the enemy of opensource.
- spoiler 8mo agoI think it's just the GPL family of licenses that tend tend to cause most problems. I appreciate their intent, but the outcome often leaves a lot to be desired.
- vova_hn2 8mo agoI like to think about GPL as a kind of an artistic performance and an elaborate critique of the whole concept of copyright. Like, "we don't like copyright, but since you insist on enforcing it and we can't do anything against it, we will invent a clever way to use your own rules against you".
- jonathanstrange 8mo agoThat is not really the motivation behind GPL licenses. These licenses have been designed to ensure by legal means that anyone can learn from the source code of software, fix bugs on their own, and modify the software to their needs.
- joquarky 8mo agoWe've surpassed the need for this now.
- jonathanstrange 8mo agoIt doesn't matter whether the AI or a human learns from the software, the source code for the learning must come from somewhere.
- Orygin 8mo agoWtf are these comments? A LGPL licensed project, guaranteed to be free and open source, being LLM-washed to a permissive license, and GPL is the problem here? They are literally stealing from open source, but it's the original license that is the issue?
- myrmidon 8mo agoI think Mark Pilgrim misrepresents the legal situation somewhat: The AI rewrite does not legally need to be a clean room implementation (whatever exactly that would even mean here). That is just the easiest way to disambiguate the legal situation (i.e. the most reliable approach to prevent it from being considered a derivative work by a court). I'm curious how this is gonna go.
- oytis 8mo agoI wonder if LLMs will push the industry towards protecting their IP with patents like the other branches of engineering rather than copyright. If you patent a general idea of how your software works then no rewrite will be able to lift this protection.
- skeledrew 8mo agoGeneral patents aren't allowed.
- pocksuppet 8mo agoIf there wasn't a specific limitation against software patents, you could patent the process of "first we look at the first 3 bytes for a BOM, then we take statistics of the most frequently used bytes and match them against this table..." which is the software equivalent of "the device contains a large box full of water, underneath which is a flame and on the upper side is a pipe leading to a valve box which contains..." Either one would still have to meet the requirements like being sufficiently non-obvious. The first steam engine was patented, even though you couldn't patent one any more.
- soulofmischief 8mo agoThe README has clearly been touched by an LLM. Count the idiosyncrasies: “chardet 7.0 is a ground-up, MIT-licensed rewrite of chardet. Same package name, same public API — drop-in replacement for chardet 5.x/6.x” Do people not write anymore?
- remix2000 8mo agoFor me, some projects I start by writing a readme.txt by hand. That saves me time in cases I realize I'd be making something pointless. (I don't use chatbots when coding though)
- tclancy 8mo agoI finally had to mute r/isthisai on Reddit because there’s now a subset of people who see the hand of AI in everything. Could that be generated by a clanker? Sure, but it’s also exactly what I would write if I wanted a quick pitch for a library that addresses some immediate concerns. It’s also what I would focus on if the fact we had just finished a rebuild from scratch. As Freud famously said, sometimes an em dash is just an em dash.
- adrian17 8mo agoFWIW, I don't think there's even a room for interpretation here, given the commit that created the README (and almost all commits since the rewrite started 4 days ago) is authored by > dan-blanchard and claude committed 4 days ago
- tclancy 8mo agoSure, I just could use a break from the needless side tracks.
- soulofmischief 8mo agoWe are both trying to steer an internet towards a place we want to be. The em dash is just a bonus, the grammatical structure is the giveaway. I'd invite Blanchard to argue that it wasn't LLM-generated. I use AI tooling all day every day and can easily pick out when something was written by most popular modern models. I welcome an agentic web; it's the inevitable future. But not like this. I want things to get better, not worse.
- Ardren 8mo agoHuh, 7e25bf4 was a big commit. 2,305 files changed +0 -546871 lines changed https://github.com/chardet/chardet/commit/7e25bf40bb4ae6884892c094080e011290494947 https://github.com/chardet/chardet/commit/7e25bf40bb4ae68848...
- vintagedave 8mo agoImpossible to code inspect and verify. Someone else commented 'smells like a supply chain attack' and while I'm sure it's not intended to be, there is no way to verify. And who believes, in half a million lines of code, no bugs have been introduced?
- skeledrew 8mo agoI feel like the author is missing a huge point here by fighting this. The entire reason why GPL and any other copyleft license exists in the first place is to ensure that the rights of a user to modify, etc a work cannot be ever taken away. Before, relicensing as MIT - or any other fully permissive license - would've meant open doors to apply restrictions going forward, but with AI this is now a non-issue. Code is now very cheap. So the way I see this, anyone who is for copyleft should be embracing AI-created things as not being copyrightable (or a rewrite being relicensable) hard*.
- Maken 8mo agoThe user is the end-user of the product. If the relicensing means that someone down the line receives a close-down binary application that he cannot modify, that's a violation of the user's rights.
- skeledrew 8mo agoBut it's a non-issue as said user can just have AI reverse engineer said binary. Or reimplement something with the same specs. That's what it means for code to be cheap.
- duskdozer 8mo agoIt may be "cheap" at the moment. Let's revisit when the AI companies decide they need to regain a little bit of the hundreds of billions of dollars in losses they're creating.
- skeledrew 8mo agoChina is always waiting for this. And the US won't allow China to get all the users who'd emigrate over increased costs, so the costs will remain low. They'll have to find ways to recoup that don't involve raising the cost of code.
- red_admiral 8mo agoThat is still true, but it was more relevant back when "user" meant "programmer at another university". The "end-user" for most software is not a programmer these days.
- binaryturtle 8mo agoIsn't the real issue here that tons of projects that depend on the "chardet" now drag in some crappy still unverified AI slop? AI forgery poisoning, IMHO. Why does this new project here needed to replace the original like that in this dishonourable way? The proper way would have been to create a proper new project. Note: even Python's own pip drags this in as dependency it seems (hopefully they'll stick to a proper version)
- robinsonb5 8mo agoThis indeed the real issue (not the AI angle per se, but the wholesale replacement. The licensing issue is real, but less important IMO). Half a million lines of code have been deleted and replaced over the course of four days, directly to the main branch with no opportunity for community review and testing. (I've no idea whether depending projects use main or the stable branch, but stable is nearly 4 years old at this point, so while I hope it's the version depending projects use, I wouldn't put money on it.) The whole thing smells a lot like a supply chain attack - and even if it's in good faith, that's one hell of a lot of code to be reviewed in order to make sure.
- earthscienceman 8mo agoWoah. As someone not in this particular community but dependent on these tools this is exactly the terrifying underbelly we've all discussed with the user architecture of tools like pip and npm. It's horrifying that a major component just got torn apart, rebuilt, and deployed to anyone who uses those python ecosystems (... many millions? ... billions of people?)
- duskdozer 8mo agoThe test coverage is going to be entirely different, unless of course they copied the tests, which would then preclude them from changing the license. They didn't even bother to make sure the CI passed on merging a major version release https://github.com/chardet/chardet/actions/runs/22563903687/job/65355976168 https://github.com/chardet/chardet/actions/runs/22563903687/...
- duskdozer 8mo ago
- dathinab 8mo agoThe argument that a rewrite is a copyright violation because they are familiar with the code base is not fully sound. "Insider Knowledge" is not relevant for copyright law. That is more in the space of patent law then copyright law. Or else a artist having seen a picture of a sunset over an empty ocean wouldn't be allowed to pain another sunset over an empty ocean as people could claim copyright violation. Through what is a violation is, if you place the code side by side and try to circumvent copyright law by just rephrasing the exact same code. This also means that if you give an AI access to a code base and tell it to produce a new code base doing the same (or similar) it will most likely be ruled as copyright violation as it's pretty much a side by side rewriting. But you very much can rewrite a project under new license even if you have in depth knowledge. IFF you don't have the old project open/look at it while doing so. Rewrite it from scratch. And don't just rewrite the same code from memory, but instead write fully new code producing the same/similar outputs. Through while doing so is not per-se illegal, it is legally very attackable. As you will have a hard time defending such a rewrite from copyright claims (except if it's internally so completely different that it stops any claims of "being a copy", e.g. you use complete different algorithms, architecture, etc. to produce the same results in a different way). In the end while technically "legally hard to defend" != "illegal", for companies it's most times best to treat it the same.
- RcouF1uZ4gsC 8mo agoI think you could have an LLM produce a written English detailed description of the complete logic of the program and tests. Then use another LLM to produce code from that spec. This would be similar to the cleanroom technique.
- robin_reala 8mo agoAssuming the second LLM hadn’t been trained on the existing codebase. Which in this case we can’t know, but can assume that it was.
- knollimar 8mo agoDoes the second LLM have the codebase in its training?
- antirez 8mo agoI believe that Pilgrim here does not understand very well how copyright works: > Their claim that it is a "complete rewrite" is irrelevant, since they had ample exposure to the originally licensed code This is simply not true. The reason why the "clean room" concept exists is precisely since actually the law recognizes that independent implementations ARE possibile. The "clean room" thing is a trick to make the litigation simpler, it is NOT required that you are not exposed to the original code. For instance, Linux was implemented even if Linus and other devs where well aware of Unix internals. The law really mandates this: does the new code copy something that was in the original one? The clean room trick makes it simpler to say, it is not possible, if there are similar things it is just by accident. But it is NOT a requirement.
- aaron695 8mo ago[dead]
- jacquesm 8mo agoThis is correct. I think any author of a main chunk of code that they claim ownership to (which is probably all of us!) should at least study the basics of copyright law. Getting little details wrong can cost you time, money and eventually your business if you're not careful.
- deleted 8mo ago[deleted]
- cubefox 8mo agoIf you let an LLM merely rephrase the codebase, that's like letting it rephrase the Harry Potter novels. Which, I'm pretty sure, would still be considered a copy under copyright law, not an original work, despite not copying any text verbatim.
- actsasbuffoon 8mo agoBut what if it didn’t summarize Harry Potter? What if it analyzed Harry Potter and came back with a specification for how to write a compelling story about wizards? And then someone read that spec and wrote a different story about wizards that bears only the most superficial resemblance to Harry Potter in the sense that they’re both compelling stories about wizards? This is legitimately a very weird case and I have no idea how a court would decide it.
- darkwater 8mo agoIt's not clear at all why the current maintainers wanted/needed this re-licensing. I guess that their employee, Monarch Money, wants to use derivative work in their application without releasing the changes? It was already LGPL, perfect for a library, not GPL.
- tokai 8mo ago"I prefer MIT/BSD licenses just because they're simpler"[0] Seems like there is no real point, just vibes. [0] https://github.com/chardet/chardet/issues/36 https://github.com/chardet/chardet/issues/36
- pseudalopex 8mo agoPython wouldn't take LGPL code in the standard library. And Dan Blanchard imagined more people would want to work on it.[1] [1] https://github.com/chardet/chardet/issues/327#issuecomment-4005324385 https://github.com/chardet/chardet/issues/327#issuecomment-4...
- darkwater 8mo agoThat take and the link within it to https://github.com/chardet/chardet/issues/36 https://github.com/chardet/chardet/issues/36 which is from 2014 (!!) and revived in 2021 (!) make me think now that Dan Blanchard is in good faith, but still acted in a naive manner. Rewriting from "scratch" with Claude Code and basically taking over the project by changing the license, all in one single pull request, well... it's not going to end well on the public relations side.
- pmarreck 8mo agoI have successfully reproduced a few projects with LLM assistance via strict cleanroom rules and only working off public specifications.
- b40d-48b2-979e 8mo agoOnce you use a LLM, the room is no longer clean.
- bdangubic 8mo ago[flagged]
- b40d-48b2-979e 8mo agoNo, it isn't. A human wasn't trained on the material they're trying to reproduce.
- pocksuppet 8mo agoHuman training and AI training are legally distinct processes.
- pmarreck 8mo agoDoes that hold up if it’s in an entirely different language? Because I don’t think so
- duckerude 8mo agoPerhaps notable: years ago the original original chardet was rewritten with a different license: https://github.com/hsivonen/chardetng https://github.com/hsivonen/chardetng AFAIK this was not a clean room reimplementation. But since it was rewritten by hand, into a different language, with not just a different internal design but a different API, I could easily buy that chardetng doesn't infringe while Python chardet 7 does.
- noosphr 8mo agoIf the code is written by an Ai they can't copyright it. It is all public domain.
- QuadmasterXLII 8mo ago“Mr Teacher, how many words do I have to change after copy pasting wikipedia so its not plagiarism?” has grown up and entered the workforce. Pin your dependency versions people! With hashes at this point, cant trust anybody out here.
- jmyeet 8mo agoThere's a subtext in your point that I want to expand on. Tech people, particularly engineers, tend to make a fundamental error when dealing with the law that almost always causes them to make wrong conclusions. And that error is that they look for technical compliance when so much of the law is subjective and holistic. An example I like to use is people who do something illegal on the Internet and then use the argument "you can't prove I did it (with absolute certainty)". It could've been someone who hacked your Wifi. You don't know who on the Wifi did it, etc. But the law will look at the totality of the evidence. Did the activity occur when you were at home and stop when you weren't? How likely are alternative explanations? Etc. All of that will be considered based on some legal standard depending on the venue. In civil court that tends to be "the preponderance of the evidence" (meaning more likely than not) while in criminal court it's "beyond a reasonable doubt" (which is a much higher standard). So, using your example, an engineer will often fall into a trap of thinking they can substitute enough words to have a new original work, Ship of Theseus-like. And the law simply doesn't work that way. So, when this gets to a court (which it will, it's not a question of "if"), the court will consider how necessary the source work was to what you did. If you used it for a direct translation (eg from C++ to Go) then you're going to lose. My prediction is that even using it in training data will be cause for a copyright claim. If you use Moby Dick in your training data and ask an LLM to write a book like Moby Dick (either explicitly or implicitly) then you're going to have an issue. Even if you split responsibilities so one LLM (training on Moby Dick) comes up with a structure/prompt and another LLM (not trained on Moby Dick) writes it, I don't think that'll really help you avoid the issue.
- npongratz 8mo ago> And that error is that they look for technical compliance when so much of the law is subjective and holistic. I know it sounds like an oversimplification, but "got off on a technicality" is a common thing among the well-connected and well-heeled. Sure, us nerds probably focus too much on the "technicality" part, since we are by definition technical, but the rest is wishy-washy, unfair BS as far as many of our brains work much of the time.
- markthered 8mo agoThe copyright argument is a sidetrack both in the PR comment thread and here. The issue opened claims the new code is based on the old code, and therefore derivative, and therefore must be offered in a modified version of the source code under the previous license, LGPL. The complaint is the maintainers violated the terms of LGPL, that they must prove no derivation from the original code to legally claim this is a legal new version without the LGPL license. Claim is if they or Claude read the old code (or of course directly use any of it) it is a license violation. “… in the release 7.0.0, the maintainers claim to have the right to “relicense” the project. They have no such right; doing so is an explicit violation of the LGPL. Licensed code, when modified, must be released under the same LGPL license. Their claim that it is a "complete rewrite" is irrelevant, since they had ample exposure to the originally licensed code (i.e. this is not a "clean room" implementation).“ By this reasoning, I am genuinely asking (I’m not a license expert) if a valid clean room rewrite is possible, because at a minimum you would need a spec describing all behavior, which ses to require ample exposure to the original to be sufficiently precise.
- Pannoniae 8mo agoThat's not what a derivative work means, though. Being exposed to something doesn't mean you can't create original work which is similar to it (otherwise every song or artwork would be a derivative work of everything before it) People do cleanroom implementations as a precaution against a lawsuit, but it's not a necessary element. In fact, even if some parts are similar, it's still not a clear-cut case - the defendant can very well argue that the usage was 1. transformative 2. insubstantial to the entirety of work. "The complaint is the maintainers violated the terms of LGPL, that they must prove no derivation from the original code to legally claim this is a legal new version without the LGPL license." The burden of proof is on the accuser. "I am genuinely asking (I’m not a license expert) if a valid clean room rewrite is possible, because at a minimum you would need a spec describing all behavior, which ses to require ample exposure to the original to be sufficiently precise." Linux would be illegal if so (they had knowledge of Unix before), and many GNU tools are libre API-compatible reimplementations of previous Unix utilities :)
- simiones 8mo agoThe copyright argument is the only relevant argument. If the new work is a derived work of the original, then it follows by definition that the new work is under the copryight of the original's author(s). Since the original chardet was distributed by its author(s) only under the LGPL, any copy/derivative of it that anyone else creates must be distributed only under the LGPL, per the terms of the LGPL. Now, whether chardet 7.0.0 is a derivative of chardet or not is a matter of copyright law that the LGPL has no say on, and a rather murky ground with not that much case law to rely on behind it. If it's not, the new author is free to distribute chardet 7.0.0 under any license they want, since it is a new work under his copyright.
- kreco 8mo agoThis is not unprecedented, TCC relicensed part of its code by being approved by all authors: https://repo.or.cz/tinycc.git/blob/3d963aebcd533da278f086a3e559d24b961e8c31:/RELICENSING https://repo.or.cz/tinycc.git/blob/3d963aebcd533da278f086a3e... The interesting part is that the original author is against it but some people claims it could be a rewrite and not a derivative work. I don't know the legal basis of everything but it's definitly not morally correct toward the original author.
- kreco 8mo agoA comment from 2021: > Unfortunately, because the code that chardet was originally based on was LGPL, we don't really have a way to relicense it. Believe me, if we could, I would. There was talk of chardet being added to the standard library, and that was deemed impossible because of being unable to change the license. So the person that did the rewrite knew this was a dive into dangerous water. That's so disrespectful.
- AlexandrB 8mo agoSetting aside the legal questions, what a nasty thing to do. I would expect to see this kind of move from some big corpo, not an OSS maintainer. This feels like it runs counter to the whole open source ethos and undermines the idea that authorship means anything anymore.
- pocksuppet 8mo agoIf you license a project MIT, you're telling the legal system that you don't want to own it.
- nilsbunger 8mo agoDoes using the old version’s tests to create a new version make it a derivative work? That’s certainly some pretty tight coupling.
- pocksuppet 8mo agoMy gut feeling is no, a work is not a derivative of a compliance test suite that it passes and was used to guide it. But I'm not a lawyer.
- nilsbunger 8mo agoWe’re going to be in a very weird place: * LLMs make it trivial to recreate almost any software using its test suite (maybe not a derivative work) * LLM generated code has no copyright (according to current court interpretations) Soon we will be able to make an unlicensed copy of anything if we have its test suite and a little money for tokens.
- pocksuppet 8mo ago* LLM generated code from a test suite is crap
- joquarky 8mo ago> We’re going to be in a very weird place It's only weird because copyright is an unnatural abstraction that requires increasing amounts of legal upkeep to maintain. And by the standard of promoting the progress of science and the useful arts, it is rapidly becoming obsolete.
- TZubiri 8mo agoInteresting. While I am obviously Team GPL and not team "I 'rewrote' this with AI so now it's mine", I'm team anti-fork, and definitely not team 'Chardet'. Forking should be a last resort, one better option is to yeet the thing entirely. And chardet lends itself perfectly for this, using chardet is a sign of an issue and low craftmanship, either by the developer using chardet, or the developer that failed to signal the encoding of their text. (See Joel Spolsky's "The absolute minimum every developer should know about character encoding") (And let's be honest, it's probably the developers problem, not everything is someone else's fault.) Just uninstall this thing where you can, and avoid installing it always, because you always can. You know I'm right. I will not be replying to copium
- kermatt 8mo agoOn a side note, it is interesting to see Mark Pilgrim rise from the "dead": https://en.wikipedia.org/wiki/Mark_Pilgrim#%22Disappearance%22_from_the_Internet https://en.wikipedia.org/wiki/Mark_Pilgrim#%22Disappearance%... His Python books, although a bit dated, are something I still recommend to new Python programmers.
- darkwater 8mo agoLet's see how much time it takes for the Wikipedia page to mention the "a2mark" GitHub user :) (I can hear a "challenge accepted" from some random HNer already)
- jrochkind1 8mo agoDoes anyone understand the intent behind the changed license on the package, why are the current maintainers trying to do it in the first place? What's actually going on?
- pseudalopex 8mo agohttps://news.ycombinator.com/item?id=47260749 https://news.ycombinator.com/item?id=47260749
- red_admiral 8mo agoUnicode detection is the kind of utility the language maintainers want in their package collection if not in the standard library, and programmers who have to do anything with "plain text" files might want to rely on. Releasing a core library like this under a genuinely free licence (MIT) is a service to anyone working in the ecosystem.
- pocksuppet 8mo agoMaybe. Enabling more GPL software to become proprietary isn't exactly a service.
- deleted 8mo ago[deleted]
- red_admiral 8mo agoI think they moved chardet from GPL to MIT? If the maintainer made future versions proprietery, they'd surely be forked and then kicked out of the python package repo?
- pocksuppet 8mo agoThat's what MIT does. It lets downstream versions become proprietary.
- omnibrain 8mo ago
- red_admiral 8mo agoThe law is what a court says it is; there is precedent for decisions on human rewrites but LLM (assisted) code might still be fairly uncharted territory.
- dminor 8mo agoAnother tangent that I didn't see in the thread is that the Supreme Court just confirmed a ruling that LLM created art isn't copyrightable since the author must be human for copyright to apply. If the new code was generated entirely by an LLM, can it be licensed at all? Or is it automatically in the public domain?
- Hamuko 8mo agoIt would be in the public domain. Wouldn't really matter all that much if the end goal was to get it included in the Python standard library, but the whole "Copyright (c) 2024 Dan Blanchard" in the license file would just be BS. The big question is whether or not is it a derivative work of an LGPL project. If it is, then it's just an outright copyright violation.
- gpm 8mo agoThe US supreme court declined to hear a challenge to the claim that if you explicitly disclaim any human input to make a point then the art isn't copyrightable in the US. The copyrightability of "actually I had some design input" is still up in the air in the US, and copyrightability in general is still up in the air in probably the entire rest of the world as well as every court in the US outside of the DC circuit (because the supreme court declining to hear a case does not constitute an endorsement of the lower courts ruling or create precedent). There's absolutely nothing stopping you granting a license to public domain work... granting a license is just waiving rights that the author might have to sue for copyright infringement under certain circumstances... Personally I'd be unwilling to use this work without the license, because I would not be confident that it was public domain.
- nailer 8mo ago> chardet 7.0 is a ground-up, MIT-licensed rewrite of chardet. Same package name, same public API Licensing aside, morally you don't rewrite someone else's project with the same package name.
- gpm 8mo agoI've got some serious moral questions about "rewrite your own widely used project from scratch with the same package name"... but I don't think it's fair to call this "someone else's project" when the OP has apparently been the only maintainer working on the project for 13 years...
- nailer 8mo agoCreator is still the creator and retains rights to the name.
- raggi 8mo agoLook, forget the details, step back and consider the implications of the principle. Someone should not be able to write a semi-common core utility, provide it as a public good, abandon it for over a decade, and yet continue to hold the rest of the world hostage just because of provenance. That’s a trap and it’s not in any public interest. The true value of these things only comes from use. The extreme positions for ideals might be nice at times, but for example we still don’t have public access to printer firmware. Most of this ideology has failed in key originating goals and continues to cause headaches. If we’re going to share, share. If you don’t want to share, don’t. But let’s not setup terminal traps, no one benefits from that. If we flip this back around though, shouldn’t this all be MPL and Netscape communications? (Edit: turns out they had an argument about that in the past on their own issue tracker: https://github.com/chardet/chardet/issues/36 https://github.com/chardet/chardet/issues/36)
- luke5441 8mo agoLGPL means "gift to the world". The license ensures that any modification/improvements stay a gift to the world. People not being okay with having to share their improvements not being able to use the software is by design. I don't get how you get from there to some sinister hostage taking situation. Also everyone that contributes to the previous LGPL verison probably contributed under LGPL only, so it is now just one guy...
- raggi 8mo agoLGPL applies to the LGPL’d code, not to every piece of code someone might add to the repository or under the same name implicitly. The claim being made is that because some prior implementation was licensed one way, all other implementations must also be licensed as such. AIUI the code has provenance in Netscape, prior to the chardet library, and the Netscape code has provenance in academic literature. Now the question of what constitutes a rewrite is complex, and maybe somewhat more complex with the AI involvement, but if we take the current maintainers story as honest they almost certainly passed the bar of independence for the code.
- il-b 8mo ago
- Dunedan 8mo agoThe even more concerning news to me is that chardet 7.0 is now vibe coded AI slop, as documented in the PR for the rewrite [1]: > I put this together using Claude Code with Opus 4.6 with the amazing https://github.com/obra/superpowers https://github.com/obra/superpowers plugin in less than a week. It took a fair amount of iteration to get it dialed in quite like I wanted, but it took a project I had been putting off for many years and made it take ~4 days. Given the amount of changes I seriously doubt that this re-implementation has been reviewed properly and I wonder how this is going to be maintainable going forward. [1]: https://news.ycombinator.com/item?id=47259177 https://news.ycombinator.com/item?id=47259177
- PaulDavisThe1st 8mo agoI am confused. In the USA, there has been a clear rule that machine-generated code cannot be copyright. If the "new implementation" was in fact created by Claude (which is my impression), then nobody holds any copyright to the code, and it cannot be licensed under any license at all. I am sure I am missing something ... what is it?
- next_xibalba 8mo agoThis is effectively a contract. You can put anything you want in a contract, but contracts are enforceable to only to the extent they comply with the law (statutes, case law, the constitution, etc.) So to settle this, someone needs to violate this license and get sued. Or maybe proactively sue?
- PaulDavisThe1st 8mo agoRemember: this applies to all LLM-generated code, not just chardet. No LLM-generated code is copyrightable, and thus cannot be licensed. The legal challenge could come in any context where LLMs have been used and the code placed under any license (proprietary or otherwise). Which is going cause a collision between the "not copyrightable" and "derived from copyrighted work" angles.
- pas 8mo agoThe machine cannot get authorship, but just as images created by humans with PhotoShop and all kinds of machinery are still copyrighted to the human creator - unless they explicitly set up some circumstances where the process of creation happens completely without them - code/software produced by a machine instructed by a human should get copyright (either original or derivative). Unless the human is so far removed from the output. (And how far is far enough is probably very much depends on the circumstances and unless/until case law or Congress gives us some unifying criteria, it's going to be up to how the judge and the jury feels.) .. For example someone set up a system where their dog ends up promoting some AI to make video games. This might be the closest to the case of that photo. Though there the court ruled only that PETA (as friend of the monkey) cannot sue the photographer, because the monkey cannot be a copyright holder, but very importantly it didn't rule on the authorship of the photographer. (And thus the Wikimedia metadata which states that the image is in thr public domain, is simply their opinion.)
- bachmeier 8mo agoAnother day in the post-copyright world. Surely someone somewhere is already using this to test the effect of copyright laws, should we decide to go back to that world.
- amtamt 8mo agoMaintainers must not be able to change the license that original author chose, and based on which contributors made contributions. When one stepped up to be maintainer, it was a trustee role, not owner role. It should be perfectly ok (by maintainer or anyone for that mater) to be inspired from a community project and build something from scratch hand-crafting/ AI sloping, as long as the imitation is given a new name/ identity. What rubbed me off personally was maintainer saying "pin your dependncies to version 6.0.0 or 5.x.x", as if maintainer owns the project. maintainer role is more akin to serve the community, not rule. If it is completely new, why not start a new project with new name? No one will object. And of course leave the old project behind to whoever is willing to maintain it. And if the new name project is better, people will follow.
- hoopyKt 8mo agoA distinction should be made between ownership of the code and its copyright and ownership of the repository and associated distribution channels. As far as I know, there's no precedent to state that owning the former means ownership of the latter. The original author abandoned this project years ago and likely has no legal basis to maintain that the project itself stays LGPL, only that their code and derivatives of it stay LGPL. Unless it could be proven otherwise, a rewrite of the project under a different license made without directly referencing the original is likely well within the rights of the owners of the repository to do.
- amtamt 8mo agoSay a community builds a hall with an explicit intent of community use only, led by single person or a group, and then a person/ a group is appointed as a caretaker. Caretaker of the community hall decides unilaterally to convert the hall into a business convention center, razing old building to ground and rebuilding, disregarding community wishes, to make hall business friendly. How would you react to this situation? Caretaker has the ownership of the community assets, including the ground on which the hall is standing? my understanding of the situation is: Is the caretaker paying from his own pocket to maintain the hall? no Is the caretaker paying from his own pocket for community usage of the hall? no Is the caretaker spending time to maintain the community hall? yes Is caretaker obliged to spend time on community hall? no Is caretaker free to stop spending time on community hall? yes. Is caretaker free to raze current hall, build new hall on same ground for new purposes WITH community agreement? YES Is caretaker free to raze current hall, build new hall on same ground for new purposes WITHOUT community agreement (even if paying all the bill)? NO Is caretaker free to build another similar hall someplace else? YES Reasoning of your comment is of someone who is hell bent on staking claims on community resources (like big companies) without having slightest concern of the wishes or well-being of the community. Not sure of the commenter's motive either, given the new account with just two comments, supporting such blatant disregard of basic human decency.
- deleted 8mo ago[deleted]
- malklera 8mo agoYou have to look from two sides this Moral: What is right or wrong? If they wanted to change the license, they could have made another project with another name, and nobody would care, but they wanted the reputation of the project. Legal: How much are you willing to spend on litigation? The only real "protection" by copyright is in court.
- hoopyKt 8mo agoFurther, while the copyright of the original code and its derivatives are still owned by the original author does that hold true to the rights to the name and package namespace? Supposing this were indisputably a clean room implementation instead of an unclear one, would the maintainers then have a right to relicense under the same name? I would imagine that yes, they do have the right to relicense in that case because the copyright only applies to the code, not the project itself. Other questions that haven't really been explored before also are maintained: the original author hasn't been involved in some time, technically the copyright of all code since still belongs to those authors who might be bound by LGPL but are also the only ones with the right to enforce it and could simply choose not to. What then?
- 0sdi 8mo agosurely this can also be used to turn proprietary software into free
- alpaca128 8mo agoIf you can afford to defend yourself in court
- starkparker 8mo agoEveryone armchair debating the licensing side of this frustrates discussion, because the only licensing discussion that matters is the one in front of a court. Until and unless one happens, this is just a boring hobby. Otherwise all this rewrite accomplishes is a 2.3% accuracy improvement and some performance gains that might not be relevant in production, in exchange for a broken test suite, breaking changes, and unnecessary legal and ethical risks pushed out as an update to what was already a stable project. If it's truly a sufficiently separate project that it can be relicensed from LGPL, then it could've just been _a fully separate project with a new identity_, and the license change would've been at least harder to challenge. Instead, we're here.
- oxag3n 8mo agoAI "translation" kills any incentive to open source code. What's worse - disassembler+AI is good enough to "translate" the binary into working source code, probably in a different programming language than then original.
- byteatwork 8mo agomaybe we are now heading to the new world where software become 'free goods' like air?
- tantalor 8mo agoSee also, Can coding agents relicense open source through a “clean room” implementation of code? https://simonwillison.net/2026/Mar/5/chardet/ https://simonwillison.net/2026/Mar/5/chardet/ Discussion: https://news.ycombinator.com/item?id=47264043 https://news.ycombinator.com/item?id=47264043
- ondrek 8mo agoWith continuing the same repo, name, and reputation built on LGPL code.. you can’t keep the goodwill and drop the contract that created it :-)
- byteatwork 8mo agomaybe we are heading to a new world where software become "free goods" like air?
- ajnin 8mo agoInterestingly the original author ported the code from the Mozilla C++ version which is licensed as "MPL 1.1 or LGPL" (it's a bit unclear as the readme says that but the license file mentions only MPL). So the author did already relicence the project in a way by licensing the port as LGPL only.
- Chris2048 8mo ago> licensing the port as LGPL only They ported the LGPL version. There's no obligation to port any other, unless "MPL 1.1 or LGPL" is itself some kind of singular licence.
- tricorn 8mo agoCopyright protects "authorship", not functionality. Patent protects functional elements. A rewrite based on functional equivalency is not infringing on the copyright as long as no creative expression was copied. That was the heart of the Google case, whether the API itself was creative expression or functionality. There are many aspects to what can be considered creative expression, including names, organization, non-functional aspects. An algorithm would not be protected expression. If an AI can write it without reference to the original source code, using only documented behavior, then it would not be infringing (proving that it didn't copy anything from training data might be tough though). It also would not itself be copyrightable, except for elements that could be traced back as "authorship" to the humans who worked with the AI. If LLMs can create GOOD software based only on functionality, not by copying expression, then they could reproduce every piece of GPL software and release it as Public Domain (which it would have to be if no human has any authorship in it). By the same principle that the GPL software wasn't infringing on the programs they copied functionality from, neither would the AI software. That's a big IF at this point, though, the part about producing GOOD software without copying.