Post

I don't even think git being licensed more permissively (eg, MPL2 or something) would be a bad thing! It would be a net positive for humanity probably. Just, like. Using AI to rewrite and relicense one of the single most-used pieces of GPLed software is actually a declaration of licensing war.

And git probably has contributors with standing to sue who might have the ideological motive to do so. Also, like. How are you not a derived work? What made you come to that conclusion? Or do you just really WANT to not be?

Since people aren't connecting the dots on this I feel like I need to point out that the author of this post is GitButler's CEO and the same Scott Chacon whose name is proudly displayed as a co-author at git-scm.com/book. He was also a Github cofounder.

So this isn't just some random outsider coming in and doing this. This is someone who's been an active member of the developer community around git for a long time. I don't think that's going to make people happier about this situation.

yeah the fuck is this. also why would you not just vibe-code whatever missing features into a fork of jj if you want a good vcs written in rust

They did explain their rationale in the post and I think they're being honest (tl;dr gitoxide and libgit2 have longstanding issues around certain kinds of missing functionality that theu want to address and they make no claims this is ready for primetime), but that doesn't make it a good idea.

I mean, if you did it after reading the git source code (which the LLMs have definitely trained on) you'd have to exercise a LOT of care to avoid being a derived work, no?

Good grief. You've heard of vibe coding, now introducing Vibe Licensing™! Now with 100% more "I really feel like it's..." and "... well, I WANT to!" including up to 400% more quivering bottom lip*. *Bambi eyes an optional subscription-based add-on.

Not so much because I disagree (although I think I probably do) I'm curious as to why permissively licensing git would be a good thing?

1) broadly speaking, we want people to use git and support git. The GPL makes it more difficult to do so even for open-source projects. Basically everyone, open source or no, has to shell out to the git binary instead of using git as a library.

2) As Chacon points out, libgit2 is not a solution. libgit2 is more permissively licensed (although it's still GPL), but because of that it can't take code from git and thus has serious deficiencies in certain areas, networking in particular. This is WHY everyone has to shell out to git.

also funny because I called my own educational and hand-rolled git in rust "grit" years ago. feels personal 😆 ...although very unoriginal I admit.

TBF if I understand correctly git's i18n support is mostly "using gettext to translate the porcelain outputs", which is... not super relevant in a library context? You'd likely want to do your own i18n If you're writing an app based a git library anyways.

Fair, I just know that if I see someone intentionally skipping internationalization or accessibility I get extra skeptical of the rest of the work. (Lacking because lack of skill set happens, but those folks are usually apologetic about the lack.)

I don't think the FSF itself has standing to do so? I'm not a lawyer though. We'll probably find out if they have standing because I don't a world where they don't file suit if they do. This is an existential threat for them.

Given that whatever LLM they're using under the hood is almost certainly trained on the Git source code, even if they didn't also make the Git source code available to the LLMs (which they well may have), and the test code is anyway also copyrighted and GPL-licensed... Good luck, buddies.

Big red flag here: "especially given the pretty massive and widespread architectural changes needed to make the implementation libified and memory safe". "Magnitude of changes" does not affect copyright. If you start from the original it's always a derivative work no matter how much you change it

> "Magnitude of changes" does not affect copyright. If you start from the original it's always a derivative work no matter how much you change it False. BSDi v. AT&T.

I mean maybe if you do actually radically overhaul the architecture in the process. But you'd likely need to go in with that intent because if you give an LLM git's test suites and tell it to rewrite git in Rust it's probably not going to do that on its own?

I hope they do get sued! As I'd love to see how this goes. What happens when everyone just points their claudes at specs and outputs and *doesn't look at* the source code? Is that still a derivative? Or a reimplementation? If latter, is license relevant? Software licensing gonna be get fun!

That's a different question. What's relevant here is that every AI has trained on Git's code. So it's not being reimplemeted without looking at the code.

I am not at all sure the legal system will rule that outputting a new implementation "from memory" of git, given a spec and all of the training data which went into them, is a violation of the data it was trained on. There are some cases before SCOTUS this summer (?) which might change that though.

...And then in that same case APIs were given broad fair-use protections. Re-implementing the API is not, in and of itself, the problem. At least, that's my understanding. I'm not a lawyer. Here's @lu.is's take (🧵), since he actually knows what he's talking about.

Sigh, I finally need to write up why this is delusional. TLDR: if you're rewriting the implementation of an API, with an honest-to-god cleanroom (which LLMs are not) *and* a decidedly different underpinning *and* have a good-faith reason to do it, then reuse of the API is probably fair use.

Not exactly. The Court decided the case by assuming they could be without ever actually deciding whether they were - “we assume, for argument’s sake, that the material was copyrightable” - and went on to hold “that the copying here at issue nonetheless constituted a fair use”.