在 FreeBSD ports 裡用 local patch 修正問題...

FastCGITrac,遇到 Trac 常常出現 MySQL server has gone away 的問題,官方看起來非常的 open source style:我沒遇到,不太想要處理這個問題... XD

Anyway,這個問題可以透過「#3645 (MySQL connections don't reconnect after idle timeout) – The Trac Project」的 comment:8 給 workaround 掉,但我不希望在升級後問題又跑出來,所以就用「Apache 2.2 worker MPM 與 mod_fastcgi 的問題」這邊的解法來解了:

www/trac: NO_CHECKSUM=yes | PATCH_SITES=http://freebsd-patches.s3.amazonaws.com/trac/ | PATCHFILES=patch-trac__db__mysql_backend.py

不過 NO_CHECKSUM=yes 有點討厭,來找看看有沒有辦法「增加 checksum」而非「忽略 checksum」...

redports.org 恢復部份功能...

redports.org 是一項提供給 FreeBSD ports maintainer 的服務,可以把 ports 丟上去讓大家在 submit/commit 之前測試看看有沒有問題。

服務在前陣子的 security intruson 而暫時離線後就開始重建 (參考 FreeBSD 官方在「FreeBSD.org intrusion announced November 17th 2012」的說明),直到今天才恢復部份功能。

目前只有開放讓之前有註冊的人可以 reset password,另外目前只有 9.1-RELEASE/amd64 與 9.1-RELEASE/i386 可以用,不過至少恢復部份功能讓大家測試。

在 Raspberry Pi 上跑 FreeBSD...

Raspberry Pi 的官方網站上提到可以在 Raspberry Pi 上跑 FreeBSD 的消息:「FreeBSD is here!」。

不過這是 community (unofficial) 版本,而且是 10-CURRENT,維護者自己也說這還不是 production-ready,主要是給大家嘗鮮用...

目前如果要拿來做一些正事,還是以 Linux 為主吧,畢竟是主力平台。

FreeBSD snapshot 版本復出...

很久前 FreeBSD 有提供 weekly build (還是 daily build?) 讓人安裝,以前還蠻喜歡抓這個版本下來裝,因為解開 ports 的東西不會太舊。現在網路夠快,用 Portsnap 拉一下就抓完了...

不過對於希望能用 -STABLE 的人絕對是一個相當棒的服務 (通常發生在 -STABLE 從 -CURRENT 合併新功能進來時... 這時可以直接裝一台機器測試,而不用先裝 -RELEASE 再 re-compile kernel & world 升級):「FreeBSD Development Snapshot Availability」。

目前針對 10-CURRENT 放出 amd64、i386、powerpc、powerpc64 四個平台,9-STABLE 則是 amd64 與 i386,所以總共是六個支線,檔案在官方的 FTP 站上可以取得:「ftp.freebsd.org/pub/FreeBSD/snapshots/」。

更新 bash-completion 的位置...

前陣子升了 FreeBSD 上的 bash-completion 之後發現就失效了,翻了紀錄才發現是檔案從 /usr/local/etc/bash_completion 換到 /usr/local/share/bash-completion/bash-completion,所以引用的路徑要改...

過了一個月沒有 hostname auto completion 的日子...

FreeBSD 預設的 compiler 從 GCC 換成 clang

FreeBSD 預設的 compiler (/usr/bin/cc/usr/bin/c++/usr/bin/cpp) 從 GCC 4.2.1 換成 clang 了:「Revision 242624」。

目前只有 CURRENT 裡的 amd64 與 i386 版本換過去,如此一來,FreeBSD 10.0 會是第一個使用 clang 作為預設編輯器的正式版本 (看起來不像會 back port 回 FreeBSD 9)。接下來是 Ports 大混戰了,應該會有一卡車的 ports 用 USE_GCC=yes 來解?

從 2009 年的努力到現在三年多了 (參考「[ANNOUNCE]: clang/llvm can compile booting FreeBSD kernel on i386/amd64」這封公告信),離拔掉 GCC 4.2.1 又進了一大步...

FreeBSD 引入 OptionsNG 後 ports.conf (portconf) 的轉換

www/apache22 為例子,本來 /usr/local/etc/ports.conf 內是這樣:

www/apache22: WITH_MPM=worker

引入 OptionsNG 後增加了不少檢查。其中因為 WITH_MPM=worker 的關係,需要把 CGID 打開,並且關掉 CGI。以前的寫法是 WITH_CGID=yes + WITHOUT_CGI=yes 就好,現在要改成:

www/apache22: OPTIONS_SET=CGID | OPTIONS_UNSET=CGI | WITH_MPM=worker

這樣就可以繼續用 ports.conf 管了... 不過還是有些地方要解決 (像是 WITHOUT_X11=yes 這種設定要怎麼轉到 OptionsNG 架構),看起來得想辦法讓 portconf 可以吃更多形式?

FreeBSD 將在 10.0 時將預設編譯器從 GCC 換成 clang

FreeBSD 預定在今年十一月將 amd64 與 i386 版本的 C 與 C++ 預設編譯器從 GCC 4.2.1 換成 clang,也就是下一個 major release (10.0) 就會是預設編譯器:「Clang as default compiler November 4th」。

自從 GCC 決定要換成 GPLv3 後整個計畫才活起來,到現在走了三年,看起來明年應該有機會看到預設是使用 clang 的 FreeBSD?

接下來的工作是解決 Ports 裡面一堆用 clang 編不過的軟體,以目前「Ports and Clang」這邊列出來的數量,看起來把幾個大的傢伙解決掉就差不多了?(不過應該是不怎麼好解,不然這種大目標物應該早就解決了...)