Fedora Online Forum

Il forum della comunità italiana di Fedora

#16 06-07-2012 20:52:58

robyduck
Fedora Ambassador
Registrato: 08-12-2004
Messaggi: 8'023
Sito web

Re: boinc

Ci deve essere un errore nel file SPEC.
Direi di seguire il consiglio di Mario, creare l'RPM sorgente e poi utilizzare Mock. Una volta che Mock compila l'RPM si vanno a vedere gli errori e eventuali warning.

Non in linea

#17 06-07-2012 21:00:14

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

Re: boinc

MarioS ha scritto:

Quando lo da quell'errore?

[[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
State Changed: build
ERROR: Exception(rpmbuild/SRPMS/boinc-client-7.0.7-1.r25826svn.fc17.src.rpm) Config(fedora-17-x86_64) 3 minutes 19 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-17-x86_64/result
ERROR: Command failed. See logs for output.
 # ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/boinc-client.spec']
[[email protected] ~]$ 

Il file /var/lib/mock/fedora-17-x86_64/result/build.lock è un po' lunghetto (più di 3000 righe); comunque finisce con

Elaborazione file: boinc-client-7.0.7-1.r25826svn.fc17.x86_64
Esecuzione(%doc) in corso: /bin/sh -e /var/tmp/rpm-tmp.11T7ce
+ umask 022
+ cd /builddir/build/BUILD
+ cd boinc_core_release_7_0
+ DOCDIR=/builddir/build/BUILDROOT/boinc-client-7.0.7-1.r25826svn.fc17.x86_64/usr/share/doc/boinc-client-7.0.7
+ export DOCDIR
+ /usr/bin/mkdir -p /builddir/build/BUILDROOT/boinc-client-7.0.7-1.r25826svn.fc17.x86_64/usr/share/doc/boinc-client-7.0.7
+ cp -pr COPYING COPYRIGHT USAGE_FEDORA /builddir/build/BUILDROOT/boinc-client-7.0.7-1.r25826svn.fc17.x86_64/usr/share/doc/boinc-client-7.0.7
+ exit 0
Provides: config(boinc-client) = 7.0.7-1.r25826svn.fc17 libboinc_api.so.7()(64bit) libboinc_graphics2.so.7()(64bit) libboinc_opencl.so.7()(64bit)
Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(pre): /bin/sh shadow-utils
Requires(post): /bin/sh systemd-sysv systemd-units
Requires(preun): /bin/sh systemd-units
Requires(postun): /bin/sh systemd-units
Requires: libatk-1.0.so.0()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.4)(64bit) libcairo.so.2()(64bit) libcrypto.so.10()(64bit) libcurl.so.4()(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit) libfontconfig.so.1()(64bit) libfreetype.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgdk-x11-2.0.so.0()(64bit) libgdk_pixbuf-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libglib-2.0.so.0()(64bit) libgobject-2.0.so.0()(64bit) libgtk-x11-2.0.so.0()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libnsl.so.1()(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) libpangoft2-1.0.so.0()(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libssl.so.10()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) libz.so.1()(64bit) rtld(GNU_HASH)
Elaborazione file: boinc-manager-7.0.7-1.r25826svn.fc17.x86_64
errore: File non trovato: /builddir/build/BUILDROOT/boinc-client-7.0.7-1.r25826svn.fc17.x86_64/usr/bin/boincscr
Errori di compilazione RPM:
    File non trovato: /builddir/build/BUILDROOT/boinc-client-7.0.7-1.r25826svn.fc17.x86_64/usr/bin/boincscr
Child return code was: 1
EXCEPTION: Command failed. See logs for output.
 # ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/boinc-client.spec']
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/mockbuild/trace_decorator.py", line 70, in trace
    result = func(*args, **kw)
  File "/usr/lib/python2.7/site-packages/mockbuild/util.py", line 352, in do
    raise mockbuild.exception.Error, ("Command failed. See logs for output.\n # %s" % (command,), child.returncode)
Error: Command failed. See logs for output.
 # ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/boinc-client.spec']
LEAVE do --> EXCEPTION RAISED

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

#18 06-07-2012 21:10:40

robyduck
Fedora Ambassador
Registrato: 08-12-2004
Messaggi: 8'023
Sito web

Re: boinc

Ci dai la parte dello SPEC di %build?
Hai definito anche una BUILDROOT?

Non in linea

#19 07-07-2012 05:55:46

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

Re: boinc

robyduck ha scritto:

Ci dai la parte dello SPEC di %build?
Hai definito anche una BUILDROOT?

1) mock non l'avevo mai usato: ieri l'ho installato con yum, ho aggiunto marco al gruppo mock, ed eseguito

