Repository 32bit  Forum
Repository 64bit  Wiki

Problema con gio e file url

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Problema con gio e file url

Messaggioda d4z_c0nf » mer feb 22, 2012 15:28

Come da titolo.
Non riesco ad aprire file da url con gio.

Esempio in c e relativo errore:
example-gio.c
Codice: Seleziona tutto
#include <glib/gprintf.h>
#include <gio/gio.h>

int main(int argc, char **argv) {
  g_type_init();

  GError* error = NULL;
  GFile* file = NULL;
  GFileInputStream* fis = NULL;

  file = g_file_new_for_uri (argv[1]);

  fis = g_file_read (file, NULL, &error);
  if (error != NULL)
            g_printerr ("** ERROR **: %s (domain: %s, code: %d) at %d\n", \
                error->message, g_quark_to_string (error->domain), error->code, __LINE__);
  return 0;
}

Compilato con:
Codice: Seleziona tutto
gcc -o example-gio example-gio.c `pkg-config --libs --cflags gio-2.0`

Errore:
Codice: Seleziona tutto
 ./example-gio "http://www.angolodigitale.it/wp-content/uploads/2010/01/slackware_logo.png"
** ERROR **: Operation not supported (domain: g-io-error-quark, code: 15) at 16


Con pyton, da console di python:
Codice: Seleziona tutto
rock@localhost:~ $ python
iPython 2.6.6 (r266:84292, Nov 27 2010, 17:27:14)
[GCC 4.5.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gio
>>> gfile=gio.File("http://www.angolodigitale.it/wp-content/uploads/2010/01/slackware_logo.png")
>>> gfile.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
gio.Error: Operation not supported

(Ovviamente l'indirizzo è casuale)

Sono in current e ho le multilib. Vorrei capire se è un problema della configurazione del mio sistema (current e/o multilib), o proprio
della versione delle glib. Ho portato gli esempi in python e in c, per escludere un problema con pygobject.

Chiunque ne avesse voglia, potrebbe provare sul proprio sistema per aiutarmi ad escludere qualcosa?
Grazie.
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1293
Iscritto il: mar mar 14, 2006 18:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce

Re: Problema con gio e file url

Messaggioda d4z_c0nf » gio feb 23, 2012 11:19

Non credevo ad un tale successo di pubblico. :lol:
Probabilmente non mi sono spiegato, cerco solo qualcuno che abbia voglia di provare gli esempi che ho postato, per darmi la possibilità di capire da cosa dipende il fallimento sul mio sistema. Vanno bene anche distro diverse dalla slackware.

Thanks.
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1293
Iscritto il: mar mar 14, 2006 18:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce

Re: Problema con gio e file url

Messaggioda conraid » ven feb 24, 2012 11:25

Mi da lo stesso errore, sia in c sia in python.

Slackware current 64bit, senza multilib
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12022
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Problema con gio e file url

Messaggioda d4z_c0nf » ven feb 24, 2012 11:28

Grazie corrado. :)
Il problema sarà proprio a monte con le glib2... aglia.
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1293
Iscritto il: mar mar 14, 2006 18:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce

Re: Problema con gio e file url

Messaggioda masalapianta » ven feb 24, 2012 11:47

usando uri con file: funziona:

mini:/tmp# ./example-gio "file:/tmp/example-gio"
mini:/tmp#

probabilmente http non è supportato:

http://developer.gnome.org/gio/2.31/GFi ... ew-for-uri

This operation never fails, but the returned object might not support any I/O operation if uri is malformed or if the uri type is not supported.
Avatar utente
masalapianta
Iper Master
Iper Master
 
Messaggi: 2775
Iscritto il: dom lug 24, 2005 23:00
Località: Roma
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian

Re: Problema con gio e file url

Messaggioda 414N » ven feb 24, 2012 11:49

Ho fatto un paio di prove anch'io col codice C che hai postato.
Nella documentazione dell'operazione g_file_new_for_uri è scritto:
Constructs a GFile for a given URI. This operation never fails, but the returned object might not support any I/O operation if uri is malformed or if the uri type is not supported.

Provando a fare una prova con tipo URI diverso (file://) l'errore non si verifica più, percui direi proprio che non è supportato il tipo di URI http.
PS: ricordati di segnalare la fine dell'utilizzo di un puntatore ad un file tramite g_object_unref.
EDIT: battuto sul tempo :)
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2882
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Problema con gio e file url

Messaggioda d4z_c0nf » ven feb 24, 2012 12:04

@ masalapianta e 414N

Grazie ad entrambi.
Si lo so che con file normale funziona, proprio perchè non funziona proprio se l'uri è un url.

Quindi potrebbe essere un problema di versione delle glib2.
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1293
Iscritto il: mar mar 14, 2006 18:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce

Re: Problema con gio e file url

Messaggioda 414N » ven feb 24, 2012 13:46

Non credo proprio che esista una versione di glib che supporti le uri http.
Forse ti conviene passare a libcurl se intendi fare trasferimenti di file tramite http.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2882
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Problema con gio e file url

Messaggioda d4z_c0nf » ven feb 24, 2012 14:07

414N ha scritto:Non credo proprio che esista una versione di glib che supporti le uri http.
Forse ti conviene passare a libcurl se intendi fare trasferimenti di file tramite http.


A me serve la possibilità di scaricare con gio, perchè un programma (exaile), lo richiede.
Se è come dici tu, forse mi manca qualche dipendenza, però non riesco a capire quale
possa essere.

In rete comunque si trovano esempi di file scaricati con gio.
Ti linko il primo esempio che mi viene fuori da google, tra l'altro usa python:
http://www.jonobacon.org/2010/03/15/dow ... nd-python/
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1293
Iscritto il: mar mar 14, 2006 18:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce

Re: Problema con gio e file url

Messaggioda d4z_c0nf » ven feb 24, 2012 20:11

Aggiornamento:
Ho installato xubuntu11.10 su una macchina virtuale.
Testato l'esempio in python, stesso errore.
Ho proceduto agli aggiornamenti suggeritimi dal sistema, tra cui un pacchetto "gvfs-backends".
Lì funziona.
Ora io in slackware avevo già compilato e installato gvfs con supporto per http.
Su xubuntu gvfs sono alla versione 1.10, e io su slackware avevo messo la versione 1.08.
Vediamo se riesco a compilare la nuova versione...
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1293
Iscritto il: mar mar 14, 2006 18:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce

Re: Problema con gio e file url

Messaggioda d4z_c0nf » ven feb 24, 2012 21:06

Ultimo aggiornamento.
Niente da fare gvfs dalla versione 1.9.2 in poi richiede glib2 => 2.29.14, e putroppo anche in current siamo a 2.28.6.
A questo punto chissà chi è il responsabile.

Grazie a tutti.
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1293
Iscritto il: mar mar 14, 2006 18:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti