こんにちは、鶴谷です。

Munechika SUMIKAWA / 角川宗近 <sumik...@sumikawa.jp> さん>

> 「"特殊なPREFIX"なのでこれが動かない」かつ、そもそも/usr/local以下にファ
> イルを置く必要がないので、rc.d/opensshをインストールしないのが僕の結論
> です。

 そうなのですが...
 現実には、WITH_OVERWRITE_BASEのあるなしに関わらず、rc.d/openssh は
インストールされます。
USE_RC_SUBR=yes
SUB_FILES+=openssh
か
USR_RC_SUBR=openssh
かの違いです。
前者を指定し、WITH_OVERWRITE_BASE=1のときだけ rc.d/openssh を修正してから
インストールできるようにしているようです。
 わざわざこんなことをしているということは、rc.d/openssh はどんな場合でも
インストールするのだ!というポリシーのように見えるのです...
# あくまで推測です。
# なくてもいいものだとも思いますけど。

> .if defined(WITH_OVERWRITE_BASE)
>         @${REINPLACE_CMD} -e 's|%%PREFIX%%|${LOCALBASE}|' \
>                 -e 's|%%RC_SCRIPT_NAME%%|${RC_SCRIPT_NAME}|' ${WRKSRC}/sshd.8
> .else
>         @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' \
>                 -e 's|%%RC_SCRIPT_NAME%%|${RC_SCRIPT_NAME}|' ${WRKSRC}/sshd.8
> .endif

 おっしゃるとおりですね。
 しかし、これもスタートアップスクリプトが存在することを前提にしています。
そこまで書き換えるのも手ですが、/etc/rc.d/が存在しない古いOSを考えると、
ちょっと面倒そうです。
 さらに、NO_OPENSSHを指定してmake world したあとで mergemaster すると、
/etc/rc.d/sshd を消そうとしたりしますので、やはりその代替となるスタ−トアップスクリプトは
あったほうがいいんじゃないかと思います。
# 実際、私のところでは、ずいぶんと前にmergemasterの仰せに従って消してしまいました。

-- 
鶴谷 直樹
E-mail: turut...@scphys.kyoto-u.ac.jp

メールによる返信