boinc

[quote]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 https://bugzilla.redhat.com/show_bug.cgi?id=814060 ancora non risolto nei repository ufficiali, altrimenti non funziona.
[/quote]
Forse c’è un errore in questo, lo spec si trova in rpmbuild/SPECS. Le modifiche sullo spec non le capisco…comunque sto dando un occhio sulla mia macchina per vedere un poco se riesco a compilarlo nel fine settimana.

Ciao

La patch per il makefile che si usa per creare l’archivio è sbagliata per la nuova versione.

[quote=MarioS][quote]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 https://bugzilla.redhat.com/show_bug.cgi?id=814060 ancora non risolto nei repository ufficiali, altrimenti non funziona.[/quote]
Forse c’è un errore in questo, lo spec si trova in rpmbuild/SPECS.[/quote]
Scusa, hai ragione (io inizialmente avevo messo tutto in SOURCES, poi dopo il tuo consiglio, per rispettare gli standard, ho modificato per errore solo una parte). La versione corretta è la seguente:

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

La prima modifica:

cd ~/rpmbuild/SPECS
sed -i 's/%{_unitdir}\/%{name}/%{_unitdir}\/%{name}.service/g' boinc-client.spec

serve per trasformare boinc-client in boinc-client.service, come da patch suggerita https://bugzilla.redhat.com/show_bug.cgi?id=814060. Con systemd i servizi devono terminare con .service, altrimenti vanno in errore e non partono (e infatti la versione non patchata non funziona su F17).
La seconda modifica:

cd ~/rpmbuild/SOURCES
sed -i 's/After=network.target graphical.target/After=network.target/g' boinc-client-systemd

fa in modo che, se abilitato, il servizio boinc-client non aspetti la partenza del servizio grafico (altrimenti, anche se abilitato, non partiva in avvio).

Poiché la versione di boinc per F17 attualmente scaricabile dai repository ufficiali non funziona, vanno applicate le patch dovute prima di compilare la versione 7 (altrimenti non funzionerà neanche quella, anche se si riesce a compilare).

Infatti avevo scritto:

Ho capito per la modifica dello spec che era per utilizzare il nuovo systemd invece che systemd.

Facciamo un passo alla volta ed evitiamo di creare confusione con comandi errati…
Direi che per ora è importante riuscire a fare la compilazione di tutto il sorgente. Vedere se le patch preesistenti sono da eliminare o da aggiornare.

–Aggiunta–
E’ per forza di cose necessario lanciare l’autosetup per creare il pacchetto sorgente? Perché non lo si può lanciare nella creazione dell’rpm e creare i sorgenti eliminando semplicemente le cose superflue con lo script trim?

http://marionline.fedorapeople.org/packages/SRPMS/boinc-client-7.0-1.r25853svn.fc16.src.rpm potete scaricare un pacchetto rpm sorgente per la versione 7_0 di boinc. La compilazione avviene correttamente e anche la creazione del pacchetto binario.

C’è da sistemare il discorso dell’avvio con systemd e vedere se il tutto funziona correttamente.

@marcomotta i tuoi suggerimenti con sed non portano a nessuna modifica. Se una persona usa yumdownloader per scaricare il sorgente rpm di boinc-client quei comandi non vanno a buon fine. Tu da dove sei partito? Da che versione di pacchetto rpm? Immagino il pacchetto per f17.
Io da 6.12.35-1.r24014svn per fedora 16.

[quote=MarioS]
@marcomotta i tuoi suggerimenti con sed non portano a nessuna modifica. Se una persona usa yumdownloader per scaricare il sorgente rpm di boinc-client quei comandi non vanno a buon fine. Tu da dove sei partito? Da che versione di pacchetto rpm? Immagino il pacchetto per f17.
Io da 6.12.35-1.r24014svn per fedora 16.[/quote]

[marco@localhost ~]$ rpm -qa | grep boinc
boinc-client-6.12.43-1.r25218svn.fc17.x86_64
boinc-manager-6.12.43-1.r25218svn.fc17.x86_64
boinc-client-devel-6.12.43-1.r25218svn.fc17.x86_64

Sì, su Fedora 16 boinc funzionava; l’errore da correggere è nel pacchetto per Fedora 17. Io sono partito da boinc-client-6.12.43-1.r25218svn.fc17.src.rpm.

Lo script completo che ho usato per patcharlo lo trovi http://www.mathhelp.eu/software/boinc/boinc.html, dopo “SCRIPT PER CREARE E INSTALLARE GLI RPM”.
L’ho testato con successo più di una volta sui miei 3 computer con Fedora 17, ma non va applicato alle versioni per Fedora 16, per quello che so.

