Guida alla compilazione di aMule AdunanzA su Raspberry PI

Ciao, assumendo trattarsi di una situazione con raspbian su raspberrypi headless, per passare dalla stabile alla beta, occorre rimuovere prima la stabile o è possibile compilare la beta che si sostituisce e sovrascrive alla stabile etc?
Si perdono i crediti e la configurazione etc?
L’opzione enable-amule-gui è necessaria per consentire il collegamento da un altro dispositivo tramite gui al demone o ha un altro significato?
L’opzione enable-amulecmd è necessaria per consentire il corretto shutdown del demone con amulecmd?
Giacchè la prima volta che ho compilato ha impiegato tre ore, e la seconda due,
quali sono le opzioni migliori per compilare il demone e gestirlo tramite gui da un altro dispositivo?
Grazie

tra una beta e l’altra, io ho sempre sovrascritto, ma credo valga anche nel passaggio dalla stabile alla beta, ovviamente se parliamo sempre di amule adunanza e non amule vanilla

se nn cancelli la directory .aMuleAdunanzA, no

esattamente l’opposto, informa il compilatore di compilarti la GUI che userai per comandare il demone, ma non è questo il nostro caso visto che useremo un PC e non il raspberry stesso per comandare il demone, quindi va messo -disable-amule-gui

non lo sò, non ho mai usato amulecmd, io per comandare il demone uso uno script (devo sempre fare una guida)

piu di due ore per compilare sono molte, io ho leggermente overcloccato il rasp e impiego poco piu di un’ora. Le opzioni per un uso come da te richiesto sono quelle nel primo post, che ti ripeto:

./configure --enable-optimize –disable-debug –enable-amule-daemon –disable-geoip –disable-amulecmd –disable-webserver –disable-amule-gui –disable-upnp –disable-monolithic –disable-ed2k

comunque se vuoi puoi scaricare il solo amuled già compilato da me lo trovi qua:
https://drive.google.com/open?id=0B3WsG6CF7-wCZXdjVGVnS2ZzaTg&authuser=0

spostalo in /usr/local/bin/ rinominalo in amuled e poi dagli i giusti permessi (755)

1 Like

Ciao a tutti!
Grazie @CoGe per la guida, stavo impazzendo nella ricerca dei pacchetti necessari alla compilazione.

Però ho un problema con la mia configurazione:
./configure --enable-optimize --disable-monolithic --disable-ed2k --disable-debug --disable-upnp --enable-amulecmd --enable-webserver --disable-amule-gui --enable-amule-daemon --disable-geoip

e sinceramente non so se sia dovuto ad un bug oppure ad una mia carenza.
La stable 2012.1 compila correttamente, mentre la MoonRiver restituisce questo errore al make:

ExternalConnector.cpp: In constructor ‘CaMuleExternalConnector::CaMuleExternalConnector()’:

ExternalConnector.cpp:210:4: error: class ‘CaMuleExternalConnector’ does not have any field named ‘m_InputLine’

Makefile:3337: set di istruzioni per l'obiettivo "amulecmd-ExternalConnector.o" non riuscito

Il comando su cui si ingalia è questo:
g++ -DHAVE_CONFIG_H -I. -I.. -DUSE_WX_EXTENSIONS -I/usr/lib/arm-linux-gnueabihf/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -DwxUSE_GUI=0 -I./libs -Ilibs -I./include -I/usr/include -D__WEAK_CRYPTO__ -W -Wall -Wshadow -Wundef -O2 -pthread -MT amulecmd-ExternalConnector.o -MD -MP -MF .deps/amulecmd-ExternalConnector.Tpo -c -o amulecmd-ExternalConnector.otest -f ‘ExternalConnector.cpp’ || echo ‘./’ExternalConnector.cpp

Per il momento mi accontento della stable ma è sempre una segnalazione. :smiley:

Io non compilo amulecmd e il webserver, e uso anche le librerie boost
quindi nn sono nella tua stessa situazione (hai raspbian giusto?)

prova a disabilitarli nel tuo configure e riprova,
quando poi passa di qua @mr_hyde potrebbe darci qualche info in più sull’errore

anche se credo che l’errore sia proprio su amulecmd, domani se ho tempo faccio qualche prova di compilazione

confermo l’errore (uguale al tuo) in fase di compilazione del solo amulecmd

ho provato ad compilare sia con che senza le librerie boost (1.57.0) l’errore non cambia:

