A patch is a file that describes a change to another file (or set of files). For example,
NFSD/SUNRPC: Fix the automatic selection of RPCSEC_GSS Bruce's patch broke the ability to compile RPCSEC_GSS as a module. Signed-off-by: Trond Myklebustdiff --git a/fs/Kconfig b/fs/Kconfig index 6a64990..58a0650 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -1674,7 +1674,7 @@ config NFSD_V3_ACL config NFSD_V4 bool "Provide NFSv4 server support (EXPERIMENTAL)" - depends on NFSD_V3 && EXPERIMENTAL + depends on NFSD && NFSD_V3 && EXPERIMENTAL select RPCSEC_GSS_KRB5 help If you would like to include the NFSv4 server as well as the NFSv2
This is a patch my friend and coworker Trond made to correct a mistake of mine; it tells you to modify the file fs/Kconfig by deleting one line (the one preceded by a minus sign) and adding a slightly modified version (the one preceded by a plus sign).
The nice thing about a patch is that it's precise enough that a computer can apply the described change automatically, but it's still readable by people, once they get used to the format.
That means you can send a patch to a mailing list and it's easy for people to read it, argue about whether it's a good idea or not, quote parts of it as necessary, and so on.
So as a Linux kernel developer, what I do all day is write patches, to fix problems or add new features, and review them, to decide which are worth applying and which aren't.
And that's the way all changes to the kernel happen--we accumulate patches on top of patches. Linus takes the patches we agree are good and applies them to his version of the kernel, and the rest of us mostly use his versions as the basis for further work. Not because he has any special power--the code is licensed in such a way that anyone can do the same thing--but because over the years he's shown consistently pretty good taste about which patches to apply and which not to.
But the kernel is a big project at this point--a single major revision of the kernel, which takes 2 or 3 months, will include several thousand new patches, and Linus can't keep up with that pace on his own--so the review decisions end up requiring the input of hundreds of developers.
The review process is completely open--anyone with an email address may observe and contribute, and patch authors are expected to deal with any legitimate criticism regardless of the source. That also means that the community is too large and ill-defined to achieve complete consensus. And we can't really just take a vote either.
So in practice we depend on a sort of web of trust, relying on the opinions of developers with proven track records in their areas of expertise. This is formalized by recognizing some developers as "maintainers" of certain subsystems. Maintainers are responsible for filtering the good patches from the bad, giving feedback, working with people to resolved problems, and hopefully providing some overall direction.
I've been working on the kernel's NFS server for a while now, and as of recently it started looking like we might agree that I should be an official maintainer for that code.
That's just attaching a name to something that I've already been starting to do. But it's somewhat of a big deal to me anyway. And it potentially makes some difference to the people I work with and for. So I spent some of day at work figuring out how to explain some of the above. We'll see where it goes.
Anyway, that all sort of started Friday. Saturday I spent mostly with juggling friends. A guy and his daughter visited from Japan--they have roots in the area, and she's starting college in a year, so they're looking around at campuses. I passed clubs with her for a while, which was fun. Afterwards we had some noodles and then went back to our friend (and new neighbor) Ajit's place to play some Wii games. Also fun, though a little tiring in the end--maybe we should have called a quits a little earlier.
Sunday I went to a "Cinema Guild" event. It was in a classroom in the basement of Angell Hall. There were four of us altogether, so we chatted in between a little.
They were showing two short movies, one, "La Fin Du Monde", an unfinished French movie that had been cut up into pieces and had plan-9-worthy subitles, narration, and more, complete with a scientist's overly stiff and earnest introduction. It was a collage on so many levels--sound, text, video, all thrown together to give the vague impression of a plot. It was fun to guess what the original movie might have been about.
The second movie was Pabt's 1933 "Don Quixote", which was wonderful. They captured the spirit of the character really well, and I liked the songs. I'd see it again.