# [RISOLTO] Problema compilazione consolekit

## stifler83

Il problema è il seguente quando vado a compilare:

```
emerge -NDuv world

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild     U ] sys-auth/consolekit-0.4.3 [0.4.2-r4] USE="pam policykit -debug -doc -test" 0 kB
```

Vi risparmio tutto il configure e metto solo la parte piu interessante

```
ConsoleKit 0.4.3

                    ========================

        prefix:                   /usr

        exec_prefix:              ${prefix}

        libdir:                   /usr/lib64

        bindir:                   ${exec_prefix}/bin

        sbindir:                  ${exec_prefix}/sbin

        sysconfdir:               /etc

        localstatedir:            /var

        datadir:                  /usr/share

        source code location:     .

        compiler:                 x86_64-pc-linux-gnu-gcc

        cflags:                   -march=core2 -O2 -pipe

        Base libs:                -pthread -ldbus-glib-1 -ldbus-1 -lpthread -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0  

        Tools libs:               -lX11 -lglib-2.0  

        Maintainer mode:          no

        dbus-1 system.d dir:      /etc/dbus-1/system.d

        Build backend:            linux

        PAM module dir:           /lib64/security

        Build PAM module:         yes

        Build docs:               no

        PolicyKit support         yes

        RBAC (Solaris) support:   no

>>> Source configured.

>>> Compiling source in /var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3 ...

make 

make  all-recursive

make[1]: Entering directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3'

Making all in src

make[2]: Entering directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

dbus-binding-tool --prefix=ck_manager --mode=glib-server --output=ck-manager-glue.h org.freedesktop.ConsoleKit.Manager.xml

dbus-binding-tool --prefix=ck_seat --mode=glib-server --output=ck-seat-glue.h org.freedesktop.ConsoleKit.Seat.xml

dbus-binding-tool --prefix=ck_session --mode=glib-server --output=ck-session-glue.h org.freedesktop.ConsoleKit.Session.xml

make  all-recursive

make[3]: Entering directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

make[4]: Entering directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

  CC     ck-sysdeps-unix.lo

  CC     ck-sysdeps-linux.lo

ck-sysdeps-linux.c: In function 'stat2proc':

ck-sysdeps-linux.c:397: warning: use of assignment suppression and length modifier together in gnu_scanf format

ck-sysdeps-linux.c:397: warning: use of assignment suppression and length modifier together in gnu_scanf format

  CCLD   libck.la

  CC     ck-log-event.lo

  CCLD   libck-event-log.la

  CC     ck-event-logger.o

  CC     test-event-logger.o

  CCLD   test-event-logger

libtool: link: cannot find the library `/usr/lib64/libdbus-glib-1.la' or unhandled argument `/usr/lib64/libdbus-glib-1.la'

make[4]: *** [test-event-logger] Error 1

make[4]: Leaving directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

make[3]: *** [all-recursive] Error 1

make[3]: Leaving directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

make[2]: *** [all] Error 2

make[2]: Leaving directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3'

make: *** [all] Error 2

 * ERROR: sys-auth/consolekit-0.4.3 failed:

 *   emake failed

 * 

 * Call stack:

 *     ebuild.sh, line   47:  Called src_compile

 *   environment, line 3863:  Called _eapi2_src_compile

 *     ebuild.sh, line  635:  Called die

 * The specific snippet of code:

 *              emake || die "emake failed"

 * 

 * If you need support, post the output of 'emerge --info =sys-auth/consolekit-0.4.3',

 * the complete build log and the output of 'emerge -pqv =sys-auth/consolekit-0.4.3'.

 * The complete build log is located at '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/environment'.

 * S: '/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3'

>>> Failed to emerge sys-auth/consolekit-0.4.3, Log file:

>>>  '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/build.log'

 * Messages for package sys-auth/consolekit-0.4.3:

 * ERROR: sys-auth/consolekit-0.4.3 failed:

 *   emake failed

 * 

 * Call stack:

 *     ebuild.sh, line   47:  Called src_compile

 *   environment, line 3863:  Called _eapi2_src_compile

 *     ebuild.sh, line  635:  Called die

 * The specific snippet of code:

 *              emake || die "emake failed"

 * 

 * If you need support, post the output of 'emerge --info =sys-auth/consolekit-0.4.3',

 * the complete build log and the output of 'emerge -pqv =sys-auth/consolekit-0.4.3'.

 * The complete build log is located at '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/environment'.

 * S: '/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3'
```

Idee?Last edited by stifler83 on Sun Dec 26, 2010 5:18 pm; edited 1 time in total

----------

## cloc3

 *stifler83 wrote:*   

> Il problema è il seguente quando vado a compilare:
> 
> [code]
> 
> libtool: link: cannot find the library `/usr/lib64/libdbus-glib-1.la' or unhandled argument `/usr/lib64/libdbus-glib-1.la'
> ...

 

probabilmente devi installare dev-util/lafilefixer ed eseguire lafilefixer --justfixit.

qui una discussione storica in cui si parla di questa utility.

