BSD 4-clause license 的問題

雖然 很討厭,但是你必須承認一點:世界上有太多 open source software 使用 ,於是你就得考慮其他的 license 的軟體如果與 GPL 的軟體連結在一起所遇到的問題。

比較有名的幾個例子包括 不相容:BSD and GPL licensing,以及 不相容:The OpenSSL License and The GPL

結果剛剛在看這幾天的 RSS feed 的時候在 上看到 頭目 發現系統裡某些不容易被取代的部份居然使用 BSD 4-clause license:Gentoo/FreeBSD On Hold Due To Licensing Issues

他寫的文章在這:

遇到的麻煩暫時已經解決,主要是 libkvm 是被 GPL 軟體所呼叫,而不是 libkvm 去呼叫 GPL 軟體,而 GPL 所禁止的是別人連結到 GPL 軟體的情況,所以在這個情況下不受限制。另外一個是 libkvm 大多數的部份都是 UCB 的 copyright,而 UCB 宣佈過所有他們擁有的 BSD 4-clause license 將自動「降」為 3-clause,而其他的部份 (PowerPC 與 ARM 的移植程式碼) 的作者已經同意也「降」為 3-clause。

不過我搜尋了 的 mailing list 發現好像沒有人討論這個問題...

FreeBSD 7-CURRENT

被我灌爛了,於是又拿出 FreeBSD 6.2 BETA 的光碟灌 ,然後升級到 7-CURRENT (-HEAD)。

中間有些小插曲,像是我本來以為 /usr/share/examples/cvsup/standard-supfile 是 -HEAD 的 supfile,所以我在 /etc/make.conf 裡當然就設過去,結果跑了三四個小時把整套 (csup + world + kernel) 做完重開後發現是 6.2-PRERELEASE,只好再更新一次重頭做,順便跑 SCHED_ULE... (也就是 ULE 2.0)

升到 7-CURRENT 以後發現不少在 6.x 上裝的 packages 有一堆有問題,像是 python & ruby 都會 coredump,為了避免以後發現靈異現象 (結果追到最後發現是因為某個 port 沒有重編),乾脆到 /var/db/pkg 下面跑 pkg_delete * 把所有 ports 砍掉重新安裝...

晚點再來弄 ,然後再把 編起來。

關於 FreeBSD 下 pkg_version 與 portversion 的速度

使用 portversion 而非 pkg_version 看到 以速度的差異推薦 portversion,但是 上的 AuthImage 不太喜歡我... 所以乾脆寫一篇出來好了。

portversion 是 的套件之一,在 portversion 裡的 manpage 提到他使用 INDEX 檔來判斷版本:

portversion is very similar to pkg_version(1), but is optimized for portupgrade(1) and runs much faster than pkg_version(1) thanks to the ports database generated from the INDEX file. See portsdb(1) for details.

但 pkg_version 用 -I 的參數也可以用 INDEX 檔,這是 -I 的說明:

Use only the index file for determining if a package is out of date. This is much faster than using the version number from a port's Makefile, at the expense of potentially giving an incorrect result if the index file is out of date.

速度上呢?這是最慢的 pkg_version (without -I):

44.992u 41.211s 1:27.37 98.6% 221+441k 1634+0io 56pf+0w

這是 portversion:

2.970u 0.893s 0:03.79 101.8% 29+16680k 0+0io 0pf+0w

這是最快的 pkg_version -I:

1.402u 0.156s 0:01.55 100.0% 43+1898k 0+0io 0pf+0w

新酷音

雖然有買自然輸入法,不過這次重灌 Windows XP 後想要知道 Open Source 的輸入法發展的如何,於是就去裝了 Win32 (2005/09 的 beta 版本),發現問題還蠻多的... :p (像是無法叫出設定選單,於是預設的輸入法一直都是行列,然後在 PuTTY 裡偶而會爛掉)

本來想灌回自然輸入法,後來想到 好像有獨立 port 到 Win32 上,於是就去找官方網頁 (沒有中文輸入法的情況下還找蠻久的 :p) 下載下來用,看起來自然輸入法也可以先丟到旁邊去了 :p

也許用一陣子再出來講講心得好了 :p

QEMU

最近在 mipsel 平台上面發展一些東西,不過 cross-compile 的問題多到爆炸,決定用 搞個純 mipsel 的環境出來 compile,省得 cross-compile 有一堆問題要解決,於是就找到這篇蠻新的文章:Debian on an emulated MIPS(EL) machine

