[se passer de aur] Installer icecat et gnash. Surtout gnash.

Applications, problèmes de configuration réseau
Yax
Hankyu
Messages : 15
Inscription : jeu. 06 mars 2014, 19:39

[se passer de aur] Installer icecat et gnash. Surtout gnash.

Message par Yax »

Bonjour.

Ayant un peu sombré dans la paranoïa du libiste, j'ai décidé d'installer icecat. (firefox devenait trop douteux à mes yeux)
Je m'attendais à devoir le compiler une fois téléchargé, mais l'exécutable était déjà présent dans la tarball... Alors je l'ai essayé et il fonctionne parfaitement bien sous archlinux.
Sauf que ça me paraît quand-même un peu étrange, il me semblait que chez GNU ils distribuaient uniquement des codes source. Alors, puis-je vraiment faire confiance en ce binaire ?

Je l'ai obtenu ici : http://ftp.igh.cnrs.fr/pub/gnu/gnuzilla/24/. (C'est le site de GNU lui-même qui propose ce miroir du CNRS)

Outre les questions de philosophie, j'ai un problème plus concrêt, avec l'installation de gnash.
Car là il faut tout compiler soi-même...

J'ai bien suivi les instructions du README présentes dans le dossier des sources fourni par GNU, c'est à dire :
  1. Exécuter ./autogen.sh
  2. Exécuter ./configure
  3. Exécuter make (Pour cette étape ils ne disaient rien, j'ai simplement supposé qu'il fallait le faire)
Et ça s'arrête là, car le make tombe en erreur en me sortant :

Code : Tout sélectionner

[...]

jemalloc_rb.h:735:1: note: in definition of macro 'rb_wrap'
 a_prefix##psearch(a_tree_type *tree, a_type *key) {   \
 ^
  CXX      libgnashbase_la-SharedMem.lo
  CXX      libgnashbase_la-extension.lo
  CXX      libgnashbase_la-sharedlib.lo
  CXX      libgnashbase_la-GnashImagePng.lo
  CXX      libgnashbase_la-GnashImageGif.lo
GnashImageGif.cpp: In destructor 'virtual gnash::image::{anonymous}::GifInput::~GifInput()':
GnashImageGif.cpp:124:23: error: too few arguments to function 'int DGifCloseFile(GifFileType*, int*)'
     DGifCloseFile(_gif);
                       ^
In file included from GnashImageGif.cpp:28:0:
/usr/include/gif_lib.h:183:9: note: declared here
     int DGifCloseFile(GifFileType * GifFile, int *ErrorCode);
         ^
GnashImageGif.cpp: In member function 'virtual void gnash::image::{anonymous}::GifInput::read()':
GnashImageGif.cpp:272:47: error: too few arguments to function 'GifFileType* DGifOpen(void*, InputFunc, int*)'
     _gif = DGifOpen(_inStream.get(), &readData); 
                                               ^
In file included from GnashImageGif.cpp:28:0:
/usr/include/gif_lib.h:182:14: note: declared here
 GifFileType *DGifOpen(void *userPtr, InputFunc readFunc, int *Error);    /* new one (TVT) */
              ^
Makefile:1252: recipe for target 'libgnashbase_la-GnashImageGif.lo' failed
make[2]: *** [libgnashbase_la-GnashImageGif.lo] Error 1
make[2]: Leaving directory '/home/xxxxxxx/temp/Icecat/gnash-0.8.10/libbase'
Makefile:1134: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/xxxxxxx/temp/Icecat/gnash-0.8.10'
Makefile:1041: recipe for target 'all' failed
make: *** [all] Error 2
Ça me paraît énorme de la part d'une dernière version stable d'un gros projet, mais il manque bien un paramètre lors d'un appel à une fonction dans le code C/C++ !

Je ne suis pas trop habitué à compiler les logiciels, généralement je préfère être feignant et me limiter au yaourting. Sauf que là, Icecat et Gnash ne sont pas dans les dépôts officiels, et leurs versions AUR ont l'air assez foireuses.
Donc me voilà complètement perdu, quelle est la démarche du linuxien habituel face à ça ?
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [se passer de aur] Installer icecat et gnash. Surtout gn

Message par FoolEcho »