#cd cartella_dove_si_trova_il_file_spec_estratto_da_boinc-client-6.12.43-1.r25218svn.fc17.src.rpm
cp boinc-client{,2}.spec
sed -i 's/%{_unitdir}\/%{name}/%{_unitdir}\/%{name}.service/g' boinc-client.spec
diff boinc-client{,2}.spec
226c226
< 	BOINCDIR=\`grep -o -- '--dir ^ ]\+' %{_unitdir}/%{name}.service | tr '"' ' ' | sed 's|--dir ||'\`;
---
> 	BOINCDIR=\`grep -o -- '--dir ^ ]\+' %{_unitdir}/%{name} | tr '"' ' ' | sed 's|--dir ||'\`;
237c237
< install -p -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
---
> install -p -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/%{name}
319c319
< %{_unitdir}/%{name}.service
---
> %{_unitdir}/%{name}

Quindi con il graphical target sarà possibile utilizzare CUDA senza dover riavviare BOINC dopo il caricamento dei driver grafici? A tal proposito aprii un bugreport ma se non erro Milos disse che con il nuovo gestore servizi di Fedora 17 si sarebbe risolto

[quote=MarioS]http://marionline.fedorapeople.org/packages/SRPMS/boinc-client-7.0-1.r25853svn.fc16.src.rpm potete scaricare un pacchetto rpm sorgente per la versione 7_0 di boinc. La compilazione avviene correttamente e anche la creazione del pacchetto binario.
C’è da sistemare il discorso dell’avvio con systemd e vedere se il tutto funziona correttamente.[/quote]
Uhm, ho scaricato l’rpm e dato un’occhiata alle modifiche rispetto a quello per Fedora 17 che avevo tentato di adattare. Vedo che ci sono ancora i riferimenti a /etc/init.d anziché a systemd. Non so se andrebbe bene su Fedora 17, e comunque annullerebbe le modifiche fatte in questo senso nel pacchetto attuale per F17. Credo che per F17 bisognerebbe proprio partire da una macchina con F17, e dal pacchetto per F17…

In ogni caso, sulla mia F17:

[marco@localhost Scrivania]$ rpmbuild --rebuild boinc-client-7.0-1.r25853svn.fc16.src.rpm
[cut]
/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.99IZ4s (%build)

…che è lo stesso errore che ottenevo con il pacchetto per F17.
Mi manca qualche pacchetto per dipendenza? Se sì quale? O qualche patch va tolta o modificata?

Boh…

Usa mock per creare l’rpm.
Io sono partito dal pacchetto per fedora 16, non 17 che introduce altre modifiche. Lo vedrò un altro giorno per f17.

Intendi http://it.wikipedia.org/wiki/CUDA, vero?
L’intenzione sarebbe proprio quella che dici tu. Il servizio boinc (in teoria) dovrebbe aspettare il caricamento dei driver grafici, in modo da poter utilizzare la gpu appena partito.
In pratica, non so bene per quale motivo, il servizio boinc non parte proprio per nulla (in attesa non so di cosa? Stoppato da qualche errore? Vedi il https://bugzilla.redhat.com/show_bug.cgi?id=814060#c17 al bug), a meno che non venga fatto partire “a mano” con

systemctl start boinc-client.service

Quindi, almeno per il momento, io ho preferito rimuovere il graphical target dal file boinc-client-systemd.

Quando torno a casa cerco in Thunderbird il bug che aprii sul bugzilla, in quanto lo chiusero e non lo trovo più

Ho creato l’rpm sorgente compilabile per f16 e f17 a 64bit (verosimilmente funzionerà anche per la versione a 32 bit):
http://marionline.fedorapeople.org/packages/SRPMS/boinc-client-7.0-2.r25853svn.fc16.src.rpm

Mi sono basato sui nuovi file spec che hanno creato i packager maintainer di boinc-client.

in che cosa consiste un rpm compilabile?

Nel pacchetto sorgente rpm ovviamente.

Poi mi vado a studiare a cosa serve perché non conosco la differenza tra sorgente e pacchetto rpm sorgente

Ma scusa, allora fino ad adesso di cosa abbiamo discusso??? Cioè ho scritto e ricevuto risposte casuali senza che aveste chiare le cose?

I pacchetti rpm sorgenti contengono i file sorgenti e le informazioni per creare poi l’rpm di installazione con gli eseguibili!

[quote=MarioS]Ma scusa, allora fino ad adesso di cosa abbiamo discusso??? Cioè ho scritto e ricevuto risposte casuali senza che aveste chiare le cose?

I pacchetti rpm sorgenti contengono i file sorgenti e le informazioni per creare poi l’rpm di installazione con gli eseguibili![/quote]
Non hai parlato al vento, sono solo io che sto seguendo la discussione leggendo e non partecipando al pacchetto. Questo perché sto studiando per esami quindi non posso dare una mano

Si ma allora cosa sei andato a scrivere anche allo sviluppatore del pacchetto iniziale? Non ho capito…

In parole povere gli ho scritto:

Tutto ciò per evitare che poi il nostro pacchetto possa non venire accettato.