Will Git change the FreeBSD development model?

Interesting interview with Linus Torvalds at this link where he talks about the BSD-style of development (i.e. giving developers 'commit bits') and how he thinks it's the wrong approach. This may not be the best place to ask this (perhaps a development mailing list might be better), but does anyone think the 'commit bit' style of development will disappear now that FreeBSD is using Git instead of a more centralised version control system like SVN or CVS?

Here are Linus' comments (snipped from the rest of the article) which prompted my question:

<snip>
In fact, this is actually somewhat related to the earlier discussion about the licensing, and another example of how one of the design principles of "Git" was that whole "everybody has their own tree, and no tree is technically special".

Because a lot of other projects have used tooling - like CVS or SVN - that fundamentally does make some people special, and that fundamentally does have an "ownership" that goes along with it. In the BSD world, they call it the "commit bit": giving a maintainer the "commit bit" means that he's now allowed to commit to the central repository (or at least parts of it).

I always detested that model, because it inevitably results in politics and the "clique" model of development, where some people are special and implicitly trusted. And the problem isn't even the "implicitly trusted" part - it's really that the other side of the coin is that other people are not trusted, and are by definition outsiders, and have to go through one of the guardians.

Again, in Git that kind of situation doesn't exist. Everybody is equal. Anybody can do a clone, do their own development, and if they do a good job they can get merged back (and if they do an outstanding job, they become maintainers, and they end up being the ones doing the merging into their trees ;).

So there's no need to give people special privileges - no need for that "commit bit". And that also means that you avoid the politics around it, and you don't need to trust people implicitly. If they end up doing a bad job - or more commonly, just end up fading away and finding another interest - they don't get merged back, and they also don't stand in the way of other people who have fresh new ideas.
</snip>
 
Sounds like arrant nonsense to me.

Linux does have a centralized organizational model. There's only one "vanilla" Linux kernel from kernel.org that is the official Linux. Yeah, there are millions of clones. Most don't matter at all, and only a handful matter somewhat.

There are trusted people who control what goes into the official kernel. They're sometimes called Linus' lieutenants. The most important one right now is Greg Kroah-Hartman, who is the gatekeeper of what gets called stable Linux. There are other trusted minions in charge of various subsystems of the Linux kernel.

In fact, if you think about it, the BSD model is more collaborative than the Linux model. Anyone with a commit bit can work in any subsystem, and can probably find help and review from other committers who may be more familiar with the area.

I've come to realize that Linus is actually very political. There's usually an agenda when he makes these controversial pronouncements. I can't discern what it is in this instance.
 
Last edited:
It's probably deflection from banning the University of Minnesota.
That's not a bad guess. "We're so open, we had to accept these bad patches. We're not closed, like the BSDs" makes for a good narrative from the Linux standpoint.
 
I've come to realize that Linus is actually very political. There's usually an agenda when he makes these controversial pronouncements. I can't discern what it is in this instance.
He's definitely got something to show for his politics, because with the adoption of git, FreeBSD is now dependent on GPL'd software ;)
 
He's definitely got something to show for his politics, because with the adoption of git, FreeBSD is now dependent on GPL'd software ;)
We are probably just waiting on http://gameoftrees.org/ from the OpenBSD guys.

Then we can rid ourselves of even more of that GPL nonsense. I think we still have a few remaining bits of GPL laying around that need to be modernized.

https://www.phoronix.com/scan.php?page=news_item&px=FreeBSD-Q4-2020-Update
https://wiki.freebsd.org/GPLinBase (outdated)

Plus, I suppose it isn't quite so bad as getting the CDDL license into Linux via OpenZFS. Those are some real politics :)
 
Linus should focus on getting back control of his damn kernel before criticizing other development models from alternative systems.

You see my signature Linus? Yeah..

You can't make this s**t up people.
 
Plus, I suppose it isn't quite so bad as getting the CDDL license into Linux via OpenZFS. Those are some real politics :)
OpenZFS is not part of Linux, because the Linux people object to the CDDL. Some people install it in userland anyway, which works okay.

