Dunque, come prima cosa bisogna procurarsi i sorgenti di XChat sul sito ufficiale.
N.B.: Notare che qui faccio riferimento alla versione 2.8.6 mentre, quella attuale, (questo post lo avevo creato prima di cambiare il Blog e l’ho riesumato) è la 2.8.8, quindi alcune cose potrebbero essere diverse.
Io do per scontato che stiate compilando su Linux; il sorgente da scaricare, per la versione corrente mentre scrivo è xchat-2.8.6.tar.bz2 .
Il pacchetto lo si decomprime con il comando:
tar xvjf xchat-2.8.6.tar.bz2
A questo punto bisogna, purtroppo, modificare un file sorgente del programma perché, a causa di un bug nel codice, la procedura di compilazione si interromperebbe con un errore. Andremo a modificare in modo “poco ortodosso”, nel senso che per fare una cosa pulita bisognerebbe operare diversamente, ma per non starci a complicare la vita più di quanto non sia già, procediamo come segue:
- apriamo il file userlist.c con il nostro editor preferito; ad esempio gedit, il comando è questo:
gedit xchat-2.8.6/src/common/userlist.c
- Andiamo alla riga 110 e la modifichiamo in modo che diventi:
// if (away)
(cioè aggiungiamo ‘//’ in testa)
- Ripetiamo l’operazione anche per la riga successiva, la 111, in modo che diventi:
// fe_userlist_update (sess, user);
- Ripetiamo la medesima operazione anche per la riga 142, che diventa identica a questa qui sopra.
Nel caso in cui la versione di XChat scaricata non sia la medesima è possibile che i numeri di riga non siano corretti o, addirittura, il problema sia già stato sistemato.
In altri termini, quello che si vuole fare, è “commentare” il codice che causa i problemi di compilazione, ovvero trasformare le righe che danno noie in righe di commento, così che il compilatore le ignori totalmente. A dare noia è la chiamata a funzione fe_userlist_update(), quindi uno deve fare una ricerca di questa funzione e aggiungere ‘//’ in testa. Purtroppo non sempre è sufficiente (vedi sopra), perchè righe precedenti o successive potrebbero avere problemi a causa di questa modifica; in linea di massima, il compilatore dice quali righe danno il problema e, commentandole, si può risolvere l’inconveniente (non è detto che sia una cosa buona sempre e comunque, anzi, ma spesso funziona).
A questo punto salvare il file userlist.c e lanciare il comando di configurazione dei sorgenti; per non avere altre noie, ve ne propongo uno che, sulla mia macchina, ha funzionato perfettamente:
cd xchat-2.8.6 ./configure --enable-textfe --disable-gtkfe --enable-openssl -enable-ipv6 --disable-nls --disable-threads --disable-rpath --disable-xlib --disable-python --disable-perl --disable-perl_old --disable-dbus --disable-mmx --disable-glibtest --disable-gtktest
Ora non resta che compilare con: make
Se tutto va a buon fin, nella directory src/fe-text/ si potrà trovare l’eseguibile xchat-text.
Nel caso in cui vada caricato su un sistema remoto è possibile ridurlo di ingombro con questo comando:
strip src/fe-text/xchat-text
La dimensione potrebbe ridursi di 1/4 .
Con le opzioni usate sopra, molte features sono disabilitate, come ad esempio gli script in perl; se interessa averli, può essere opportuno tentare di togliere le opzioni –disable-perl e –disable-perl_old .