FreeBSD ports 裡的 Apache 2.2 啟動 shell script 的問題

前幾天送了個 pr ( problem report ) 回去給總部, 順便在這邊說一下好了, 反正太久沒寫 Blog . (羞)

這個 prApache 2.2 啟動用的 shell script 問題.

我不知道 2.1 有沒有這問題, 因為我用的是 2.2 , 下面也是以 2.2 做說明. :-P

之前官方並沒有提供 apache22_http_accept_enable 這個參數讓我們丟進 /etc/rc.conf , 所以唯一解法是在 /boot/loader.conf 加進這行 :

accf_http_load="YES"

現在 /usr/local/etc/rc.d/apache22.sh 裡面可以看到這段 :

# apache22_http_accept_enable (bool): Set to "NO" by default.
#                             Set to yes to check for accf_http kernel
#                             module on start up and load if not loaded.

跟這段 :

if checkyesno apache22_http_accept_enable
then
        if ! /sbin/kldstat -q -m accf_http
        then
                /sbin/kldload accf_http
        fi
else
        apache22_flags="-DNOHTTPACCEPT $apache22_flags"
fi

很明顯的, 這邊用到 kldstat 的 -q 跟 -m 這兩個選項.
但是 kldstat 在 FreeBSD 6 裡面才有支援 -q , 而 -m 則是在 5.4 STABLE 才有支援 , 5.4 RELEASE 以下都沒有.

  1. kldstat online manpage – FreeBSD 6.0
  2. kldstat online manpage – FreeBSD 5.4 STABLE
  3. kldstat online manpage – FreeBSD 5.4 RELEASE

所以在 5.4 RELEASE (含) 以下的平台在啟動時會看到這種訊息 :

kldstat: illegal option -- q
usage: kldstat [-v] [-i id] [-n name]

所以我送 pr 去請他們把 -q -m 改成 -n 就好.

目前看來是還沒處理, 不知道會不會回我信, 叫我改用 FreeBSD 6.0 ? XD