當時 裡的版本是 11/02 cvs,雖然已經蠻新的 (比起七月的 0.8.2),不過 QEMU mips/mipsel 在十一月月初的版本仍然是跑不起來的,因為月中的時候才大修 mips/mipsel code 把開機的部份搞定。這幾天 maintainer 更新了 ports,趕緊裝起來測試,果然可以用,把一些簡單的軟體 compile 後的 static binary 丟到測試機上果然沒問題 :D

接下來可以來測試很多東西了... :p

論壇

雖然 Wiki 也可以拿來討論,不過畢竟不是專門討論的軟體,所以在 IRC 上詢問過 的意見後,還是決定架了一個論壇讓粉絲們可以進來聊... :p

我對 頗感冒,一方面是安全性問題,另外一方面是 網站的 Spam Link 這個,即使在揭露後還是不管,繼續放 Spam Link。(剛剛去看 的首頁,也還是放著)

既然不使用 的話,就要另外找了。我先前在 那邊發現他們用 ,看起來還蠻好用的。當時發現 FreeBSD ports 裡還沒有放,就塞了一份進 ,現在剛好是拿出來用的時候... :p

目前已經架好了,不過要等 指過去,如果要先晃晃的話可以設定 hosts,將 forum.yichi.org 指到 72.36.224.226。

Recompile Linux Kernel in Debian

應該還不是「正確」的方法 (因為 apt-cache search linux-source 時還看到 linux-patch-debian-2.6.18 與 linux-tree-2.6.18 這兩個套件),不過先記下來好了:

$ apt-get install linux-source-2.6.18
$ apt-get install kernel-patch-grsecurity2 (這是 patch)
$ cd /usr/src
$ tar yxf linux-source-2.6.18.tar.bz2
$ cd linux-source-2.6.18
$ zcat ../kernel-patches/diffs/grsecurity2/grsecurity-2.1.9-2.6.18.1.patch.gz | sudo patch -p1
$ sudo make menuconfig
$ sudo make all (其中 all = vmlinux modules bzImage,參考 make help 的說明)
$ sudo make install
$ sudo modules_install
$ cd /boot
$ sudo mkinitrd -o initrd.img-2.6.18-grsec 2.6.18-grsec
$ sudo update-grub
$ cd grub
$ vim menu.lst (把 initrd 的部分補上去)

Update:yjchou 說 linux-source-2.6.18 這是已經經過 Debian 處理過的版本了,在網頁說明上也有提到:

This package provides source code for the Linux kernel version 2.6.18. This source closely tracks official Linux kernel releases. Debian's modifications to that source consist of security fixes, bug fixes, and features that have already been (or we believe will be) accepted by the upstream maintainers.

我沒有炸掉純粹是運氣好選對了 @_@

Recompile Linux Kernel

每次要更新都要跑 找一堆指令的順序,剛剛找到篇 11/22 才寫的文章,已經被 收起來了:How To Compile A Kernel

不過剛剛開起來就 panic 跟我說找不到 root,再去研究看看好了... :p

Update:補充一下,在解開 kernel 的目錄下 make help 可以看到可用指令的說明。

Debian 3.1

由於幹活需要,晚上十一點多回到家就裝了台 起來,透過 apt 的幫忙 (以及 大神相助),弄到三點多的時候就差不多把需要的東西都弄好了,有個 PPPoE 的問題在網路上沒找到解答,記錄下來問問看...

用 pppoeconf 設定好後可以生出 ppp0,也可以用 pon 撥上去,但是撥上後卻沒有設定 default routing。用 找發現要設定 "defaultroute" (有些文件有提到當已經存在 default route 的時候還要設 "replacedefaultroute"),但看了一下 /etc/ppp/options 發現沒有這兩個指令 (暗示著系統不認得這兩個指令),於是只好自己寫個 script 到 /etc/ppp/if-up.d/ 下,在連線建立後設定 default route。不過這樣感覺怪怪的,有什麼建議嗎?

FreeBSD 7-current

把自己的桌機換成 7.0-CURRENT,準備測一些最近 team 在發展的東西,另外也比較方便測試 ports 是否能在 7.0-CURRENT 上安裝...

不過升級完以後發現比起 6.x 慢相當多,要看看還有什麼地方可以調整的... (kernel 裡可以拿掉的 debug options 都拿掉了,留下 {D,G,K}DB 要在踩到地雷時看是踩到那個 bug)