Fedora Online Forum

Il forum della comunità italiana di Fedora

#1 05-07-2012 19:42:20

Caterpillar
Fedora nel sangue
Registrato: 23-02-2009
Messaggi: 1'839

boinc

Iniziamo una discussione su come portare BOINC 7.x su Fedora :-)


Fedora ha bisogno di nuovi traduttori da lingua inglese a lingua italiana. Se vuoi partecipare visita il sito http://fedoraproject.org/wiki/L10N_Italian_Team

Non in linea

#2 05-07-2012 21:28:57

bebo_sudo
Collaboratore
Da Trento+Trieste
Registrato: 28-02-2011
Messaggi: 1'883
Sito web

Re: boinc

Sei riuscito a contattare il pacchettizzatore precedente?


devzero.tk - github.com/bebosudo
Quando posti del codice, mettilo nel tag code! (senza spazi)            [ code]così[/ code]

Non in linea

#3 05-07-2012 21:34:10

Caterpillar
Fedora nel sangue
Registrato: 23-02-2009
Messaggi: 1'839

Re: boinc

Sono in contatto con lui da settimane. Dopo gli scrivo dicendo che c'è un gruppo di persone che gli vuole dare una mano. Però non aspettiamo che mi risponda perché potrebbero passare giorni


Fedora ha bisogno di nuovi traduttori da lingua inglese a lingua italiana. Se vuoi partecipare visita il sito http://fedoraproject.org/wiki/L10N_Italian_Team

Non in linea

#4 06-07-2012 12:02:22

bebo_sudo
Collaboratore
Da Trento+Trieste
Registrato: 28-02-2011
Messaggi: 1'883
Sito web

Re: boinc

Ok


devzero.tk - github.com/bebosudo
Quando posti del codice, mettilo nel tag code! (senza spazi)            [ code]così[/ code]

Non in linea

#5 06-07-2012 15:16:03

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'799
Sito web

Re: boinc

Allora, io ho provato a creare l'rpm.

