Pagina 1 di 1

[RISOLTO]transmission SBo non si compila

Inviato: mer 6 nov 2013, 21:13
da varjag
Buona sera
stavo cercando di compilare transmission 2.82 con slackbuilds di SBo
uso
slackware64 14 multilib aggiornata.
ho modificato slackbuilds aggiungendo

Codice: Seleziona tutto

 SLKLDFLAGS="-L/usr/lib64"
...

LDFLAGS="$SLKLDFLAGS" \

per lincare le librerie lib64

compilazione mi da seguente errore

Codice: Seleziona tutto

CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /tmp/SBo/transmission-2.82/missing aclocal-1.13 -I m4
/tmp/SBo/transmission-2.82/missing: line 81: aclocal-1.13: command not found
WARNING: 'aclocal-1.13' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
make: *** [aclocal.m4] Error 127

ho googlato un po ma senza successo
Che si fa?
grazie in anticipo

Re: transmission SBo non si compila

Inviato: mer 6 nov 2013, 22:01
da ponce
slackware-14.0/14.1 hanno automake-1.11.5, ma la versione di transmission che vuoi compilare (che non e' quella di SBo) vuole almeno la 1.13.

o lo aggiorni per conto tuo o scegli una versione di transmission piu' vecchia, tertium non datur.

Re: transmission SBo non si compila

Inviato: mer 6 nov 2013, 22:13
da varjag
si immaginavo che non posso compilare
grazie per la risposta

Re: transmission SBo non si compila

Inviato: mer 6 nov 2013, 23:30
da joe
Mi aggiungo alla discussione per una curiosità. Partiamo da un discorso molto generale:

1- per compilare il pacchetto X serve una versione di qualche tool o libreria (chiamiamolo Y) che il nostro sistema non possiede ancora, come per esempio automake-1.13.

2- per utilizzare il programma precompilato non serve il tool di cui sopra.

In pratica penso sia possibile dividere tra diciamo "dipendenze di compilazione" e "dipendenze di utilizzo" (la butto lì così... se non fosse vero correggete eh.).

Poniamo di voler compilare e pacchettizzare X, ma senza aggiornare il sistema con una versione di "Y" troppo diversa da quella che il nostro sistema comprende di default. Questo per preservare la compatibilità con per esempio slackbuilds precotti disponibili nei repositories ecc. Slackbuilds che si aspettano la versione di default di "Y" e non una più recente.

Per mia esperienza la soluzione migliore in questi casi è tenersi abbastanza aggiornati con l'ultima versione del sistema operativo. Nel caso di slackware ok la stabile. Se si vuole però stare dietro alle ultime versioni di parecchio software forse meglio la current. In questo caso vediamo che non basterebbe neanche quest'ultima.

Stiamo all'esempio di automake.
È vero o no che serve solo per compilare transmission e non per utilizzarlo, che cioè è una dipendenza di compilazione e non di utilizzo se così si può dire?

Se così fosse non si potrebbe creare un ambiente indipendente dal file system principale e far puntare lì il configure quando cerca la versione di automake?
Ad esempio:
1- installo automake-1.13 in "/opt"
2- configuro la compilazione di transmission in modo che vada ad utilizzare auotomake che sta in /opt e non quello di default che si trova in /usr o giù di lì.

Cosa ne pensate?

Re: transmission SBo non si compila

Inviato: mer 6 nov 2013, 23:51
da varjag
Purtroppo da questa discussione io posso solo imparare ..mi manca la conoscenza di linux per rispondere ..
Ma penso che automake serve solo per compilazione.

Re: transmission SBo non si compila

Inviato: gio 7 nov 2013, 10:57
da Ansa89
joe ha scritto:È vero o no che serve solo per compilare transmission e non per utilizzarlo, che cioè è una dipendenza di compilazione e non di utilizzo se così si può dire?
Sì.

joe ha scritto:Se così fosse non si potrebbe creare un ambiente indipendente dal file system principale e far puntare lì il configure quando cerca la versione di automake?
Sì.


@varjag: aggiungi il seguente codice appena prima della parte del "configure" e poi riprova a compilare (senza aggiornare automake)

Codice: Seleziona tutto

...
# -- PARTE DA AGGIUNGERE --
if [ -x autogen.sh ]; then
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh
fi

# -- PARTE CHE DOVRESTI GIÀ AVERE NELLO SLACKBUILD --
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
...

Re: transmission SBo non si compila

Inviato: gio 7 nov 2013, 15:02
da varjag
Ho cambiato il codice da te sugerito. aggiugendo anche linking a lib64

Codice: Seleziona tutto

# -- PARTE DA AGGIUNGERE --
if [ -x autogen.sh ]; then
  LDFLAGS="$SLKLDFLAGS" \
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh
fi
compilazione andata un po piu avanti e si e arrestata con il seguente errore

Codice: Seleziona tutto

/lib64/qt/mkspecs/linux-g++-64 -I. -I/usr/lib64/qt/include/QtCore -I/usr/lib64/qt/include/QtNetwork -I/usr/lib64/qt/include/Gui -I/usr/lib64/qt/include/QtDBus -I/usr/lib64/qt/include -I/include -I.. -I. -I. -o details.o details.cc
In file included from file-tree.h:30:0,
                 from details.cc:50:
torrent.h: In member function 'void Details::refresh()':
torrent.h:302:60: warning: 'tor' may be used uninitialized in this function [-Wmaybe-uninitialized]
details.cc:764:23: note: 'tor' was declared here
g++ -c -m64 -pipe -O2 -fPIC -D_REENTRANT -Wall -W -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/u/lib64/qt/mkspecs/linux-g++-64 -I. -I/usr/lib64/qt/include/QtCore -I/usr/lib64/qt/include/QtNetwork -I/usr/lib64/qt/include/Gui -I/usr/lib64/qt/include/QtDBus -I/usr/lib64/qt/include -I/include -I.. -I. -I. -o favicon.o favicon.cc
favicon.cc:17:26: fatal error: QStandardPaths: No such file or directory
compilation terminated.
make: *** [favicon.o] Error 1

Re: transmission SBo non si compila

Inviato: gio 7 nov 2013, 17:16
da Ansa89
Sì, il problema deriva dal fatto che cerca di compilare il client Qt che però ha qualche errore nei sorgenti (o comunque non compila con le Qt di default).
Commenta la parte relativa al client Qt:

Codice: Seleziona tutto

# build the Qt client (transmission-qt)
#cd $TMP/$PRGNAM-$VERSION/qt
#  qmake \
#    QMAKE_CXXFLAGS+="$SLKCFLAGS" \
#    QMAKE_CFLAGS+="$SLKCFLAGS" \
#    qtr.pro
#  sed -i -e 's% -g % %g' Makefile
#  make
#  INSTALL_ROOT=$PKG/usr make install
#cd -

Re: transmission SBo non si compila

Inviato: gio 7 nov 2013, 17:49
da varjag
Si e compilato disabilitando la compilazione con Qt
Probabilmente come dicevi te ha qualche errore nei sorgenti (o comunque non compila con le Qt di default).
Potresti spiegrami cosa dice

Codice: Seleziona tutto

# -- PARTE DA AGGIUNGERE --
if [ -x autogen.sh ]; then
  LDFLAGS="$SLKLDFLAGS" \
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh
fi

Re: transmission SBo non si compila

Inviato: gio 7 nov 2013, 18:13
da Ansa89
Semplicemente quelli di transmission hanno generato il configure usando una versione di automake troppo nuova rispetto a quella di slackware; per questo motivo, quando cerchi di configurare i sorgenti con il tuo ambiente di sviluppo, ti salta fuori il primo errore che hai postato.

La soluzione è semplice: si ricrea il configure attraverso lo script "autogen.sh" (se presente), in questo modo verrà utilizzata la versione di automake che si ha in locale.

Re: transmission SBo non si compila

Inviato: gio 7 nov 2013, 18:18
da ponce
ponce ha scritto:tertium non datur.
beh, mi devo correggere, in effetti c'era un tertium.