Mais c'est quoi donc ?

Depuis pas mal de temps, je codouille[1] en Perlouille[2] pour le plus beau, le trop méga génial hyper LOL ; j'ai bien sûr nommé IRSSI.
Comme je n'ai pas forcément Internet partout où je vais, il faut bien que je puisse continuer à Perlouiller, du coup ci-dessous une petite explication pour se faire un environnement IRC quickly.

De quoi a-ton besoin ?

  • D'un Client IRC, logiquement IRSSI,
  • D'un Serveur IRC, soit du lourd, du velu comme UnrealIrcd, soit du romantique extravagant avec une once de sophistication et surtout du Poil partout : inspIRCd (celui que j'ai choisi pour aujourd'hui),
  • D'un Bot faisant du XDCC, donc pour l'occasion : Iroffer.
  • D'un Linux, et pour ma part du répertoire /usr/local/src/IRC_dev/.

Comment builder le serveur ?

Le Build en lui même :

./configure --prefix=/usr/local/src/IRC_dev/inspIRCd
make clean && make && make install

Pour résumer, on indique où vont se trouver les binaires après installation, on compile et on installe. Comptez 19 bonnes minutes sur mon Athlon mobile 2000+, mes 512 MiB de RAM et dont la RunQueue est en moyenne de 2 en permanence, ou alors 7 minutes sur un Sempron 3000+ qui fait semblant de router des paquets IP.

La configuration :

Si c'est pour du test, il n'y a pas grand chose à modifier ; vous copiez le fichier inspircd.conf.example en inspircd.conf dans le sous-répertoire conf/ et vous modifiez les quelques lignes suivantes :

name="localhost.localdomain"
description="Mon Test IRC"
name="Me"
nick="myUglyNick"
address="127.0.0.1"

Pour la partie secret :

allow="192.168.36.15"

Pour la partie main :

allow="127.0.0.1"

Et n'oubliez pas de commenter les lignes qui commencent par <die value="....

Le test :

Comme je suis pas un relou, d'une part je ne laisse pas ce genre de programme tourner en root, mon user me suffit, et d'autre part je le fais tourner en debug dans un screen[3].

$ ./inspircd help
Usage: ./inspircd (start|version|restart|checkconf|status|cron|help|rehash|stop)
Developer arguments: (screendebug|valdebug|debug|valdebug-unattended|screenvaldebug)

Exemple :

$ ./inspircd debug
[...]
InspIRCd is now running as 'localhost.localdomain'[559] with 1024 max open sockets
Mon Jan 18 23:51:47 2010: Keeping pseudo-tty open as we are running in the foreground.
Mon Jan 18 23:51:47 2010: Startup complete as 'localhost.localdomain'[559], 1024 max open sockets

Comment builder le Bot ?

Le Build en lui même :

D'abord je modifie le Makefile.config pour avoir mon installation où je veux. Je change INSDIR = /usr/local/src/IRC_dev/iroffer.

mkdir /usr/local/src/IRC_dev/iroffer
./Configure
make clean && make && sudo make install
sudo chown monuser:mongroup /usr/local/src/IRC_dev/iroffer/iroffer

Faites fi de tout ces Warning qui font chier, et vous aurez un beau binaire.

La configuration :

Si c'est pour du test, il n'y a pas grand chose à modifier ; vous copiez le fichier sample.conf en tupeuxpastest.conf dans le répertoire du binaire et vous modifiez les quelques lignes suivantes :

connectionmethod direct
server 127.0.0.1
channel #myTest -plist 2 -plistoffset 3 -pformat full
user_nick mybotDCC
user_realname My Bot
# Pour la valeur suivante, c'est à voir pour vos tests
downloadhost *!*@*
# C'est du local
overallmaxspeed 600
#adminpass montest (généré avec iroffer -c)
adminpass Hffrt/W5SUFZk
adminhost *!~me@*.domain.com
adminhost *!me@192.168.10.#
timestampconsole

Le test :

Comme je suis pas un relou, d'une part je ne laisse pas ce genre de programme tourner en root, mon user me suffit, et d'autre part je le fais tourner en debug dans un screen[4].

$ ./iroffer
./iroffer: no configuration file specifed
 
iroffer v1.3.b11 [20051213023024] by PMG, see http://iroffer.org/
 
Usage: ./iroffer [-vc] [-bdkns] [-u user] [-t dir] configfile [ configfile ... ]
        -v        Print version and exit.
        -c        Generate encrypted password and exit.
        -d        Increase debug level
        -b        Go to background mode
        -k        Attempt to adjust ulimit to allow core files
        -n        No colors in foreground mode
        -s        No screen manipulation in foreground mode
        -u user   Run as user (you have to start as root).
        -t dir    Chroot to dir (you have to start as root).

Exemple :

$ ./iroffer -d tupeuxpastest.config
[...]
** 2010-01-19-00:24:04: Attempting Connection to 127.0.01 (direct)
** 2010-01-19-00:24:04: Connecting to 127.0.0.1:6667
** 2010-01-19-00:24:04: ircserver socket = 5
** 2010-01-19-00:24:04: Server Connection Established, Logging In
** 2010-01-19-00:24:04: ourip = 127.0.0.1
** 2010-01-19-00:24:04: <SND<: NICK mybotDCC
[...]
** 2010-01-19-00:24:54: <SND<: PING localhost.localdomain
** 2010-01-19-00:24:54: >IRC>: :localhost.localdomain PONG localhost.localdomain :localhost.localdomain

[ Stat: 0/20 Sls, 0/10 Q, 0.0K/s Rcd, 0 SrQ (Bdw: 0K, 0.0K/s, 0.0K/s Rcd)                       ]
[ iroffer (mybotDCC) >

Comment builder le client ?

M'en fous ! Un sudo apt-get install irssi m'a suffi.

Notes

[1] Concaténation du verbe coder et du verbe merdouiller.

[2] Concaténation de Perl (langage de programmation) et de couilles (diminutif de boulettes, et dans de nombreux cas aussi appelées "Brave merde").

[3] Une des meilleures commande au monde...

[4] Une des meilleures commande au monde... Sans déconner, j'ai grave l'impression d'un déjà vu, non ?!