Salut,
Yax a écrit :Ayant un peu sombré dans la paranoïa du libiste, j'ai décidé d'installer icecat. (firefox devenait trop douteux à mes yeux)
Pas assez et surtout mauvaise paranoïa puisqu'il te prend l'envie d'installer un binaire d'une part et de compiler (en root je parie ?) autre chose d'autre part. :P
Yax a écrit :Je l'ai obtenu ici : http://ftp.igh.cnrs.fr/pub/gnu/gnuzilla/24/. (C'est le site de GNU lui-même qui propose ce miroir du CNRS)
Pour un paranoïaque, tu devrais regarder la date... 2013. Il y a donc fort à parier que les dépendances ne collent plus.
Yax a écrit :Ça me paraît énorme de la part d'une dernière version stable d'un gros projet, mais il manque bien un paramètre lors d'un appel à une fonction dans le code C/C++ !
Pareil... Cette version de gnash date d'un an, tourne-toi plutôt vers le git... http://git.savannah.gnu.org/cgit/gnash.git

Et je ne vois pas ce que tu reproches à icecat disponible sur AUR.
Pour gnash, il faut vraisemblablement se tourner vers gnash-git (orphelin, c'est vrai mais c'est souvent moins grave pour les paquets git) ou gnash-trunk-git (version de développement, 0.8.11 en l'état).
«The following statement is not true. The previous statement is true.» :nage:
Yax
Hankyu
Messages : 15
Inscription : jeu. 06 mars 2014, 19:39

Re: [se passer de aur] Installer icecat et gnash. Surtout gn

Message par Yax »

Oui je ne suis encore qu'un apprenti parano. Mais ça viendra, je suis avide d'apprendre. :chinois:
Hey en revanche ce n'est pas parce que je ne connais pas tout que, forcément, je fais tout comme les débutants. Ma compilation n'était pas faite en root, non.

Donc j'ai essayé d'installer "gnash-git" depuis AUR :
[xxxxxxx@xxxxxxx ~]$ yaourt gnash-git
1 aur/gnash-git 20120122-1 (Out of Date) (3)
An open source flashplayer - git version
==> Numéro(s) des paquets à installer (ex: 1 2 3 ou 1-3)
==> ----------------------------------------------------
==> 1

[...]

make[4]: Entering directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/src/gnash-build/libcore/parser'
CXX action_buffer.lo
CXX BitmapMovieDefinition.lo
CXX SWFParser.lo
CXX TypesParser.lo
CXX SWFMovieDefinition.lo
CXX sound_definition.lo
CXX sprite_definition.lo
CXXLD libgnashparser.la
make[5]: Entering directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/src/gnash-build/libcore/parser'
make[5]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/pkg/gnash-git/usr/include/gnash/parser'
/usr/bin/install -c -m 644 movie_definition.h '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/pkg/gnash-git/usr/include/gnash/parser'
make[5]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/src/gnash-build/libcore/parser'
make[4]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/src/gnash-build/libcore/parser'
Making install in vm
make[4]: Entering directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/src/gnash-build/libcore/vm'
CXX ASHandlers.lo
In file included from ASHandlers.cpp:46:0:
../../libcore/DragState.h: In member function 'bool gnash::DragState::hasBounds() const':
../../libcore/DragState.h:65:24: error: cannot convert 'const boost::optional<gnash::SWFRect>' to 'bool' in return
return (_bounds);
^
Makefile:757: recipe for target 'ASHandlers.lo' failed
make[4]: *** [ASHandlers.lo] Error 1
make[4]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/src/gnash-build/libcore/vm'
Makefile:2381: recipe for target 'install-recursive' failed
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/src/gnash-build/libcore'
Makefile:2538: recipe for target 'install' failed
make[2]: *** [install] Error 2
make[2]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/src/gnash-build/libcore'
Makefile:1145: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-git/src/gnash-build'
Makefile:1444: recipe for target 'install' failed
make: *** [install] Error 2
==> ERREUR : Une erreur s’est produite dans package().
Abandon...
==> ERREUR: Makepkg n'a pas pu construire gnash-git.
==> Relancer la compilation de gnash-git ? [o/N]
==> --------------------------------------------
==>
Et comme ça n'a pas fonctionné, j'ai essayé "gnash-trunk-git" :
[xxxxxxx@xxxxxxx ~]$ yaourt gnash-trunk-git
1 aur/gnash-trunk-git 0.8.11.r22195.g7349e86-1 (25)
The GNU SWF Player based on GameSWF - git development version
==> Numéro(s) des paquets à installer (ex: 1 2 3 ou 1-3)
==> ----------------------------------------------------
==> 1

[...]

make[4]: Entering directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-trunk-git/src/gnash/libcore/vm'
CXX ASHandlers.lo
In file included from ASHandlers.cpp:46:0:
../../libcore/DragState.h: In member function 'bool gnash::DragState::hasBounds() const':
../../libcore/DragState.h:65:24: error: cannot convert 'const boost::optional<gnash::SWFRect>' to 'bool' in return
return (_bounds);
^
Makefile:757: recipe for target 'ASHandlers.lo' failed
make[4]: *** [ASHandlers.lo] Error 1
make[4]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-trunk-git/src/gnash/libcore/vm'
Makefile:2381: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-trunk-git/src/gnash/libcore'
Makefile:1246: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-trunk-git/src/gnash/libcore'
Makefile:1145: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/tmp/yaourt-tmp-xxxxxxx/aur-gnash-trunk-git/src/gnash'
Makefile:1052: recipe for target 'all' failed
make: *** [all] Error 2
==> ERREUR : Une erreur s’est produite dans build().
Abandon...
==> ERREUR: Makepkg n'a pas pu construire gnash-trunk-git.
==> Relancer la compilation de gnash-trunk-git ? [o/N]
==> --------------------------------------------------
==>
Qui n'a pas fonctionné non plus.
En fait c'était parce que j'obtenais déjà ce genre de résultats avec les autres paquets AUR (icecat et gnash tout court) que j'avais laissé tomber cette option.

Merci pour la notion de GIT, elle me faisait sévèrement défaut. Mais en fait la version GIT me sort exactement la même erreur que le paquet "gnash-trunk-git". (J'imagine que ça n'a rien d'un hasard ? :mrgreen:)
Dois-je en conclure que le problème vient des sources actuelles et qu'il est temporairement impossible d'installer cette librairie ?
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [se passer de aur] Installer icecat et gnash. Surtout gn

Message par FoolEcho »

Yax a écrit :Dois-je en conclure que le problème vient des sources actuelles et qu'il est temporairement impossible d'installer cette librairie ?
Le problème peut venir des dépendances et des orientations de développement actuelles de gnash (en clair: même leur branche de développement se baserait sur des versions antérieures au niveau des dépendances que celles qui sont utilisées/fournies pour Arch... et c'est leur droit, évidemment :P ).
«The following statement is not true. The previous statement is true.» :nage:
Yax
Hankyu
Messages : 15
Inscription : jeu. 06 mars 2014, 19:39

Re: [se passer de aur] Installer icecat et gnash. Surtout gn

Message par Yax »

Okay... Oh les vilains, ils ne se sont même pas assurés de la compatibilité de leur travail avec Archlinux. :non:

Mais du coup, il y a une chose que je saisis mal au niveau technique : Si à chaque fois le problème viendrait des dépendances, pourquoi les messages d'erreurs sembleraient-ils toujours provenir des "profondeurs" du code C++ ?
Par exemple dans le cas de "gnash-trunk-git", le message indique qu'un appel à une fonction de boost renvoie une valeur non convertible en booléen. Comment est-il possible d'établir si cela provient bien d'un problème de dépendances ? J'ai le doute car en temps habituels quand mon compilateur me crache ce genre d'insulte, c'est juste que j'ai oublié une implémentation quelque part dans le code, comme une surcharge d'opérateur ou autre chose.
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [se passer de aur] Installer icecat et gnash. Surtout gn

Message par FoolEcho »

Yax a écrit :Mais du coup, il y a une chose que je saisis mal au niveau technique : Si à chaque fois le problème viendrait des dépendances, pourquoi les messages d'erreurs sembleraient-ils toujours provenir des "profondeurs" du code C++ ?
Parce que la compilation s'effectue par rapport à ce qui est fourni en entrée (cf. étape du configure et autres drapeaux). Les en-têtes de ces dépendances vont constituer la référence par rapport à ton programme à compiler et c'est lui qui est passé au crible et donc bien lui qui est en faute (mais le compilateur te dira d'où ça vient et par rapport à quoi).
Le c++ n'étant pas du java (par exemple), il n'y aucune compatibilité ascendante d'assurée (le fait qu'il soit possible de compiler/exécuter des programmes anciens sur une base récente ; ne me faites pas dire ce que je n'ai pas dit ou ne comprenez pas ça comme étant la panacée car ce procédé présente également des désagréments), donc un problème majeur constitue l'évolution constante des bibliothèques employées (malheureusement, il y a souvent assez peu de vérification des versions des dépendances).
«The following statement is not true. The previous statement is true.» :nage:
Répondre