ircd導入メモ。

OSはFedora8。


とりあえずソース落としてこんふぃぎゃー。

$ wget http://www.ircnet.jp/dist/server/jp-patch/irc2.10.3p7+jp6.tgz
$ tar zxvf irc2.10.3p7+jp6.tgz
$ cd irc2.10.3p7+jp6/
$ ./configure


ビルド。

$ cd i686-pc-linux-gnu/
$ make all
../ircd/channel.c: In function 'free_channel':
../ircd/channel.c:2047: error: 代入として無効な左辺値です
make: *** [channel.o] エラー 1
(; ゚д゚)・・・。


channel.cのソースを追ってみると

MyFree((char *)chptr);
の辺りでエラー出てるみたいなので追跡。


sys_def.hに発見。


# define MyFree(x) do { if ((x) != NULL) free(x); (x) = NULL; } while(0)
つまり ((char *)chptr) = NULL; がエラーになってると思われる。
ここだけなら自前で置き換えて修正してやればいいかと思ったけど同じような記述が
沢山あったので諦め。


ココを参考にyumでインストール。

# yum -y install ircd-hybrid
後はほとんどURLの通りにconf書き換えて立ち上げ。
サービス起動のコマンドがある場所がちょっと違ったので以下に。
# /sbin/service ircd start
# /sbin/chkconfig ircd on


後はファイアウォールの設定。この辺あたりを参考に。

# vi /etc/sysconfig iptables
にこの一文を追加。
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 6667 --syn -j ACCEPT
意味はよくわかってませんけど、6667番が空きます。


後はなにやらircdをrootで動かすのはよろしくないとか、
実はサーバにパスワードがかかってないらしいとか色々問題が
あるっぽいですが、個人用なので気が向いたら調べますつー感じで。