Pagina 1 di 1

[RISOLTO] - Building for dummies

Inviato: mar 2 lug 2013, 18:31
da shoshin
Salve,

su desktop ho Slackware 14.0 kernel-huge-3.2.45, XFCE (che lascierò per Razor-Qt) e stò compilando i vari moduli per tirare su Compiz. Ovviamente tali moduli li stò prendendo da Slackbuild.org.

Nel compilare il 3°modulo (come riportato qui [0]) ottengo il seguente errore:

Codice: Seleziona tutto

make[2]: Entering directory `/home/denshi/scaricati/compiz/libcompizconfig/libcompizconfig-0.8.8/src'
/bin/sh ../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include/libxml2 -I../include -I../src -DPLUGINDIR=\"/usr/lib64/compiz\" -DMETADATADIR=\"/usr/share/compiz\" -DLIBDIR=\"/usr/include/compiz\" -DUSE_PROTOBUF=1 -DSYSCONFDIR=\"/usr/local/etc\"    -g -O2 -MT compiz.lo -MD -MP -MF .deps/compiz.Tpo -c -o compiz.lo compiz.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include/libxml2 -I../include -I../src -DPLUGINDIR=\"/usr/lib64/compiz\" -DMETADATADIR=\"/usr/share/compiz\" -DLIBDIR=\"/usr/include/compiz\" -DUSE_PROTOBUF=1 -DSYSCONFDIR=\"/usr/local/etc\" -g -O2 -MT compiz.lo -MD -MP -MF .deps/compiz.Tpo -c compiz.cpp  -fPIC -DPIC -o .libs/compiz.o
compiz.cpp:44:25: fatal error: compiz-core.h: No such file or directory
compilation terminated.
make[2]: *** [compiz.lo] Error 1
lanciando un locate compiz-core.h lo trovo sotto /usr/include/compiz

Su G. non ho trovato nulla che mi spiegasse il problema e comunque ho aperto il topic focalizzandomi sul capire la compilazione perchè in queste situazioni mi ci sono già trovato altre volte, ma non sono mai riuscito a risolverle.

Ho provato a spacchettare il sorgente libcompizconfig-0.8.8 e passando al ./configure varie opzioni (ovviamente una per volta):
--includedir=/usr/include/compiz oppure
--libdir=/usr/include/compiz, oppure
--prefix=/usr

ma non ho risolto nulla. Ho poi creato un link simbolico dentro la directory src con ln -s /usr/include/compiz/compiz-core.h compiz-core.h e l'errore si è spostato sul file compiz-plugin.h che viene richiamato da compiz-core.h, ma che essendo su un altro percorso (anche questo sotto /usr/include/compiz), non lo trova. Possibile che mi tocca creare n link simbolici per tutti i moduli che stanno da altre parti? non credo che questa possa essere la soluzione più corretta e pulita.

Grazie in anticipo a tutti.

Davide

[0] - http://slackbuilds.org/slackbuilds/14.0 ... fig/README

Re: Building for dummies

Inviato: mar 2 lug 2013, 20:33
da ilmich
ma l'errore che hai postato è l'output dello slackbuild che hai provato a modificare?!?! perchè a me non mi tornano alcune cose.

Codice: Seleziona tutto

-DLIBDIR=\"/usr/include/compiz\"
eppoi ti manca qualcosa tipo

Codice: Seleziona tutto

-I/usr/include/compiz
ora da cosa puo' dipendere questa cosa è variabile, nel senso che io ho provato a seguire il tuo iter tramite slackbuild e compila correttamente.
probabilmente nel tuo caso il sorgente fatica a trovare il pacchetto compiz.
sicuramente le opzioni che hai provato a configurare non servono, nel senso che questo pacchetto usa gli autotools per compilare, un set di software che esiste da un po' ed è usato come 'standard' per la compilazione di programmi.
le opzioni che hai modificato servono ad indicare dove vuoi che vengano INSTALLATE le librerie e gli header non dove il sistema deve andare a cercare quelle di cui hai bisogno.

il consiglio che ti do io è di rimettere lo slackbuild com'era.. lanciarlo e se ti da' lo stesso errore andare nella directory

Codice: Seleziona tutto

/tmp/SBo/nome-pacchetto/
e spulciare il file config.log, cercando la parola COMPIZ (distingui tra maiuscole e minuscole).
il file che ti ho suggerito di spulciare è il log che gli autotools scrivono quando 'configurano' il sorgente per essere compilato. di solito errori relativi a pacchetti mancanti o comunque nn rilevati li trovi qui' dentro.

se noti qualcosa di strano postane il contenuto e vediamo che si puo' fare :D

Re: Building for dummies

Inviato: mer 3 lug 2013, 0:40
da shoshin
L'output che ho riportato é stato generato dallo SlackBuild. Poi non sapendo come interagire, ho preso il sorgente e ho provato a compilarlo a mano.
Ad ogni modo, il messaggio di errore mi viene fuori in fase di make, indipendentemente dai parametri che passo al ./configure

Grazie dei toui consigli, domani provo e ti aggiorno sulla situazione.

Una domanda, in questo caso, centra qualcosa il pkgconfig? perché su alcuni Slackbuilds, ho dovuto passare dei parametri appunto al pkgconfig.

Grazie dell' aiuto.

Davide

Re: Building for dummies

Inviato: mer 3 lug 2013, 9:52
da shoshin
Ciao Miklos,

ho controllato il file /tmp/SBo/libcompizconfig-0.8.8/config.log (che ho allegato) e non trovo nulla di strano, ossia fà una miriade di check su componenti che ovviamente trova, e conclude con configure: exit 0 (che suppongo 0 sia exit status ok).

La cosa che mi sembra strana è che in config.log, non trovo alcun riferimento su check o operazioni di compilazione relativi al file compiz-core.h
A te la compilazione gira senza problemi, potresti fare un riscontro sul tuo config.log?

Grazie di nuovo :)

Davide

Re: Building for dummies

Inviato: mer 3 lug 2013, 10:01
da ilmich
shoshin ha scritto:Una domanda, in questo caso, centra qualcosa il pkgconfig? perché su alcuni Slackbuilds, ho dovuto passare dei parametri appunto al pkgconfig.
se per pkgconfig intendi il pacchetto pkg-config e relativo comando si.. in questo caso viene utilizzato per rilevare la presenza di compiz e ricavare i flag per la compilazione (header e librerie)
se hai modificato quello di compiz (ma essendo un pacchetto ufficiale non ne vedo il motivo.. anche se, tutto puo' essere ;) ) potrebbe darsi che lo hai modificato in modo scorretto.

ad ogni modo, in attesa di tue ulteriori notizie, in veste di pacchettizzatore che ne ha viste tante, ogniqualvolta ti capitano di queste circostanze la soluzione piu' pulita e che nn intacca pacchetti pre-installati e aggiungere i flags tramite la variabile CFLAGS e CXXFLAGS. qualcosa tipo

Codice: Seleziona tutto

CFLAGS="-I/usr/include/compiz" ./configure
cosi' facendo in fase di compilazione oltre ai flag che il configure si calcola automaticamente, vengono aggiunti quelli che hai specificato in questa variabile. una volta risolto il problema modificare lo slackbuild è banale perchè essendo utilizzati il piu' delle volte si tratta di cercare CFLAGS o CXXFLAGS e modificarli secondo le tue esigenze.

ad ogni modo sto cercando di trasmetterti quello che so io in materia perchè lo hai chiesto esplicitamente a inizio post :D
Pero' io nel tuo caso sono riuscito a compilare il tutto senza bisogno di toccare/modificare nulla quindi al momento il tuo problema mi resta comunque un po' strano.

ciau

EDIT: ho letto ora la tua risposta.. ora vedo :D

Re: Building for dummies

Inviato: mer 3 lug 2013, 10:49
da ilmich
ho dato uno sguardo al tuo log e come immaginavo la libreria compiz viene 'cercata' tramite pkg-config.
infatti se cerchi nel log la chiave COMPIZ (tutto maiuscolo) troverai ad un certo punto questo (l'ho estratto dal tuo log)

configure:17123: checking for COMPIZ
configure:17130: $PKG_CONFIG --exists --print-errors ""compiz""
configure:17133: $? = 0
configure:17146: $PKG_CONFIG --exists --print-errors ""compiz""
configure:17149: $? = 0
configure:17206: result: yes

poi pero' dopo vedo questo

COMPIZ_CFLAGS=''
COMPIZ_LIBS=''

quindi qualcosa nn è andato bene. ora faccio una prova sul mio picci e ti faccio sapere

EDIT: intanto da console prova a dare questo comando

pkg-config --cflags --libs compiz

e vedi che ti dice.

Re: Building for dummies

Inviato: mer 3 lug 2013, 12:59
da shoshin
Il comando

pkg-config --cflags --libs compiz mi riporta quanto di seguito:

Codice: Seleziona tutto

denshi@TRENO-118:~$ pkg-config --cflags --libs compiz
Package kbproto was not found in the pkg-config search path.
Perhaps you should add the directory containing `kbproto.pc'
to the PKG_CONFIG_PATH environment variable
Package 'kbproto', required by 'X11', not found
che però non trovo, quindi suppongo che dovrò installare.
Inoltre volevo farti una domanda: dove e come lo passo il comando che mi hai riportato?

