Pagina 1 di 1

kde 3.5.4, kdelibs, kdenetwork e zeroconf

Inviato: sab 30 dic 2006, 14:19
da linuxboy
La cosa e' tornata alla ribalta dopo la pubblicazione del package avahi qui su slacky.

Qualcuno ha questo servizio funzionante e abilitato (verifica: aprire conqueror e digitare "zeroconf:/" nella barra indirizzi)?

E se si, come ha fatto?

Leggendo questo wiki:
http://wiki.kde.org/tiki-index.php?page ... 20in%20KDE

ho installato i packages che richiedeva, ricompilato le kdelibs (non senza trovare un problemuccio nei sorgenti, mancava un "unsigned"). Da qualche parte ho letto che si doveva ricompilare anche le kdenetwork. Io ho tentato di ricompilare le kdenewtwork senza riuscirci (non trova un riferimento ad una funzione di libreria e mi sono bloccato cosi', perche' il riferimento invece c'e'... ma e' sospetto perche' e' proprio la funzione che non faceva compilare le kdelibs prima).

Tutto quello che sono riuscito ad ottenere e' che ora konqueror, digitando "zeroconf:/", mentre prima diceva che l'installazione di kde era stata creata senza supporto zeroconf, ora mi dice che:

Codice: Seleziona tutto

Si è verificato un errore durante il caricamento di zeroconf:/:
Impossibile avviare il processo
Impossibile creare un io-slave:
klauncher ha detto: Errore durante il caricamento di "kio_zeroconf".
Idee?

Inviato: sab 30 dic 2006, 15:02
da gohanz
Da quello che ho capito, si possono usare due soluzioni!

1> usare mDNSresponder della Apple http://www.slacky.it/index.php?option=c ... fo&id=1179 e ricompilare le kdelibs e kdenetwork che abiliteranno il supporto.

2> Senza ricompilare le Kdelibs.

Installare Avahi, Nss-Mdns http://www.slacky.it/index.php?option=c ... fo&id=1162 e poi compilare kdnssd-avahi http://helios.et.put.poznan.pl/~jstacho ... rig.tar.gz

Ho provato la seconda soluzione ma mi da quest'errore in compilazione!

remoteservice.cpp:198:29: remoteservice.moc: No such file or directory
make[2]: *** [libkdnssd_la-remoteservice.lo] Error 1
make[2]: Leaving directory `/root/Desktop/kdnssd/kdnssd-avahi-0.1.2/kdnssd-avahi'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/Desktop/kdnssd/kdnssd-avahi-0.1.2'
make: *** [all] Error 2
root@argo:~/Desktop/kdnssd/kdnssd-avahi-0.1.2#

Ora che sarebbe sto remoteservice.moc che manca? :roll:

Inviato: sab 30 dic 2006, 16:41
da linuxboy
gohanz ha scritto: Ho provato la seconda soluzione ma mi da quest'errore in compilazione!

remoteservice.cpp:198:29: remoteservice.moc: No such file or directory
make[2]: *** [libkdnssd_la-remoteservice.lo] Error 1
make[2]: Leaving directory `/root/Desktop/kdnssd/kdnssd-avahi-0.1.2/kdnssd-avahi'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/Desktop/kdnssd/kdnssd-avahi-0.1.2'
make: *** [all] Error 2
root@argo:~/Desktop/kdnssd/kdnssd-avahi-0.1.2#

Ora che sarebbe sto remoteservice.moc che manca? :roll:
Ah, si, anche a me lo fa.

i moc li ottieni, di norma, facendo "analizzare" il file .cpp a "moc", cosa che fa automaticamente qmake.

man moc

moc - generate Qt meta object support code.

Ma se lo applichi a quei cpp, non ottieni nulla, risponde che non ci sono classi rilevanti nel sorgente. Cosi', ho compilato generando (con touch) un file vuoto *.moc per ogni cpp nella directory.

Comunque la prova con avahi e' stata infruttuosa: non solo zeroconf non funzionava (stesso problema di quando ho ricompilato le kdelibs) ma ha smesso di funzionarmi il remote desktop, con il quale controllo alcuni serventi remoti.

Inviato: sab 30 dic 2006, 20:19
da gohanz
Ho provato anche a compilare le Kdelibs con mDNSresponder ma anche qui mi da errore! :roll:

orType, const char*, const char*, uint16_t, uint16_t, const char*, void*)' to `void (*)(_DNSServiceRef_t*, DNSServiceFlags, uint32_t, DNSServiceErrorType, const char*, const char*, uint16_t, uint16_t, const unsigned char*, void*)'
remoteservice.cpp:105: error: initializing argument 7 of `DNSServiceErrorType DNSServiceResolve(_DNSServiceRef_t**, DNSServiceFlags, uint32_t, const char*, const char*, const char*, void (*)(_DNSServiceRef_t*, DNSServiceFlags, uint32_t, DNSServiceErrorType, const char*, const char*, uint16_t, uint16_t, const unsigned char*, void*), void*)'
make[2]: *** [remoteservice.lo] Error 1
make[2]: Leaving directory `/tmp/tgz/kdelibs-3.5.5/dnssd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/tgz/kdelibs-3.5.5'
make: *** [all] Error 2

