Difference between revisions of "Build the Viewer on Linux/it"

From Second Life Wiki
Jump to navigation Jump to search
m
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{multi-lang|1=Compiling the viewer (Linux)|2=/it}}
{{multi-lang|1=Compiling the viewer (Linux)|2=/it}}


== Nota ==  
== Compilare il viewer dai sorgenti ==


La pagina e' incompleta.
''NOTA: Questa guida contiene solo una parte delle informazioni presenti nella [[Compiling_the_viewer_(Linux)|pagina in inglese]]. Fate riferimento ad essa per maggiori dettagli.''
* [http://translate.google.com/translate?hl=it&sl=en&tl=it&u=http://wiki.secondlife.com/wiki/Compiling_the_viewer_(Linux) Traduzione automatizzata dell'intera pagina originale]


Compilare i sorgenti del viewer di Second Life può essere necessario per applicare patch sperimentali, per eseguire personalizzazioni al programma o per contribuire al [[Open_Source_Portal/it|progetto Open Source]].


== Preparativi ==
Il procedimento prevede l'uso di Mercurial per scaricare i sorgenti e creare la repository locale. Per la compilazione vengono usati cmake, make e uno strumento chiamato [[Autobuild]] creato da Linden Lab per compilare le librerie.


Si assume che
== Dipendenze ==
* l'ambiente di sviluppo sia pronto
* i sorgenti e FMOD siano gia' stati scaricati e scompattati
* la directory di FMOD sia posta nella stessa directory che contiene linden/indra/
* la directory di riferimento e' linden/indra/


I nomi dei pacchetti che seguono sono riferiti a Ubuntu.
sudo apt-get install cmake flex bison build-essential python libx11-dev zlib1g-dev libssl-dev mesa-common-dev libglu1-mesa-dev libc6-dev libstdc++6 libxrender-dev
sudo apt-get install libogg-dev libpng12-dev libdbus-glib-1-dev libgtk2.0-dev
sudo apt-get install mercurial python-pip
sudo pip install autobuild


== Preparazione dei Build Scripts ==
'''TODO:''' erano/sono necessari forse anche:
* g++ g++-4.3
* libgl1-mesa-dev libpthread-stubs0 libpthread-stubs0-dev libstdc++6-4.3-dev libxau-dev libxcb1-dev libxdmcp-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev xtrans-dev


  ./develop.py configure
'''TODO:''' rispetto a un'installazione standard di Ubuntu dovrebbe essere sufficiente dare:
  sudo apt-get install mesa-common-dev libglu1-mesa-dev libc6-dev libstdc++6 libx11-dev zlib1g-dev libssl-dev g++ cmake bison flex
* forse anche apt-get install build-essential


'''TODO:''' ccache o no?


== FMOD ==
== Compilare i sorgenti ==


* necessario a meno di disabilitarlo esplicitamente
Si assume che l'ambiente di sviluppo sia pronto (v. punto precedente).
* da eseguire dopo il primo ''./develop.py configure''


'''''da verificare'''''
Scegliete un ramo di sviluppo da cui scaricare i sorgenti per poi compilarli. Generalmente si usa ''viewer-development'', che è il principale ramo di sviluppo:
'''hg clone''' ''http://bitbucket.org/lindenlab/viewer-development''
In casi diversi potreste voler usare i sorgenti di un sottoprogetto specifico, come in questo esempio:
'''hg clone''' ''https://bitbucket.org/merov_linden/viewer-autobuild2010''
Il comando '''hg clone''' scaricherà i sorgenti in una sottocartella che porta il nome del progetto specificato. La procedura può richiedere alcune decine di secondi.


  cd ../../fmodapi375linux/ \
Entrate nella nuova sottocartella:
cp api/inc/* ../linden/libraries/i686-linux/include/ \
  cd ''viewer-development''
cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/ \
cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release/ \
cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_debug/ \
cd ../linden/indra/
 
 
== Compilazione ==
 
./develop.py build


Scegliete il tipo di build che volete compilare, ad esempio ''RelWithDebInfo'', e lanciate Autobuild impostando di conseguenza il parametro -c. Si veda [[Build_Viewer_With_Autobuild#Build_a_desired_configuration]] per le alternative disponibili.
'''autobuild build -c ''RelWithDebInfo'''''


== Risultato ==
== Risultato ==


Al termine di una compilazione senza errori viene creato un archivio .tar.bz2 che andra' usato come quello che si scarica da secondlife.com. Di default. l'archivio si trovera' in linden/indra/viewer-linux-i686-relwithdebinfo/newview/ e cambiera' di conseguenza se si e' scelto un build type particolare.
'''TODO: - FALSO, CORREGGERE''' - al termine di una compilazione senza errori viene creato un archivio .tar.bz2 che andra' usato come quello che si scarica da secondlife.com. Di default. l'archivio si trovera' in linden/indra/viewer-linux-i686-relwithdebinfo/newview/ e cambiera' di conseguenza se si e' scelto un build type particolare.
 
 
== Build Types ==
 
E' possibile creare versioni diverse del client.
* Usare directory separate per build types diversi
* RelWithDebInfo e' il default
* Sembra che [https://lists.secondlife.com/pipermail/sldev/2009-March/013151.html non valga la pena] di compilare versioni Debug
Debug:
./develop.py -t Debug configure
./develop.py -t Debug build
Release:
./develop.py -t Release configure
./develop.py -t Release build
 
 
== Personalizzazione interfaccia, menu etc. ==
 
=== Cambio di Shortcut per poter nascondere la GUI ===
 
Modificare indra/newview/llviewermenu.cpp
 
 
== Errori ==
 
=== llcubemap / typedef struct Vertex ===
 
=== format not a string literal and no format arguments ===
 
Se si ottiene questo errore, fare una delle due:
 
* sostituire in indra/linux_crash_logger/llcrashloggerlinux.cpp :
dialog_text);
con
"%s", dialog_text);
 
* In indra/cmake/00-Common.cmake > Line 183, commentare cosi' ([https://lists.secondlife.com/pipermail/sldev/2009-March/013048.html vedi qui] - [https://lists.secondlife.com/pipermail/sldev/2009-March/013049.html spiegazione]):
set(GCC_WARNINGS "${GCC_WARNINGS} -Werror")
 
[ 31%] Building CXX object llrender/CMakeFiles/llrender.dir/llcubemap.o
cc1plus: warnings being treated as errors
In file included from ;)/sources/1-21-r99587/linden/indra/llrender/llcubemap.cpp:44:
;)/sources/1-21-r99587/linden/indra/llrender/llrender.h:222: error: ‘typedef’ was ignored in this declaration
make[2]: *** [llrender/CMakeFiles/llrender.dir/llcubemap.o] Error 1
make[1]: *** [llrender/CMakeFiles/llrender.dir/all] Error 2
make: *** [all] Error 2
[https://lists.secondlife.com/pipermail/sldev/2008-August/011428.html Solution by Robin Cornelius]
 
 
== Pacchetti richiesti ==


=== Ubuntu 9.04 ===
== Applicare una patch ==


necessari:
Esempio:
* cmake g++ g++-4.3 libgl1-mesa-dev libglu1-mesa-dev libpthread-stubs0 libpthread-stubs0-dev libssl-dev libstdc++6-4.3-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev mesa-common-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev xtrans-dev zlib1g-dev
user@box:~/prova/viewer-development$ '''patch -p0 <''' ''SNOW-247_translation_breaks_chat_bubbles.diff''


ovvero basta dare:
[[Category:Pagine italiane da wikificare]]
* sudo apt-get install mesa-common-dev libglu1-mesa-dev libc6-dev libstdc++6 libx11-dev zlib1g-dev libssl-dev g++ cmake bison flex
[[Category:Compiling_viewer]]

Latest revision as of 15:03, 27 January 2021

Compilare il viewer dai sorgenti

NOTA: Questa guida contiene solo una parte delle informazioni presenti nella pagina in inglese. Fate riferimento ad essa per maggiori dettagli.

Compilare i sorgenti del viewer di Second Life può essere necessario per applicare patch sperimentali, per eseguire personalizzazioni al programma o per contribuire al progetto Open Source.

Il procedimento prevede l'uso di Mercurial per scaricare i sorgenti e creare la repository locale. Per la compilazione vengono usati cmake, make e uno strumento chiamato Autobuild creato da Linden Lab per compilare le librerie.

Dipendenze

I nomi dei pacchetti che seguono sono riferiti a Ubuntu.

sudo apt-get install cmake flex bison build-essential python libx11-dev zlib1g-dev libssl-dev mesa-common-dev libglu1-mesa-dev libc6-dev libstdc++6 libxrender-dev
sudo apt-get install libogg-dev libpng12-dev libdbus-glib-1-dev libgtk2.0-dev
sudo apt-get install mercurial python-pip
sudo pip install autobuild

TODO: erano/sono necessari forse anche:

  • g++ g++-4.3
  • libgl1-mesa-dev libpthread-stubs0 libpthread-stubs0-dev libstdc++6-4.3-dev libxau-dev libxcb1-dev libxdmcp-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev xtrans-dev

TODO: rispetto a un'installazione standard di Ubuntu dovrebbe essere sufficiente dare:

sudo apt-get install mesa-common-dev libglu1-mesa-dev libc6-dev libstdc++6 libx11-dev zlib1g-dev libssl-dev g++ cmake bison flex
  • forse anche apt-get install build-essential

TODO: ccache o no?

Compilare i sorgenti

Si assume che l'ambiente di sviluppo sia pronto (v. punto precedente).

Scegliete un ramo di sviluppo da cui scaricare i sorgenti per poi compilarli. Generalmente si usa viewer-development, che è il principale ramo di sviluppo:

hg clone http://bitbucket.org/lindenlab/viewer-development

In casi diversi potreste voler usare i sorgenti di un sottoprogetto specifico, come in questo esempio:

hg clone https://bitbucket.org/merov_linden/viewer-autobuild2010

Il comando hg clone scaricherà i sorgenti in una sottocartella che porta il nome del progetto specificato. La procedura può richiedere alcune decine di secondi.

Entrate nella nuova sottocartella:

cd viewer-development

Scegliete il tipo di build che volete compilare, ad esempio RelWithDebInfo, e lanciate Autobuild impostando di conseguenza il parametro -c. Si veda Build_Viewer_With_Autobuild#Build_a_desired_configuration per le alternative disponibili.

autobuild build -c RelWithDebInfo

Risultato

TODO: - FALSO, CORREGGERE - al termine di una compilazione senza errori viene creato un archivio .tar.bz2 che andra' usato come quello che si scarica da secondlife.com. Di default. l'archivio si trovera' in linden/indra/viewer-linux-i686-relwithdebinfo/newview/ e cambiera' di conseguenza se si e' scelto un build type particolare.

Applicare una patch

Esempio:

user@box:~/prova/viewer-development$ patch -p0 < SNOW-247_translation_breaks_chat_bubbles.diff