Similarly, git is not part of FreeBSD, because the FreeBSD people object to the GPL. Some people install it in userland anyway, which works just fine.

Just one major difference: OpenZFS has nothing to do with Linux development. On the other hand, FreeBSD development without git is impossible.
 
"We're so open, we had to accept these bad patches. We're not closed, like the BSDs" makes for a good narrative from the Linux standpoint.
I was thinking more along the lines of "You're free to integrate them into any other Linux tree, so saying you can't participate is wrong" and then go and boink on FreeBSD because that's the easiest target because he knows about "commit bit."

Just disingenuous talk. Anybody can clone BSD or GPL code and make commits. It's trademark law and domain name/server ownership that keeps things "political" and "cliquish." Who owns the trademark to Linux... oh.
 
Similarly, git is not part of FreeBSD, because the FreeBSD people object to the GPL. Some people install it in userland anyway, which works just fine.
But you don't need git itself (the big git software package, under GPL, originally written by Linus). All you need is a git client (a program that knows how to decode the git file format and protocol). There are many git clients, some of which are not under GPL. For example, there is something called gitup, which is under the BSD license, and last fall there was some chatter that it would be part of the FreeBSD base.

On the other hand, FreeBSD development without git is impossible.
First, you can still download the source code in SVN format (and I think a CVS copy still exists too). If by "development" you mean directly commit to the official repository: most people can't do that anyway, for good reason (for example, see the recent U. Minnesota amusement). And using gitup, you can do that with BSD-licensed software. Plus, for many years FreeBSD was compiled using gcc, which was under the GPL license.

The real question is this. I can't understand the violent reaction most people have to the GPL. I see it as factionalism and politics. What license a piece of software is under matters to people who write it, who hold the copyright, and who modify it and want to distribute the modifications (and hold the copyright on modifications). For people who use the software, or make only local modifications, the difference between GPL, BSD, MIT, Apache, ... licenses is of no or little effect. And I really don't like this "they are different from us, therefore they must be evil" attitude that is often displayed in discussions about open software.
 
On the other hand, FreeBSD development without git is impossible.
Whilst not commonly known, GitHub actually provides svn support.

$ svn co https://github.com/freebsd/freebsd-ports.git/trunk ports

Plus I suppose we have to be slightly pragmatic. It wasn't until after 2005 that Linux was developed using a proprietary VCS called BitKeeper. I always think that is pretty mad for a GNU flagship project.
 
I'm not a developer (more of a scripter) but yah...

Interesting interview with Linus Torvalds at this link where he talks about the BSD-style of development (i.e. giving developers 'commit bits') and how he thinks it's the wrong approach.
Everyone is entitled to their opinion, but if you look at the facts then yah, this seems quite arrogant.

This may not be the best place to ask this (perhaps a development mailing list might be better), but does anyone think the 'commit bit' style of development will disappear now that FreeBSD is using Git instead of a more centralised version control system like SVN or CVS?
I highly doubt it. There really isn't that much difference between the lot when it comes to handing out permissions; either you can commit (in Git terms this is "push") or you can't. End of story.

And I'm also quite positive that there are many people who are much better suited to criticize FreeBSD's development model than someone who was more or less forced to step back from the project he originally set up himself.

I always detested that model, because it inevitably results in politics and the "clique" model of development, where some people are special and implicitly trusted. And the problem isn't even the "implicitly trusted" part - it's really that the other side of the coin is that other people are not trusted, and are by definition outsiders, and have to go through one of the guardians.

Again, in Git that kind of situation doesn't exist. Everybody is equal. Anybody can do a clone, do their own development, and if they do a good job they can get merged back (and if they do an outstanding job, they become maintainers, and they end up being the ones doing the merging into their trees ;).
(edit: this is fraxamo quoting the Linus interview; so keep in mind that I'm not critisizing him in my comment below but the actual interview, aka Linus. Figured I'd add a disclaimer because the extra quote section which I added seems easy to overlook)