mkdir -p ~/rpm-boinc-client
rm -rf ~/rpm-boinc-client/*
mkdir ~/rpm-boinc-client/6
mkdir ~/rpm-boinc-client/7
#abbiamo creato una cartella di lavoro che contiene a sua volta due cartelle dove inserire i sorgenti delle versioni 6 e 7

cd ~/rpm-boinc-client/6
yumdownloader --source boinc-client
rpm2cpio boinc-client*.rpm | cpio -ivd
rm -f ~/rpm-boinc-client/6/boinc-client*.rpm
sed -i 's/%{_unitdir}\/%{name}/%{_unitdir}\/%{name}.service/g' boinc-client.spec
sed -i 's/After=network.target graphical.target/After=network.target/g' boinc-client-systemd
#abbiamo inserito nella prima cartella i sorgenti della versione 6, patchati per correggere l'errore

cd ~/rpm-boinc-client/7
svn export http://boinc.berkeley.edu/svn/branches/boinc_core_release_7_0
#Esportata revisione 25826
pushd boinc_core_release_7_0
cp ../../6/trim .
./_autosetup
popd
tar -cJvf boinc-7.0.7.tar.xz boinc_core_release_7_0
rm -rf ~/rpm-boinc-client/7/boinc_core_release_7_0
#abbiamo creato il file boinc-7.0.7.tar.xz, come da istruzioni nel file spec della versione 6

A questo punto ho modificato il file boinc-client.spec in modo che le modifiche risultano le seguenti:

[[email protected] ~]$ diff /home/marco/rpm-boinc-client/{6,7}/boinc-client.spec
1,2c1,2
< %global revision 25218
< %global version_ 6_12
---
> %global revision 25826
> %global version_ 7_0
6c6
< Version:	6.12.43
---
> Version:	7.0.7
15d14
< # patch < boinc-manager-Makefile.patch
26,28d24
< #Wrong indentation in Makefile.am breaks the build
< #Filed upstream: http://boinc.berkeley.edu/trac/ticket/1132
< Source9:	boinc-manager-Makefile.patch
[[email protected] ~]$ 

Come potete vedere, oltre al cambio di versione ho solo rimosso i riferimenti alla patch boinc-manager-Makefile.patch, visto che le righe relative appaioni commentate (e quindi rimosse) nella versione 7.

Infine ho provato a creare l'rpm con

cd ~/rpmbuild/SOURCES
rpmbuild -v -bb boinc-client.spec

Solo che ottengo il seguente errore (riporto le ultime righe dell'output):

libtool: link: g++ -Wall -Wextra -Wshadow -Wredundant-decls -Wdisabled-optimization -Wpointer-arith -Wstrict-aliasing -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15 -Wall -Wl,-z -Wl,relro -o boinc_client boinc_client-acct_mgr.o boinc_client-acct_setup.o boinc_client-app.o boinc_client-app_control.o boinc_client-app_start.o boinc_client-check_state.o boinc_client-client_msgs.o boinc_client-client_state.o boinc_client-client_types.o boinc_client-coproc_detect.o boinc_client-cpu_sched.o boinc_client-cs_account.o boinc_client-cs_apps.o boinc_client-cs_benchmark.o boinc_client-cs_cmdline.o boinc_client-cs_files.o boinc_client-cs_notice.o boinc_client-cs_platforms.o boinc_client-cs_prefs.o boinc_client-cs_proxy.o boinc_client-cs_scheduler.o boinc_client-cs_statefile.o boinc_client-cs_trickle.o boinc_client-current_version.o boinc_client-dhrystone.o boinc_client-dhrystone2.o boinc_client-file_names.o boinc_client-file_xfer.o boinc_client-gui_http.o boinc_client-gui_rpc_server.o boinc_client-gui_rpc_server_ops.o boinc_client-hostinfo_network.o boinc_client-hostinfo_unix.o boinc_client-http_curl.o boinc_client-log_flags.o boinc_client-main.o boinc_client-net_stats.o boinc_client-pers_file_xfer.o boinc_client-rr_sim.o boinc_client-sandbox.o boinc_client-scheduler_op.o boinc_client-time_stats.o boinc_client-whetstone.o boinc_client-work_fetch.o  -L../lib ../lib/.libs/libboinc.a -L/usr/lib64 ../lib/.libs/libboinc_crypt.a -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 -lcurl -L/usr -lssl -lcrypto -ldl -lnsl -lz -lXss -lpthread -lm -pthread
/usr/bin/ld: boinc_client-hostinfo_unix.o: undefined reference to symbol 'XOpenDisplay'
/usr/bin/ld: note: 'XOpenDisplay' is defined in DSO /lib64/libX11.so.6 so try adding it to the linker command line
/lib64/libX11.so.6: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [boinc_client] Error 1
make[2]: Leaving directory `/home/marco/rpmbuild/BUILD/boinc_core_release_7_0/client'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/marco/rpmbuild/BUILD/boinc_core_release_7_0'
make: *** [all] Error 2
errore: Stato d'uscita errato da /var/tmp/rpm-tmp.O8MnRt (%build)


Errori di compilazione RPM:
    Stato d'uscita errato da /var/tmp/rpm-tmp.O8MnRt (%build)

E qui mi sono fermato. Ho notato che il file spec fa riferimento ad altre patch (boinc-guirpcauth.patch, boinc-glib-compat.patch e boinc-xcb-compat.patch) che non so se servano ancora nella nuova versione; in ogni caso io le ho lasciate così come erano.

Se qualcuno sa dare qualche consiglio...

Ultima modifica di marcomotta (06-07-2012 15:19:50)


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#6 06-07-2012 15:18:56

MarioS
Master of the unknown Universe
Da Trieste
Registrato: 31-12-2005
Messaggi: 10'935
Sito web

Re: boinc

Secondo me vi conviene creare solo il file rpm sorgente e poi utilizzare mock per la compilazione. Così avrete modo di controllare eventuali pacchetti richiesti per la compilazione mancanti.

Mi pare però hai sfruttato un processo un po' macchinoso per creare l'albero di directory per la creazione dell'rpm...


Ciao da me che sono io!!!!!
E...Partecipa al Fedora Project

Non in linea

#7 06-07-2012 15:35:59

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'799
Sito web

Re: boinc

MarioS ha scritto:

Mi pare però hai sfruttato un processo un po' macchinoso per creare l'albero di directory per la creazione dell'rpm...

Non direi. Ho solo creato due cartelle, una con i files per la versione 6 (quella attualmente scaricabile con yum) e una per la 7.
E poi, se dobbiamo discuterne qui, mi sembra il caso di automatizzare il più possibile il tutto per renderlo chiaro per tutti quelli che volessero provare a dare una mano.


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#8 06-07-2012 15:52:51

MarioS
Master of the unknown Universe
Da Trieste
Registrato: 31-12-2005
Messaggi: 10'935
Sito web

Re: boinc

Ma non hai seguito una "operazione standard" per creare un albero di directory standard per un rpm...Meglio così secondo me:

$ rpmdev-setuptree
$ yumdownloader --source boinc-client
$ rpm -ivh boinc-client*.src.rpm

I pacchetti sorgente e le patch vanno in rpmbuild/SOURCES.
Lo spec sta in rpmbuild/SPECS.

Mi pare generi meno confusione del tuo suggerimento...

Poi crei il tuo sorgente come hai indicato o come è indicato nel file spec:

$ cd rpmbuild/SOURCES
$ svn export http://boinc.berkeley.edu/svn/branches/boinc_core_release_7_0
$ pushd boinc_core_release_7_0
$ patch < boinc-manager-Makefile.patch #--- Da portare attenzione che sia corretta la patch rispetto alla versione scaricata da vcs
$ ./_autosetup
$ ./trim #--- Dovrebbe essere presente in SOURCES, contiene lo script necessario per eliminare i binari scaricati da vcs
$ popd
$ tar -cJvf boinc-7.0.7.tar.xz boinc_core_release_7_0

Poi modifichi il file spec come da te fatto.

Infine crei il pacchetto sorgente:

$ rpmbuild -bs rpmbuild/SPECS/boinc-client.spec

E lo si compila con mock:

$ mock rpmbuild/SRPMS/boinc-client-{versione}.src.rpm

Fine.


Ciao da me che sono io!!!!!
E...Partecipa al Fedora Project

Non in linea

#9 06-07-2012 15:53:19

Caterpillar
Fedora nel sangue
Registrato: 23-02-2009
Messaggi: 1'839

Re: boinc

mi stavo chiedendo se non fosse auspicabile continuare la discussione in inglese così da rendere più agevole la partecipazione del package mantainer e di altri utenti


Fedora ha bisogno di nuovi traduttori da lingua inglese a lingua italiana. Se vuoi partecipare visita il sito http://fedoraproject.org/wiki/L10N_Italian_Team

Non in linea

#10 06-07-2012 16:05:17

MarioS
Master of the unknown Universe
Da Trieste
Registrato: 31-12-2005
Messaggi: 10'935
Sito web

Re: boinc

A parer mio allora bisogna spostarsi sul forum internazionale e non qui se si vuole discutere in inglese.


Ciao da me che sono io!!!!!
E...Partecipa al Fedora Project

Non in linea

#11 06-07-2012 16:12:35

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'799
Sito web

Re: boinc

MarioS ha scritto:

Ma non hai seguito una "operazione standard" per creare un albero di directory standard per un rpm...Meglio così secondo me:

$ rpmdev-setuptree
$ yumdownloader --source boinc-client
$ rpm -ivh boinc-client*.src.rpm

I pacchetti sorgente e le patch vanno in rpmbuild/SOURCES.
Lo spec sta in rpmbuild/SPECS.

Mi pare generi meno confusione del tuo suggerimento...

Beh, io semplicemente ho creato una cartella di lavoro, in modo che le modifiche le faccio sulla copia in rpmbuild/SOURCES (altrimenti se faccio pasticci devo riscaricare l'rpm ogni volta). Probabilmente ho dimenticato di dire che i files necessari li ho copiati (a mano) in rpmbuild/SOURCES. Inoltre, personalmente, preferisco tenere due cartelle separate per i files necessari per le versioni 6 e 7, anche se poi quello che serve va sicuramente copiato in rpmbuild/SOURCES e affini.

In ogni caso bisogna anche dare

#cd ~/rpmbuild/SOURCES
sed -i 's/%{_unitdir}\/%{name}/%{_unitdir}\/%{name}.service/g' boinc-client.spec
sed -i 's/After=network.target graphical.target/After=network.target/g' boinc-client-systemd

Per correggere il bug ancora non risolto nei repository ufficiali, altrimenti non funziona.

Infine:

mock rpmbuild/SRPMS/boinc-client-7.0.7-1.r25826svn.fc17.src.rpm
ERROR: Must be member of 'mock' group to run mock! (marco)

Ma tra gli utenti del gruppo mock mi risulta anche marco.

Ultima modifica di marcomotta (06-07-2012 16:16:29)


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#12 06-07-2012 16:17:56

MarioS
Master of the unknown Universe
Da Trieste
Registrato: 31-12-2005
Messaggi: 10'935
Sito web

Re: boinc

Forse con un vcs locale (git?) puoi tenere traccia delle varie modifiche che fai, anche di eventuali pasticci e tornare indietro.

Prova a sloggarti dal tuo utente e a rieffettuare il login se sei sicuro di averlo configurato correttamente per usare mock:

# usermod -a -G mock marco 

Ciao da me che sono io!!!!!
E...Partecipa al Fedora Project

Non in linea

#13 06-07-2012 16:32:24

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'799
Sito web

Re: boinc

MarioS ha scritto:

Forse con un vcs locale (git?) puoi tenere traccia delle varie modifiche che fai, anche di eventuali pasticci e tornare indietro.

È che io sono sempre stato un lupo solitario, non conosco (e non so usare) strumenti come git.

Prova a sloggarti dal tuo utente e a rieffettuare il login se sei sicuro di averlo configurato correttamente per usare mock:

# usermod -a -G mock marco 

No, avevo toppato in pieno, ORA marco fa parte del gruppo mock, prima avevo frainteso la lista di tutti gli utenti con quella degli utenti del gruppo mock.
Mock è un po' lento, quando (se?) finisce vi faccio sapere. Per ora è bloccato su:

[[email protected] ~]$ mock rpmbuild/SRPMS/boinc-client-7.0.7-1.r25826svn.fc17.src.rpm
INFO: mock.py version 1.1.22 starting...
State Changed: init plugins
INFO: selinux enabled
State Changed: start
INFO: Start(rpmbuild/SRPMS/boinc-client-7.0.7-1.r25826svn.fc17.src.rpm)  Config(fedora-17-x86_64)
State Changed: lock buildroot
State Changed: clean
INFO: chroot (/var/lib/mock/fedora-17-x86_64) unlocked and deleted
State Changed: unlock buildroot
State Changed: init
State Changed: lock buildroot
Mock Version: 1.1.22
INFO: Mock Version: 1.1.22
INFO: calling preinit hooks
INFO: enabled root cache
State Changed: unpacking root cache
INFO: enabled yum cache
State Changed: cleaning yum metadata
INFO: enabled ccache
State Changed: running yum
State Changed: unlock buildroot
INFO: Installed packages:
State Changed: setup

La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#14 06-07-2012 16:53:44

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'799
Sito web

Re: boinc

marcomotta ha scritto:

Mock è un po' lento, quando (se?) finisce vi faccio sapere.

Niente. Strano errore:

File non trovato: /builddir/build/BUILDROOT/boinc-client-7.0.7-1.r25826svn.fc17.x86_64/usr/bin/boincscr

(da build.log)
:gratt: :gratt: :gratt:

Ultima modifica di marcomotta (06-07-2012 17:24:48)


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#15 06-07-2012 17:54:26

MarioS
Master of the unknown Universe
Da Trieste
Registrato: 31-12-2005
Messaggi: 10'935
Sito web

Re: boinc

Quando lo da quell'errore?


Ciao da me che sono io!!!!!
E...Partecipa al Fedora Project

Non in linea

Piè di pagina