g++ -DHAVE_CONFIG_H -I. -I… -DUSE_WX_EXTENSIONS -I/usr/lib/arm-linux-gnueabihf/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -DwxUSE_GUI=0 -I./libs -Ilibs -I./include -W -Wall -Wshadow -Wundef -O2 -pthread -MT amulecmd-ExternalConnector.o -MD -MP -MF .deps/amulecmd-ExternalConnector.Tpo -c -o amulecmd-ExternalConnector.o test -f 'ExternalConnector.cpp' || echo './'ExternalConnector.cpp
ExternalConnector.cpp: In constructor ‘CaMuleExternalConnector::CaMuleExternalConnector()’:
ExternalConnector.cpp:210:4: error: class ‘CaMuleExternalConnector’ does not have any field named 'm_InputLine’
Makefile:3427: recipe for target ‘amulecmd-ExternalConnector.o’ failed

occorre il nostro dev di fiducia :slight_smile:
toc toc @mr_hyde

No, serve solo a dire alla procedura di build (invocata con “make”) che occorre anche compilare per produrre l’eseguibile “amulecmd” che è quello che ti serve per “pilotare” il demone da linea di comando (insomma: un analogo di “–enable-amule-gui” ma per l’interfaccia testuale invece che grafica).

Per la MoonRiver: io la sto compilando praticamente su tutto (per ora non mi sono ancora cimentato con Windows) con amulecmd abilitato e non ho avuto problemi.

Appena ho due minuti di tempo da dedicare ad aMule guardo che cosa ha di speciale m_InputLine e poi vi faccio sapere.

Probabilmente non ha alcuna rilevanza ma rinfrescatemi comunque la memoria (me lo avrete già scritto un miliardo di volte all’incirca): mi scrivete la versione di compilatore gcc/g++ usata dai vostri Raspberry?

Ciao,
Mr Hyde (che sta combattendo con il cugino per Windows… inizio proprio ad odiarlo…)

1 Like

pi@raspberrypi ~ $ gcc --version
gcc (Debian 4.6.3-14+rpi1) 4.6.3
Copyright © 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

#ifdef HAVE_LIBREADLINE
// ADUNANZA END
	char *		m_InputLine;
// ADUNANZA BEGIN
// Allineamento aMule SVN 2.4.0 rev 10854
#endif

Problema di dipendenze: immagino vi manchi una libreria per la “readline” o che lo script di configure non riesca a capire che la avete.

Nell’output di configure controllate scritte del tipo

checking for a readline compatible library... -lreadline
checking readline.h usability... no
checking readline.h presence... no
checking for readline.h... no
checking readline/readline.h usability... yes
checking readline/readline.h presence... yes
checking for readline/readline.h... yes
checking whether readline supports history... yes
checking history.h usability... no
checking history.h presence... no
checking for history.h... no
checking readline/history.h usability... yes
checking readline/history.h presence... yes
checking for readline/history.h... yes

Ad ogni modo vedo di mettere sotto la stessa “#ifdef HAVE_LIBREADLINE” anche l’utlizzo di quella variabile in modo da rendere possibile la compilazione anche quando non avete quella libreria.

EDIT: appena fatta la commit, provate

c’è qualcosa che nn và

il configure mi da errore se uso le librerie boost (nn si possono usare in test)
e il make nn inizia nemmeno a compilare, esce praticamente subito e senza errore come se nn avessi messo nessun enable

@CoGe

Mumble mumble… In teoria io ho modificato solo un file .cpp, quindi il configure non dovrebbe risentirne…

EDIT: per scrupolo ho provato a ri-compilare con il Mac e a me funziona… Non che la cosa abbia molto significato visto che a me funzionava anche prima…

Hai provato a ri-fare tutta la trafila con

make distclean
svn update
bash autogen.sh
configure …
make ?

Ciao,
Mr Hyde

P.S.: la mia lotta con il “cugino per Windows” prosegue… Non funzionerà niente, ma almeno adesso non mi funzionerà niente a 64 bit! E pure in debug, tie’ :wink:

P.P.S.: lo so che sembro fuori di testa ma… E’ che lo sono proprio dopo N giorni trascorsi a combattere con il mulo Windows…

