[PLUTO-help] Compilare vecchi programmi e driver canon [risolto]

f_sophia f_sophia a libero.it
Mer 18 Gen 2006 00:47:39 CET


Ciao a tutti.

Tempo fa avevo postato riguardo alle opzioni di gcc o make utili nella 
compilazione di vecchi programmi.
Era mia intenzione, infatti, compilare i driver della stampante (Canon 
i250)... dato che i binari erano troppo "vetusti" per la nuova distro. 
Purtroppo i sorgenti "sputavano" due righe di compilazione e poi si 
arrenavano inesorabilmente contro un "all recursive error".
Dopo qualche prova... complice il trascorso periodo di feste, ho trovato la 
soluzione, spiegata di seguito a vantaggio di chi ha problemi simili...

*** Soluzione ****
1) make -i (esclusivamente per la fase di studio).
E' un'opzione piuttosto utile, perche', invece di fermarsi all'errore, make 
continua a compilare, permettendo di vedere se e come un errore si 
ripresenta.
Altra sequenza magica e'... aclocal... automake -a... autoconf.
Tutto cio' mi e' servito per scoprire quanto segue...

2) Le librerie per canon i250
Studiando i README all'interno dei sorgenti, avevo notato la classica dicitura 
"libreria pippo.xyz o superiore". Be'... cio' e' vero solo in parte!
E' vero per automake, autoconf, libm, libdl, libtiff, libpopt, gtk+-1 e (per 
ora) libcups, NON lo e' per libglade, libxml.... e libpng, queste ultime solo 
perche' le librerie CANON sono in forma pre-compilata (nel giurassico).
Tali librerie, nel mio caso, sono relative alla Slackware 8.x.

Per quanto riguarda le "esotiche" librerie richieste [libcnl* e libclbp*] sono 
librerie CANON... e anche se nel caso della prima SAREBBERO disponibili i 
sorgenti, di fatto non si trovano da nessuna parte!
La libclbp* (da quanto si deduce dallo stesso README) e' rilasciata solo in 
forma di binari...
Questa scelta di "segregare" le librerie e' una grave violazione della la GPL 
(licenza sotto la quale vengono rilasciati i driver) da parte dei 
produttori... che avrebbero dovuto optare, invece, per una LGPL! :-(

3) Installare le librerie.
Le librerie "strettamente" CANON possono essere prelevate (con rpm-explode o 
trasformandolo in un tgz-Slackware) dallo stesso pacchetto precompilato del 
driver bjfilter. Copiare TUTTO il contenuto della cartella /usr/lib/ 
(sottocartelle comprese) e incollare nella /usr/lib del filesystem.

La libxml-1.x e la libglade-0.x non danno problemi di coesistenza con le loro 
versioni piu' recenti, infatti creano cartelle separate per gli header e una 
diversa dicitura nell'elenco delle librerie di sistema (non come le GTK+... 
che, in tale registro, si sovrascrivono perche' usano tutte un generico 
2.0... invece che di 2.2, 2.4, 2.6 etc...).
La libpng, invece, qualche problemino lo da!
Ad ogni libpng occorre la sua zlib... ed entrambe "maneggiano" sgradevolmente 
con header e i link... creando problemi "insidiosi". Soluzione: installare le 
vecchie librerie e poi reinstallare quelle in uso (sia libpng sia zlib).

4) Finalmente compila!
Sistemate le dipendenze... i tarball con i sorgenti possono essere scompattati 
e compilati seguendo le istruzioni contenute nei rispettivi README.
L'ordine deve essere:bjfilter, printui, stsmon, bjcups e bjcupsmon.
Purtroppo... anzi... OVVIAMENTE... non tutto va liscio come dovrebbe!

La bjcupsmon-2.3 NON compila... per una banale (ma insidiosa) svista: mancano 
i file "testo" AUTHORS e NEWS. Senza questi due file (anche vuoti) autogen.sh 
(quando invoca automake) restituisce un bel "ERROR".
E' sufficiente crearli (ovviamente vuoti) con qualsiasi un editor di testo... 
e tutto si risolve.

La bjcups-2.3-0 - invece - va compilata in due tempi. Prima entrare nella 
sottocartella /libs... compilare... installare... lanciare ldconfig 
[attenzione: se dimenticate di farlo... stranezze in vista!!!! ]... e poi 
compilare il resto tornando al MAKEFILE principale.

Va da se' che dopo ogni singolo tarball compilato, va aggiornato l'elenco 
delle librerie (con ldconfig), salvo utilizzare qualche utility per la 
pachettizzazione.

A questo punto si puo' configurare la nuova stampante in CUPS... 

** Conclusione **
Ho dovuto usare comunque le vecchie librerie, ma la compilazione dei driver ha 
dato i suoi frutti: l'interfaccia grafica non e' piu' sgranata, i driver 
(notoriamente "lenti") sono sensibilmente piu' reattivi, l'integrazione con 
CUPS e' piu' efficiente (anche se non perfetta). Insomma... ne vale la pena.

Ciao a tutti.

F_Sophia




More information about the pluto-help mailing list