What a load of nonsense!

There isn't any equallity at all; when I try to push my changes of the Linux kernel back into the main tree then I'm rejected. So how is that equal?

When I clone the Linux kernel, make my changes and put them on Github then I'm pretty sure my project won't get the same attention span. How is that equal?

Either you can commit to a project (in Git terms this means 'pushing' your changes into the main repository) or you can't. Git doesn't change this hierarchy at all.

The main difference (and IMO also a huge advantage) is that when I clone a project using Git I have the full project as-is under my control; allowing me to do anything I like with it. I can change stuff, secure my changes, and all of this without interfering with the official repository. That is a lot more difficult with centralized setups.

Has Linus started drinking ever since he got demoted?
 
If by "development" you mean directly commit to the official repository: most people can't do that anyway, for good reason (for example, see the recent U. Minnesota amusement). And using gitup, you can do that with BSD-licensed software.
gitup is unable to make commits, it's a pull/clone-only client expressly "intended for non-developers".
The real question is this. I can't understand the violent reaction most people have to the GPL. I see it as factionalism and politics. What license a piece of software is under matters to people who write it, who hold the copyright, and who modify it and want to distribute the modifications (and hold the copyright on modifications). For people who use the software, or make only local modifications, the difference between GPL, BSD, MIT, Apache, ... licenses is of no or little effect. And I really don't like this "they are different from us, therefore they must be evil" attitude that is often displayed in discussions about open software.
I agree :)
 
But you don't need git itself (the big git software package, under GPL, originally written by Linus). All you need is a git client (a program that knows how to decode the git file format and protocol). There are many git clients, some of which are not under GPL. For example, there is something called gitup, which is under the BSD license, and last fall there was some chatter that it would be part of the FreeBSD base.


First, you can still download the source code in SVN format (and I think a CVS copy still exists too). If by "development" you mean directly commit to the official repository: most people can't do that anyway, for good reason (for example, see the recent U. Minnesota amusement). And using gitup, you can do that with BSD-licensed software. Plus, for many years FreeBSD was compiled using gcc, which was under the GPL license.

The real question is this. I can't understand the violent reaction most people have to the GPL. I see it as factionalism and politics. What license a piece of software is under matters to people who write it, who hold the copyright, and who modify it and want to distribute the modifications (and hold the copyright on modifications). For people who use the software, or make only local modifications, the difference between GPL, BSD, MIT, Apache, ... licenses is of no or little effect. And I really don't like this "they are different from us, therefore they must be evil" attitude that is often displayed in discussions about open software.

Coercion is immoral. It’s really not that complicated. In fact, I despise the CDDL, MPL as well, but the System V folks come from the same family of like minded researchers and engineers. So ZFS, DTrace, etc, are practical exceptions.

However, I don’t think the GPL ever held its own in court so.. meh, do you.
 
the GPL forces you to using it if you want to use the "open" source and doesn't provide any freedom of choice

This is a bit over the top. Without the GPL applied to the software that it's on, standard copyright applies and you have zero rights to do anything with it.
 
This is a bit over the top. Without the GPL on the software that it's on, standard copyright applies and you have zero rights to do anything with it.
Unless you license it under CDDL or a BSD license which then gives the other party all the freedom they need. Then they get to choose if they want to use your work and release something under the GPL , CDDL, or BSD or.. any other license they fancy.

They're not restricted to the choices made (and enforced) by the original "open" source developer.
 
Has Linus started drinking ever since he got demoted?
I met Linus a few times in the mid 90s. He started drinking decades ago. Heavily. One of the pubs we went to was called "99 bottles of beer", and after we were done with it, there were fewer than 99 left :)