----------

## xdarma

 *stifler83 wrote:*   

> 
> 
> ```
> libtool: link: cannot find the library `/usr/lib64/libdbus-glib-1.la' or unhandled argument `/usr/lib64/libdbus-glib-1.la'
> 
> ...

 

A quanto mi risulta, in alternativa puoi aggiungere "fixlafiles" tra le FEATURES in/etc/make.conf e lasciare che se ne occupi portage.

----------

## cloc3

 *xdarma wrote:*   

> 
> 
> A quanto mi risulta, in alternativa puoi aggiungere "fixlafiles" tra le FEATURES in/etc/make.conf e lasciare che se ne occupi portage.

 

in effetti, portage include l'utility /usr/lib64/portage/pym/portage/util/lafilefixer.py .

però, mi chiedo se stifler83 non sia comunque obbligato a chiamare, almeno una volta, lo script di dev-util/lafilefixer, perché lui possiede una condizione di partenza sporca, dove i file da correggere sono già presenti nel sistema.

----------

## stifler83

 *Quote:*   

> In effetti, portage include l'utility /usr/lib64/portage/pym/portage/util/lafilefixer.py . 

 

Io qui non trovo assolutamente nulla   :Sad: 

 *Quote:*   

> A quanto mi risulta, in alternativa puoi aggiungere "fixlafiles" tra le FEATURES in/etc/make.conf e lasciare che se ne occupi portage.

 

A quanto pare la features non esiste.   :Sad:   :Sad: 

----------

## stifler83

Per quanto riguarda la discussione che ci vu a suo tempo su lafilefixer, l'ho letta e sono sempre piu invogliato a risolvere il problema senza dover utilizzare lafilefixer.  :Smile: 

----------

## stifler83

Sono andato a cercare le FEATURES ed notato che c'era quella che interessava me 

```
FEATURES="assume-digests distlocks fixpackages [u]lafilefixer[/u] mini-manifest news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
```

Detto questo, ho inserito nel make.conf la features lafilefixer ed il risultato non cambia, l'errore rimane:

```
ConsoleKit 0.4.3

                    ========================

        prefix:                   /usr

        exec_prefix:              ${prefix}

        libdir:                   /usr/lib64

        bindir:                   ${exec_prefix}/bin

        sbindir:                  ${exec_prefix}/sbin

        sysconfdir:               /etc

        localstatedir:            /var

        datadir:                  /usr/share

        source code location:     .

        compiler:                 x86_64-pc-linux-gnu-gcc

        cflags:                   -march=core2 -O2 -pipe

        Base libs:                -pthread -ldbus-glib-1 -ldbus-1 -lpthread -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0  

        Tools libs:               -lX11 -lglib-2.0  

        Maintainer mode:          no

        dbus-1 system.d dir:      /etc/dbus-1/system.d

        Build backend:            linux

        PAM module dir:           /lib64/security

        Build PAM module:         yes

        Build docs:               no

        PolicyKit support         yes

        RBAC (Solaris) support:   no

>>> Source configured.

>>> Compiling source in /var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3 ...

make 

make  all-recursive

make[1]: Entering directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3'

Making all in src

make[2]: Entering directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

dbus-binding-tool --prefix=ck_manager --mode=glib-server --output=ck-manager-glue.h org.freedesktop.ConsoleKit.Manager.xml

dbus-binding-tool --prefix=ck_seat --mode=glib-server --output=ck-seat-glue.h org.freedesktop.ConsoleKit.Seat.xml

dbus-binding-tool --prefix=ck_session --mode=glib-server --output=ck-session-glue.h org.freedesktop.ConsoleKit.Session.xml

make  all-recursive

make[3]: Entering directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

make[4]: Entering directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

  CC     ck-sysdeps-unix.lo

  CC     ck-sysdeps-linux.lo

ck-sysdeps-linux.c: In function 'stat2proc':

ck-sysdeps-linux.c:397: warning: use of assignment suppression and length modifier together in gnu_scanf format

ck-sysdeps-linux.c:397: warning: use of assignment suppression and length modifier together in gnu_scanf format

  CCLD   libck.la

  CC     ck-log-event.lo

  CCLD   libck-event-log.la

  CC     ck-event-logger.o

  CC     test-event-logger.o

  CCLD   test-event-logger

libtool: link: cannot find the library `/usr/lib64/libdbus-glib-1.la' or unhandled argument `/usr/lib64/libdbus-glib-1.la'

make[4]: *** [test-event-logger] Error 1

make[4]: Leaving directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

make[3]: *** [all-recursive] Error 1

make[3]: Leaving directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

make[2]: *** [all] Error 2

make[2]: Leaving directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3/src'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3'

make: *** [all] Error 2

 * ERROR: sys-auth/consolekit-0.4.3 failed:

 *   emake failed

 * 

 * Call stack:

 *     ebuild.sh, line   47:  Called src_compile

 *   environment, line 3865:  Called _eapi2_src_compile

 *     ebuild.sh, line  635:  Called die

 * The specific snippet of code:

 *              emake || die "emake failed"

 * 

 * If you need support, post the output of 'emerge --info =sys-auth/consolekit-0.4.3',

 * the complete build log and the output of 'emerge -pqv =sys-auth/consolekit-0.4.3'.

 * The complete build log is located at '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/environment'.

 * S: '/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3'