ricompilo con calma e poi riscrivo

 ./configure --enable-optimize --disable-debug --enable-amule-daemon --disable-alc --disable-alcc --disable-geoip --enable-amulecmd --disable-webserver --disable-amule-gui --disable-cas --disable-wxcas --disable-xas --disable-upnp --disable-monolithic --disable-ed2k --with-boost=/media/MediaForLinux/boost_1_57_0/

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... armv6l-unknown-linux-gnueabihf
checking host system type... armv6l-unknown-linux-gnueabihf
checking if this is a FreeBSD 4 or earlier system... no
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for gawk... (cached) mawk
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking whether make sets $(MAKE)... (cached) yes
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking for ranlib... ranlib
checking for a sed that does not truncate output... /bin/sed
checking for bison... bison -y
checking for ranlib... (cached) ranlib
checking for strip... strip
checking for ar... ar
checking for ld... ld
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for working volatile... yes
checking for zlib >= 1.1.4... yes (version 1.2.7)
checking for File::Copy... ok
checking for the --with-toolkit option... will be automatically detected
checking for the --with-wxshared option... will be automatically detected
checking for the --with-wxdebug option... will be automatically detected
checking for the --with-wxversion option... will be automatically detected
checking for wx-config... /usr/bin/wx-config
checking for wxWidgets version >= 2.8.12 (--unicode=yes)... yes (version 2.8.12)
checking if wxWidgets was built in DEBUG mode... no
checking if wxWidgets was built in STATIC mode... no
checking which wxWidgets toolkit was selected... gtk2
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for crypto++ version >= 5.1... yes (version 5.6.1, installed)
checking whether the C++ compiler (g++) uses strict aliasing... no
checking that wxWidgets has support for large files... yes
checking for exception-handling... yes
checking typeinfo usability... yes
checking typeinfo presence... yes
checking for typeinfo... yes
checking for <cxxabi.h> and __cxa_demangle()... yes
checking for Boost headers version >= 1.47.0... /media/MediaForLinux/boost_1_57_0/
checking for Boost's header version... 1_57
checking for the toolset name used by Boost for g++... gcc46 -gcc
checking for Boost sources... no
checking boost/system/error_code.hpp usability... no
checking boost/system/error_code.hpp presence... no
checking for boost/system/error_code.hpp... no
checking for the Boost system library... configure: error: cannot compile a test that uses Boost system

Continua la discussione da Guida alla compilazione di aMule AdunanzA su Raspberry PI:

Confermo passaggio dalla stabile alla beta e crediti e configurazione mantenuti.

Ho visto lo script tuttavia mi è capitato che il demone partisse prima dell’hd sul dock saturando la sd, per cui, al momento, lancio il demone a manina e ogni tanto lo chiudo con shutdown (amulecmd) per manutenzione, dato che nella gui non vedo la possibilità di terminarlo.

[quote]
piu di due ore per compilare sono molte, io ho leggermente overcloccato il rasp e impiego poco piu di un’ora. Le opzioni per un uso come da te richiesto sono quelle nel primo post, che ti ripeto[/quote]
Hai ragione: compilava troppo.
Con le opzioni da te indicate (e amulecmd), impiega poco più di un’oretta senza overclock.

Quindi, ricapitolando:
Initialising aMuleDAdunanzA MOD based on aMule SVN compiled with wxGTK2 v2.8.12 (Snapshot: rev. 532) AdunanzA 2014.1b1
su
Linux version 3.12.32+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #721 PREEMPT Fri Nov 7 16:50:31 GMT 2014
senza inghippo.

Ti ringrazio per il supporto tecnico e ringrazio gli sviluppatori per l’applicazione, e ovviamente, tutti quelli che danno il proprio contributo (e hanno contribuito) a questa comunità, sui forum, in chat, chi manda avanti la baracca etc

Ehm, ho sbagliato: anzichè rispondere citando, ho risposto come argomento collegato, è possibile rimediare?

Fatto -.-’’’’

1 Like

Continua la discussione da Guida alla compilazione di aMule AdunanzA su Raspberry PI:

Confermo: compilata senza problemi con enable amulecmd
Initialising aMuleDAdunanzA MOD based on aMule SVN compiled with wxGTK2 v2.8.12 (Snapshot: rev. 532) AdunanzA 2014.1b1
Linux version 3.12.32+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #721 PREEMPT Fri Nov 7 16:50:31 GMT 2014

Ti ringrazio per la 532 dell’ultima ora presa al volo ieri.

E’ un vizio? LOL

1 Like

LOL
Grazie Dax, ho poca dimestichezza con questo tipo di piattaforma. Ora ci sono.

Ciao non mi funzionano i link della guida per trovare i sorgenti da compilare. Avete qualche altro percorso su cui reindirizzarmi?

@CoGe in questi giorni non c’è. Appena torna ricontrollerà i link della guida e li sistemerà. Non è solo quello dei sorgenti che non funziona infatti.

Pazienta qualche giorno.

1 Like

@Dax c’è un problema con i repository, ma solo @mr_hyde può risolvere