Pagina 1 di 1

Errore compilazione libtorrent-rasterbar

Inviato: gio 12 lug 2012, 18:16
da joe
Volevo provare l'ultima versione di qbittorrent, la release candidate 3.0.0rc5.
Come dipendenza ha libtorrent-rasterbar di cui volevo installare la versione aggiornata 0.16.1.
Ne ho trovato gli slackbuilds sul repo di alien bob. Però lanciando lo slackbuild di libtorrent-rasterbar ottengo sì un pacchetto, ma rilevo anche un errore in fase di compilazione:

Codice: Seleziona tutto

> src/session.cpp:154: error: ‘class boost::python::api::object’ has no 
> member named ‘is_none’
> error: command 'gcc' failed with exit status 1
Quello sopra è copiato da un link che ho trovato in rete ed è identico a quanto ottengo io.
Ecco il link:
http://permalink.gmane.org/gmane.networ ... rrent/4135

Su quel sito viene proposta una patch da applicare al file "session.cpp", almeno così immagino.
Could you test this patch?

Index: src/session.cpp
===================================================================
--- src/session.cpp (revision 7114)
+++ src/session.cpp (working copy)
@@ -151,7 +151,7 @@
, std::vector<char>& rd, std::list<std::string>& string_storage)
{
// torrent_info objects are always held by an intrusive_ptr in the
python binding
- if (params.has_key("ti") && !params.get("ti").is_none())
+ if (params.has_key("ti") && params.get("ti") !=
boost::python::object())
p.ti = extract<intrusive_ptr<torrent_info> >(params["ti"]);

if (params.has_key("info_hash"))

--
Due domande:
0- L'errore probabilmente è dovuto al fatto che sto tentando la compilazione su slackware-13.1, mentre lo slackbuild di alien è per la 13.37. No saprei dire dove stia l'inghippo più in dettaglio....
1- L'errore potrebbe rientrare applicando la patch sovrariportata... Ma come applicarla?

Re: Errore compilazione libtorrent-rasterbar

Inviato: sab 14 lug 2012, 8:55
da hashbang
Perdona la risposta sciocca, ma hai cercato la riga incriminata dalla patch nel file src/session.cpp?

Ovvero,

Codice: Seleziona tutto

if (params.has_key("ti") && !params.get("ti").is_none())
Se si, e se la patch non è applicabile con il classico comando patch(1), cambiala manualmente in

Codice: Seleziona tutto

if (params.has_key("ti") && params.get("ti") != boost::python::object())
e riprova a compilare.


Magari, prima di patchare, crea una copia di backup, in modo da poter tornare indietro se la patch non ha effetto.

Re: Errore compilazione libtorrent-rasterbar

Inviato: sab 14 lug 2012, 12:06
da joe
Ah, cioè la patch va a modificare la riga sopra cambiandola nella seconda riga che hai riportato nel tuo messaggio praticamente...
Però c'è un problemino...
Nel file src/session.cpp non trovo la prima riga... anche cercando solo params.get non trova nulla...
Strano...
Provo a cercare meglio. Se eventualmente, voleste darci un'occhiata anche voi benvenga! ;)