Inviato: dom 31 dic 2006, 11:00
da linuxboy
gohanz ha scritto:Ho provato anche a compilare le Kdelibs con mDNSresponder ma anche qui mi da errore! :roll:
stay tuned.

in questo momento sto finendo di ricompilare kdenetwork.

Se funge, pubblico cosa ho fatto.

Qualche passo avanti...

Inviato: dom 31 dic 2006, 11:52
da linuxboy
In grassetto le modifiche (sono poche).

Qualche altro passo avanti:

Package da installare PRIMA DI INIZIARE A COMPILARE:

avahi-0.6.16-i486-1as.tgz
hspell-1.0-i486-2as.tgz
libdaemon-0.10-i486-2as.tgz
mdnsresponder-107.6-i686-2as.tgz
openslp-1.2.1-i486-2as.tgz
twisted-20061011-noarch-1sl.tgz
xmltoman-0.3-noarch-2as.tgz
zopeinterface-3.1.0c1-noarch-2sl.tgz

tutti qui su slacky.

Procurarsi i sources di kdelibs e kdenetwork 3.5.4, decomprimerli.

In kdelibs, andare nella directory dnssd e applicare (a mano) queste due patch (dove c'e' '-' la riga va rimossa, dove c'e' '+' va aggiunta):

Codice: Seleziona tutto

in remoteservice.cpp

 #include <qeventloop.h>
 #include <qapplication.h>
 at  at  -43,7 +43,7  at  at
  const char                          *hosttarget,
  uint16_t                            port,
  uint16_t                            txtLen,
- const char                          *txtRecord,
+ const unsigned char                 *txtRecord,
  void                                *context
  );
 


 #ifdef HAVE_DNSSD
  DNSServiceRef ref;
  if (DNSServiceResolve(&ref,0,0,m_serviceName.toUtf8(), m_type.toAscii().constData(),
- domainToDNS(m_domain),resolve_callback,reinterpret_cast<void*>(this))
+ domainToDNS(m_domain),(DNSServiceResolveReply)resolve_callback,reinterpret_cast<void*>(this))
  == kDNSServiceErr_NoError) d->setRef(ref);
 #endif
  if (!d->isRunning()) emit resolved(false);



        const char                          *hosttarget,
        uint16_t                            port,
        uint16_t                            txtLen,
-       const char                          *txtRecord,
+       const unsigned char                 *txtRecord,
        void                                *context
  )
 { 
Ritornare ora nella directory superiore (kdelibs) e compilare con queste istruzioni (incorporabili facilmente in uno slackbuild, se vuoi):

Codice: Seleziona tutto

export ARCH=i486
export CPUOPT="-O2 -march=i486 -mtune=i686"
export TARGET=i486

CFLAGS=$CPUOPT CXXFLAGS=$CPUOPT ./configure --prefix=/opt/kde --with-ssl-dir=/usr --with-xinerama --disable-debug --disable-libfam --enable-dnotify --program-prefix="" --program-suffix=""  $TARGET-slackware-linux

make
make install
In kdenetwork, bisogna solo ricompilare con queste istruzioni:

Codice: Seleziona tutto


export ARCH=i486
export CPUOPT="-O2 -march=i486 -mtune=i686"
export TARGET=i486

CFLAGS=$CPUOPT CXXFLAGS=$CPUOPT ./configure --prefix=/opt/kde --with-xinerama --disable-debug --program-prefix="" --program-suffix=""  $TARGET-slackware-linux

make
make install
Conclusione: kdelibs e kdenetwork sembrano essere correttamente funzionanti, ora.

Fatto cio', occorre avviare il demone mdns.

da root:

/etc/rc.d/rc.mdns start

Fatto, o almeno, fatto tutto il possibile.

Aprendo konqueror e digitando "zeroconf:/" per accedere al kio_slave relativo, ora il sistema non da piu' errori.

Ma ZeroConf continua a non andare. Infatti, qualsiasi servizio tenti di pubblicare qualcosa sulla rete zeroconf, non ci riesce e il kio_slave mostra una finestra inesorabilmente vuota.

Inviato: dom 31 dic 2006, 12:27
da gohanz
Ma non è che sia qualche problema con il pacchetto di mdnsresponder dovrei riprovare a compilare in maniera classica lo stesso.In ogni caso complimenti per le patch! ;)

Inviato: dom 31 dic 2006, 15:22
da linuxboy
gohanz ha scritto:Ma non è che sia qualche problema con il pacchetto di mdnsresponder dovrei riprovare a compilare in maniera classica lo stesso.In ogni caso complimenti per le patch! ;)
ho aggiornato il messaggio precedente.

Per ora getto la spugna.