>>> Failed to emerge sys-auth/consolekit-0.4.3, Log file:

>>>  '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/build.log'

 * Messages for package sys-auth/consolekit-0.4.3:

 * ERROR: sys-auth/consolekit-0.4.3 failed:

 *   emake failed

 * 

 * Call stack:

 *     ebuild.sh, line   47:  Called src_compile

 *   environment, line 3865:  Called _eapi2_src_compile

 *     ebuild.sh, line  635:  Called die

 * The specific snippet of code:

 *              emake || die "emake failed"

 * 

 * If you need support, post the output of 'emerge --info =sys-auth/consolekit-0.4.3',

 * the complete build log and the output of 'emerge -pqv =sys-auth/consolekit-0.4.3'.

 * The complete build log is located at '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-auth/consolekit-0.4.3/temp/environment'.

 * S: '/var/tmp/portage/sys-auth/consolekit-0.4.3/work/ConsoleKit-0.4.3'
```

A questo punto a quale pro eseguire il comando lafilefixer --justfixit se la FEATURES fa sicuramente la stessa cosa (o meglio hanno lo stesso obiettivo) ed oltretutto evita di creare dei problemi all'interno del sistema stesso?!

----------

## cloc3

 *stifler83 wrote:*   

> 
> 
> Detto questo, ho inserito nel make.conf la features lafilefixer ed il risultato non cambia, l'errore rimane:
> 
> A questo punto a quale pro eseguire il comando lafilefixer --justfixit se la FEATURES fa sicuramente la stessa cosa (o meglio hanno lo stesso obiettivo) ed oltretutto evita di creare dei problemi all'interno del sistema stesso?!

 

tu lo hai detto: l'errore rimane.

infatti la flag agisce sui binari che stai compilando, non su quelli del sistema che li ospita e che sono la causa del tuo errore.

per questo devi prima lanciare lafilfixer.

lafilefixer esegue uno scanning di tutte le librerie di sistema e aggiusta ciò che è necessario.

la cosa che mi chiedevo (a cui puoi rispondere tu, sperimentalmente), è se sia possibile ottenere lo stesso risultato lanciando a mano l'eseguibile python incluso in portage.

----------

## ciro64

Un

```

# emerge -1 dbus-glib
```

già provato ?

----------

## MajinJoko

 *cloc3 wrote:*   

> per questo devi prima lanciare lafilfixer.

 

Vero.

Ero nella stessa situazione. Prima ho eseguito lafilfixer, poi sono riuscito a compilare.

Ciao.

----------

## xdarma

 *cloc3 wrote:*   

> però, mi chiedo se stifler83 non sia comunque obbligato a chiamare, almeno una volta, lo script di dev-util/lafilefixer, perché lui possiede una condizione di partenza sporca, dove i file da correggere sono già presenti nel sistema.

 

Mi sa che hai ragione tu: prima lancia qualcosa tipo:

```
lafilefixer --justfixit | grep -v skipping
```

In modo da poter controllare se viene corretto il /usr/lib64/libdbus-glib-1.la

Dopo aver "ripulito" il sistema aggiunge alle FEATURES di make.conf  "fixlafiles" e non "lafilefixer" come dice lui, in modo da mantenere "ordinato" il sistema nei prossimi aggiornamenti.

Fra l'altro se ha impostato le FEATURES sbagliate emerge dovrebbe segnalargli l'errore...

----------

## stifler83

Ok ho eseguito lafilefixer --justfixit ed ho risolto il problema per quanto riguarda la compilazione, però devo ancora capire una cosa prima di mettere risolto al topic in modo da rende il tutto chiaro anche per le persone in futuro. 

 *Quote:*   

> Dopo aver "ripulito" il sistema aggiunge alle FEATURES di make.conf "fixlafiles" e non "lafilefixer" come dice lui, in modo da mantenere "ordinato" il sistema nei prossimi aggiornamenti. 

 

Per quale motivo dovrei utilizzare la FEATURES fixlafiles e non lafilefixer visto che se eseguo emerge --info | grep FEATURES quello che trovo è proprio il secondo e non il primo?

----------

## cloc3

 *stifler83 wrote:*   

> 
> 
> Per quale motivo dovrei utilizzare la FEATURES fixlafiles e non lafilefixer

 

perché la FEATURES lafilefixer non esiste, come puoi evincere da una lettura di man make.conf.

il tuo emerge --info riporta passivamente la configurazione locale.

----------

## stifler83

hai ragione  :Smile:  sorry ho dato una letta veloce e sono scivolato su una cazzata. Grazie ancora a tutti  :Wink: 

devo fare però una piccola precisazione per quello che mi riguarda controllando il manuale non viene riportata nessuna FEATURES fixlafiles

----------

