patch違い
diffの次はpatch。patchを作ったのはPerlのLarry Wallさんであることは有名だ。Wikipediaから引用してみる。
1985年にはラリー・ウォールが、このdiff出力を入力として受け取ってファイルを変更するというアイデアを一般化、拡張して、別コマンドとしてpatchを作成した。
Plan9にはUNIXでいうところのpatchコマンドは存在しない。patchは、ソースリポジトリに対するパッチ管理システム(コマンド群)のことを指す。ちなみにこれらのコマンドはrcスクリプトになっている*1。
話は変わって、patchはてっきりGNUソフトウェアとして開発されているのだと思っていたけど、(もちろん間違いじゃないけど)OpenBSDでは2.0.12u8*2からブランチして、BSDライセンスで開発が進められているようだ。コミットログには「patch(1) is now free, thanks Larry!」とあり、READMEには次のように書かれている。
this version modified to fit in with the 386bsd release.
this isn't gnu software, so we're not obligated to give
you the original sources -- if you want them, get them
from prep.ai.mit.edu:pub/gnu/patch-2.0.12u8.tar.z-- cgd
FreeBSDとかNetBSDはどうなんでしょ?
(追記:2008-08-12)id:yyamanoさんのコメントによると、OpenBSDのpatchはNetBSD由来っぽいです。FreeBSD、Mac OS XはGNU patchになってます。FreeBSDは/src/usr.bin/patchに残骸が残っているので、どこかのタイミングで乗り換えたのでしょうか。