mock rpmbuild/SRPMS/boinc-client-7.0.7-1.r25826svn.fc17.src.rpm

come suggerito da MarioS. Non ho configurato in alcun modo mock.
2) se invece ti riferisci al file boinc-client.spec con cui tento di creare l'rpm (ho provato ad usare il file spec di boinc 6 con poche modifiche; la parte che segue dovrebbe essere esattamente identica):

Source4:	USAGE_FEDORA
[cut]
BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
[cut]
%build
%ifarch %{ix86}
%global boinc_platform i686-pc-linux-gnu
%endif
%ifarch powerpc ppc
%global boinc_platform powerpc-linux-gnu
%endif
%ifarch powerpc64 ppc64
%global boinc_platform ppc64-linux-gnu
%endif

# We want to install .mo, not .po files, see http://boinc.berkeley.edu/trac/ticket/940
sed -i 's/BOINC-Manager\.po/BOINC-Manager\.mo/g' locale/Makefile.in

# Install user hints
install -p -m644 %{SOURCE4} .

%global confflags --disable-dependency-tracking --enable-dynamic-client-linkage --disable-server --disable-fcgi --enable-unicode --with-ssl --with-x STRIP=: DOCBOOK2X_MAN=/usr/bin/db2x_docbook2man

%if %{defined boinc_platform}
CXXFLAGS=`pkg-config gtk+-x11-2.0 --cflags --libs` %configure %{confflags} --with-boinc-platform=%{boinc_platform}
%else
CXXFLAGS=`pkg-config gtk+-x11-2.0 --cflags --libs` %configure %{confflags}
%endif

# Disable rpaths
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

# Parallel make does not work, see upstream bugtracker at:
# http://boinc.berkeley.edu/trac/ticket/775
make

E, per inciso, se tento di creare l'rpm con

rpmbuild -v -bb boinc-client.spec

dà errore eseguendo il make, secondo me.
Con mock effettimamente anch'io ho l'impressione che non sia configurato a dovere (cerca un file nel posto sbagliato?), ma ho tanto l'impressione che il problema fondamentale sia la necessità di modificare (non so come) il file spec).

Ultima modifica di marcomotta (07-07-2012 05:56:20)


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

#20 07-07-2012 11:00:39

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

Re: boinc

Ho scritto a Milos, vediamo che mi dice.


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

#21 07-07-2012 12:00:20

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

Re: boinc

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.

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


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

Non in linea

#22 07-07-2012 12:34:18

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

Re: boinc

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


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

Non in linea

#23 07-07-2012 14:32:38

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

Re: boinc

MarioS ha scritto:

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.

Forse c'è un errore in questo, lo spec si trova in rpmbuild/SPECS.

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

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.

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 qui. 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).

Ultima modifica di marcomotta (07-07-2012 14:57:41)


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

#24 07-07-2012 14:35:47

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

Re: boinc

MarioS ha scritto:

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

Infatti avevo scritto:

marcomotta ha scritto:

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 appaiono commentate (e quindi rimosse) nella versione 7.

Ultima modifica di marcomotta (07-07-2012 14:36:41)


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

#25 07-07-2012 15:15:02

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

Re: boinc

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?


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

Non in linea

#26 07-07-2012 16:34:10

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

Re: boinc

Qui 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.


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

Non in linea

#27 07-07-2012 17:14:17

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

Re: boinc

MarioS ha scritto:

@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.

[[email protected] ~]$ 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 qui, 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}

Ultima modifica di marcomotta (07-07-2012 17:16:26)


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

#28 07-07-2012 17:35:34

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

Re: boinc

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


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

#29 07-07-2012 17:35:46

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

Re: boinc

MarioS ha scritto:

Qui 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.

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:

[[email protected] 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...


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

#30 07-07-2012 17:40:57

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

Re: boinc

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.


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

Non in linea

Piè di pagina