大約十天前,mergemster 的 -U 這個功能,進了 6-STABLE 了。這功能很讚,就是他會看哪些 /etc 的檔案,你沒有改過的,就會自動 merge,這樣子可以省下很多時間跟力氣。
這個功能實際上是用 mtree(8) 的 checksum 來做的,相當有趣,我記得 mergemaster 的 code 只有大概九十行左右,有興趣的可以看一看 ;p
UPDATE: 我是指 -U 的 code 只有九十行 XD
大約十天前,mergemster 的 -U 這個功能,進了 6-STABLE 了。這功能很讚,就是他會看哪些 /etc 的檔案,你沒有改過的,就會自動 merge,這樣子可以省下很多時間跟力氣。
這個功能實際上是用 mtree(8) 的 checksum 來做的,相當有趣,我記得 mergemaster 的 code 只有大概九十行左右,有興趣的可以看一看 ;p
UPDATE: 我是指 -U 的 code 只有九十行 XD
有在玩 ports 的人大概都知道 ports 有一些 knob 可以調整哪些東西要或者不要,而要紀錄這些相當討厭。過去的解法是用 portupgrade 的 MAKE_ARGS 來紀錄,後來 ports 自己有了 OPTIONS 可以幫忙(雖然不是很完美,但是至少有了)。
現實上的問題是,目前的 OPTIONS 還不完全能讓全部的 ports 都來用,於是常常就會需要在 pkgtools.conf 紀錄一堆有的沒的。用 MAKE_ARGS 的方式的缺點是,當更新 A 的時候,他可能裝 B,而 B 我又有調過選項,這時候就大爆炸了。正確的做法式在 make.conf 裡面寫,但是要注意用 .CURDIR 去判斷該加甚麼。這麼做相當麻煩,所以我也就一直懶的去改。
前幾天,ale@ 弄了個 portconf(最早是 flz@ 寫的)。裝了這個之後,他會幫忙改 make.conf,你只需要弄一個 /usr/local/etc/ports.conf 像是:
*: WITH_CJK=yes
devel/subversion*: WITH_APACHE2_APR=yes | WITHOUT_BDB=yes
net/mtr: WITHOUT_X11=yes
就可以快樂的丟掉 MAKE_ARGS。注意到我的例子裡面有用 *,在 portconf 裡面,是用 sh 的 pattern match,所以可以這麼搞 另外還有個問題要特別注意的是,如果你的 /usr/ports 是 link 的話,要去 make.conf 改成真正的路徑,否則會沒有用。
Update: 感謝 b6s 指正錯誤。
剛剛看到 Kris Kennaway 在 SMP mailing 上的 Concluding the SMPng project,算是替 SMPng Project 劃下一個句點(雖然說算是正式的公告,我覺得應該要丟上 announce@ 才對 :p)。
從 2000 開始 5-CURRENT 一直到之前的 5-STABLE,去年的 6-STABLE,以及前陣子的 6.1-RELEASE,走了這麼久,6.x 終於算是可以取代 4.x 的版本了。另外,4.x 只剩下 4.11 還有 Security Officier 的 support,不過這也只到明年初了。5.4 到今年十月底,5.5 還有兩年左右。老實講,6.1 除了我碰到的 VFS 在 NON-MPSAFE 的 fs 上會有 GIANT leaking 以外(已經修好了,過幾天應該就會進 RELENG_6),其他我沒碰到甚麼問題。
Kris Kennaway 在那篇中提到,再來的計畫是用 profiling 工具,去看哪邊是 bottleneck,然後根據不同情況,決定該怎麼最佳化了。重心也不放在把 GIANT 通通幹光光 :p可能會改的名字再繼續下去吧。
如果計畫沒改而且我沒記錯,應該後年就會看到 7-STABLE 跟 7.0 了,不知道到時後會有些甚麼令人期待的功能(6.0 是 mpsafevfs,5.3 開始是 mpsafe{vm,net})。