gitup is unable to make commits, it's a pull/clone-only client expressly "intended for non-developers".
Thank you for that correction, I didn't know that gitup is "read-only". On the other hand, there are ways to contribute to the kernel without directly pushing using git. For example, the one line of code that I submitted to the Linux kernel as a private individual (and which is still in there) was sent by e-mail to the person who at the time managed all of the SCSI code in Linux, after a week or so of e-mail discussions. Even today, you can submit BSD patches by copying them into the bug tracking system or e-mailing them to committers, and they will (if approved) find their way into the kernel. And very few people (only committers) can actually use "git commit; git push" to modify the kernel.

I do; the GPL forces you to using it if you want to use the "open" source and doesn't provide any freedom of choice.
If you want to modify the code and publish or distribute your changes, then I agree: the GPL forces you to put your changes under GPL (although it doesn't prevent you from dual licensing your changes). Personally, I actually find that reasonable. The people who wrote the original code (which one is modifying) have every right to determine how their code is to be used. They choose to allow you (or me) to use it usable for free (without paying them), which is generous. They even allow you and me to read their source code, and to modify it. The only significant restriction is that if we publish/distribute any of these changes, then the GPL is viral. Consider one alternative: they could just not publish the source code. Or they could publish it under a less restrictive license (BSD, Apache, MIT, ...), but then they risk that their software is used outside their knowledge and control (how many dishwashers internally use BSD? we'll never find out). I think the original authors should have the liberty of choosing their favorite license and distribution model, even the GPL (which I agree is not optimal).

And: Most people never modify open source software (and even less publish and distribute their changes), but only use it (run it). For users, the GPL is de-facto indistinguishable from other OSS license.
 
I met Linus a few times in the mid 90s. He started drinking decades ago. Heavily. One of the pubs we went to was called "99 bottles of beer", and after we were done with it, there were fewer than 99 left :)
Well, that can explain a thing or two o_O

The only significant restriction is that if we publish/distribute any of these changes, then the GPL is viral.
Yah, if you want to change the original then I fully agree. Unfortunately that's not the only restriction, if you want to use the original and have it become part (unchanged!) of your own project you're still forced to release all your stuff under the GPL license.

That's the part which irks me and which I simply cannot (and do not) respect.
 
Again, in Git that kind of situation doesn't exist. Everybody is equal.
What ?
I always see lead Dev, repo maintener or release manager... I never see a project where a unknown body has all rights.

And honestly, mercurial is the tool developed for Linux kernel. Why Linus release git instead participating to mercurial ?
In gitlab, there is manager/developer/reporter roles. Rights management sound more like a lack in git than a feature for me.
 
Unless you license it under CDDL or a BSD license which then gives the other party all the freedom they need. Then they get to choose

The original author has no obligation to other party's "needs." If the license is unsuitable for purpose, use something else or go write your own software. That's your freedom of choice.
 
And honestly, mercurial is the tool developed for Linux kernel. Why Linus release git instead participating to mercurial ?

Git's announcement predates Mercurial's by a timeframe measured in days. Git was chosen because Linus made it and it was first. Being written in Python probably didn't help acceptance amongst the C users of the Linux kernel. Taking a decade to work with Python3 also was not good.
 
The original author has no obligation to other party's "needs." If the license is unsuitable for purpose, use something else or go write your own software. That's your freedom of choice.
So it's "their way or the highway". Some freedom indeed. Yah, I prefer to cater to the people who have an interest in my stuff and let things not evolve around me but around them, as long as they acknowledge me as a helping factor of course.

GPL doesn't provide any freedom of choice other than "use or don't use" which begs the question: where is the "open" in "open source"? Isn't one of the founding principles that anyone can use it?

I quote:
The term open source refers to something people can modify and share because its design is publicly accessible.
"modify and share": source. This is what the article starts with, this is the basic principle of open source, yet the GPL insists you back down to limitations. Go beyond what should be common sense (= credit where credit's due) and adapt to what they deem the "true" open source setup. Gimme a break. I like the borg in Star Trek as villains, not in real life.

With this I realize 2 things... 1) I'm close to over-reacting. 2) We're getting mighty offtopic.

That's my cue to bail.
 
Back
Top