Compilare XChat in modo testo (xchat-text)

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 .

Autore: BuDuS

Disegnatore Meccanico, con la passione per l'Informatica. Come hobby, produco piccoli software di (in)utilità.