Codice: Seleziona tutto

CFLAGS="-I/usr/include/compiz" ./configure
Grazie mille! :)

Re: Building for dummies

Inviato: mer 3 lug 2013, 14:23
da ilmich
beh diciamo che l'errore è piuttosto esplicativo.. nel senso che mancandoti questo pacchetto non ti restituisce i valori corretti.
infatti compiz dipendendo da altri pacchetti quando gli vai a chiedere, tramite pkg-config, i flag che servono per compilare correttamente ti dice che non ne è in grado visto che mancano alcune librerie.
io se lo lancio sul mio picci infatti ricevo le stringhe corrette.

aggiungendo questo pacchetto ora vedrai che (a meno che non te ne manchino altri) risponde in modo corretto e tutto si risolve senza alcun bisogno di aggiustare lo slackbuild.
ora tu dirai.. eh ma perchè allora non me lo ha detto in fase di configure?!?!? presto detto.. se guardi il configure.log per testare l'esistenza di compiz viene eseguito il comando

$PKG_CONFIG --exists --print-errors ""compiz""

che controlla l'esistenza del pacchetto, ma non nel senso piu' naturale del termine (che sarebbe c'e' e funziona).. questo comando controlla che esista tra i vari file usati da pkg-config quello relativo a compiz.. che come hai vissuto sulla tua pelle non è la stessa cosa :D
shoshin ha scritto:Inoltre volevo farti una domanda: dove e come lo passo il comando che mi hai riportato?

Codice: Seleziona tutto
CFLAGS="-I/usr/include/compiz" ./configure

il comando che ti ho riportato è un esempio che devi lanciare all'interno del sorgente.
insomma prima hai scritto che lanciavi il ./configure manualmente dopo aver estratto il sorgente.. ti ho suggerito un possibile modo per, nei casi come questo ma senza soluzione cosi' semplice, aggiungere parametri in compilazione senza dover maneggiare troppo con link simbolici o file di configurazione di altri pacchetti.

ciau

Re: Building for dummies

Inviato: mer 3 lug 2013, 14:56
da ponce
shoshin, forse ti è sfuggito, ma gli script su SlackBuilds.org hanno come prerequisito un'installazione full dell'ultima versione stabile di slackware: ogni altra piattaforma (comprese installazioni parziali) non è supportata.

[RISOLTO] Re: Building for dummies

Inviato: gio 4 lug 2013, 18:43
da shoshin
Compiz compilato e funzionante!

Ho risolto scaricato kbproto il cui .pc mi si è installato sotto /usr/local/lib64/pkg-config anziché sotto /usr/local/lib64/pkg-config credo perchè ho lanciato il ./configure senza --prefix=/usr (comunque risolto con un link simbolico).

Unico neo, il ccsm che lo ha compilato correttamente, ma installando il .tgz mi ha riportato il seguente messaggio di errore:

Codice: Seleziona tutto

Executing install script for ccsm-0.8.4-x86_64-1_SBo.tgz.
install/doinst.sh: line 3:  8791 Segmentation fault      /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor > /dev/null 2>&1
Package ccsm-0.8.4-x86_64-1_SBo.tgz installed.
ma se lancio

Codice: Seleziona tutto

/usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor > /dev/null 2>&1
sembra funzionare.

Ad ogni modo grazie mille Miklos dell' aiuto!!

@Ponce non è che mi è sfuggito, è che non lo sapevo proprio della prerogativa del sistema full. Altra cosa imparata! Grazie anche a te!

:thumbright:

Re: Building for dummies

Inviato: gio 4 lug 2013, 22:45
da ilmich
shoshin ha scritto:Ho risolto scaricato kbproto il cui .pc mi si è installato sotto /usr/local/lib64/pkg-config anziché sotto /usr/local/lib64/pkg-config credo perchè ho lanciato il ./configure senza --prefix=/usr (comunque risolto con un link simbolico).
ma te lo sei compilato da solo per 'divertimento' o cosa?!?! :D
quel pacchetto fa parte della slackware ufficiale.. per questo ponce sottolineava il fatto che tipicamente gli slackbuild presi da slackbuilds.org sono 'garantiti' se hai installato una full oppure sai perfettamente cosa fare.

comunque lieto di esserti stato utile :)