[Compilation] qu'est-ce que j'oublie ? (Résolu)

Mise à jour / Création /debug de paquetages
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

[Compilation] qu'est-ce que j'oublie ? (Résolu)

Message par jaco »

Bonjour,

La version 1.9.3-p0 du langage Ruby est sortie il y a peu et elle a été rapidement intégrée à testing. Donc, un coup de pacman -S ruby me l'a installée et il fonctionne très bien.

J'ai voulu l'installer "à la main" sur ma machine Arch non testing en utilisant le triplet habituel "./configure && make && make install" mais le make se plante sur un problème d'encodage mystérieux :

Code : Tout sélectionner

linking miniruby
./tool/mkconfig.rb:11:in `require': incompatible character encodings: ASCII-8BIT and US-ASCII (Encoding::CompatibilityError)
	from ./tool/mkconfig.rb:11:in `<main>'
make: *** [.rbconfig.time] Erreur 1
Je précise que c'est la même chose sur toutes les distributions qui sont installées dans ma Virtual Box (Ubuntu Oneiric, Ubuntu Precise, Fedora 16 et, c'est là que c'est très fort : Arch Testing !).

J'ai donc regardé le PKGBUILD du paquetage de testing et il n'y a rien de particulier dedans. J'ai même poussé le vice jusqu'à exporter les variables pkgbase,
pkgname et pkgver et à installer doxygen afin de faire à la main tout ce que semble faire le PKGBUILD (ce sont ces variables que j'ai utilisées pour télécharger le tarball -- la seule chose que j'ai fait en plus a été de désarchiver le tarball avec tar).
Bien entendu, j'ai installé les modules adéquats pour les dépendances (openssl, libffi, libyaml).

Ensuite, j'ai copié/collé la commande exacte de PKGBUILD pour lancer ./configure avec le même environnement et les mêmes options. Mais, boum, le make échoue quand même :(

Comme je ne comprend pas pourquoi le paquetage a pu être créé avec ce PKGBUILD alors que je n'arrive pas à le compiler avec les mêmes commandes, je me dis qu'il manque peut-être un détail important à ma compréhension du mécanisme de création des paquetages...

Pour info, les lignes pertinentes du PKGBUILD :

Code : Tout sélectionner

pkgbase=ruby
pkgname=('ruby' 'ruby-docs')
pkgver=1.9.3_p0
pkgrel=1
pkgdesc="An object-oriented language for quick and easy programming"
arch=('i686' 'x86_64')
url="http://www.ruby-lang.org/en/"
license=('BSD' 'custom')
makedepends=('openssl' 'tk' 'libffi' 'doxygen' 'graphviz' 'libyaml')
options=('!emptydirs' '!makeflags')
source=(ftp://ftp.ruby-lang.org/pub/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver//_/-}.tar.bz2)
sha1sums=('f63c116411b981ef54c2caeefb9ccc4d71a5d2cf')

build() {
  cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
  DOXYGEN=/usr/bin/doxygen PKG_CONFIG=/usr/bin/pkg-config ./configure --prefix=/usr --sysconfdir=/etc \
      --enable-shared --enable-pthread --disable-rpath
  make
}
EDIT: j'ai également installé ABS, récupéré l'arborescence "testing", et lancé "makepkg -s" sur le PKGBUILD de ruby : même punition, que ce soit dans Arch ou dans Arch Testing.
Dernière modification par jaco le mar. 08 nov. 2011, 21:39, modifié 1 fois.
jean_no
yeomen
Messages : 285
Inscription : dim. 09 sept. 2007, 12:19

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jean_no »

Bonsoir

peux-tu essayer avec cette commande :

Code : Tout sélectionner

LC_ALL=C makepkg -s
A+
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jaco »

@jean_no : ça fait exactement la même chose :(

Le pire est que je peux installer ruby 1.9.3 par le système rvm et ça marche nickel. Mais j'aimerai comprendre pourquoi une compilation "classique" échoue alors que le paquetage précompilé existe...

J'ai aussi installé une Debian Sid dans Virtual Box... Il existe déjà un paquetage précompilé pour ruby 1.9.3 pour cette distribution et, pourtant, ça fait pareil : plantage de la compilation au même endroit avec le même message d'erreur...
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] qu'est-ce que j'oublie ?

Message par benjarobin »

J'ai testé et je n'ai eu aucun problème à compiler sur ma machine... Je ne sais que te dire
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jaco »

@benjarobin : à part être la proie d'un sorcier vaudou, j'ai du mal à comprendre pourquoi "./configure && make" ne marche sur aucune de mes distributions (toutes différentes, mises à part l'environnement linguistique, évidemment).

Si ça compile chez toi, ça me rassure quelque part... Par contre, ça veut aussi dire que je ne maîtrise pas un paramètre de mon environnement... Et, ça, ça aurait tendance à un peu m'inquiéter.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] qu'est-ce que j'oublie ?

Message par benjarobin »

Donne la sortie de: locale
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jaco »

Code : Tout sélectionner

% locale
LANG=fr_FR.utf8
LC_CTYPE="fr_FR.utf8"
LC_NUMERIC="fr_FR.utf8"
LC_TIME="fr_FR.utf8"
LC_COLLATE="fr_FR.utf8"
LC_MONETARY="fr_FR.utf8"
LC_MESSAGES="fr_FR.utf8"
LC_PAPER="fr_FR.utf8"
LC_NAME="fr_FR.utf8"
LC_ADDRESS="fr_FR.utf8"
LC_TELEPHONE="fr_FR.utf8"
LC_MEASUREMENT="fr_FR.utf8"
LC_IDENTIFICATION="fr_FR.utf8"
LC_ALL=
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] qu'est-ce que j'oublie ?

Message par benjarobin »

Si je ne dis pas de bêtise l'UTF-8 doit être écrit comme je l'ai marqué, cela donne donc: fr_FR.UTF-8
Je suis très étonné que tu n'es aucun problème plus important ni de message d'erreur.
Corrige ton rc.conf ainsi que ton /etc/locale.gen et donne la sortie de

Code : Tout sélectionner

grep -v "#" /etc/locale.gen
locale-gen
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jaco »

Euh...

Je n'ai rien à corriger vu que c'est comme ça qu'est écrit UTF-8 dans rc.conf et locale.gen...

Code : Tout sélectionner

% grep -i utf /etc/rc.conf
LOCALE="fr_FR.UTF-8"

% grep -v "#" /etc/locale.gen
en_US.UTF-8 UTF-8  
en_US ISO-8859-1  
fr_FR.UTF-8 UTF-8  
fr_FR ISO-8859-1  
fr_FR@euro ISO-8859-15  

Mais, encore une fois : j'ai exactement la même erreur sur Ubuntu (stable et testing) et avec Debian Sid où ces locales ne sont pas entrées "à la main"...
De plus, en googueulisant sur le message d'erreur, on tombe sur des pastebin identiques (mais, malheureusement, sur aucune explication/solution)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] qu'est-ce que j'oublie ?

Message par benjarobin »

La sortie de locale m'intrigue beaucoup comme même.
Quel est la sortie de echo $LANG
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jaco »

Code : Tout sélectionner

% echo $LANG
fr_FR.utf8
Ça donne quoi, chez toi ?

(PS: et comme pour me narguer, le paquet ruby 1.9.3 est arrivé dans extra :( )
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Compilation] qu'est-ce que j'oublie ?

Message par FoolEcho »

benjarobin a écrit :Si je ne dis pas de bêtise l'UTF-8 doit être écrit comme je l'ai marqué, cela donne donc: fr_FR.UTF-8
Ça ne fera pas avancer le problème, mais dissipera les doutes à ce sujet: fr_FR.utf8 fonctionne aussi. :chinois:
«The following statement is not true. The previous statement is true.» :nage:
jean_no
yeomen
Messages : 285
Inscription : dim. 09 sept. 2007, 12:19

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jean_no »

Bonsoir

j'ai effectué des tests de compilation
1) $ makepkg -s => me donne la même erreur que toi.
2) $ LC_ALL=C makepkg -s => compilation OK; à noter que tous les messages sont en anglais.

pour info voici les résultats des commandes dont tu as fournis les sorties ( identiques aux tiennes !)

Code : Tout sélectionner

$ locale
LANG=fr_FR.utf8
LC_CTYPE="fr_FR.utf8"
LC_NUMERIC="fr_FR.utf8"
LC_TIME="fr_FR.utf8"
LC_COLLATE="fr_FR.utf8"
LC_MONETARY="fr_FR.utf8"
LC_MESSAGES="fr_FR.utf8"
LC_PAPER="fr_FR.utf8"
LC_NAME="fr_FR.utf8"
LC_ADDRESS="fr_FR.utf8"
LC_TELEPHONE="fr_FR.utf8"
LC_MEASUREMENT="fr_FR.utf8"
LC_IDENTIFICATION="fr_FR.utf8"
LC_ALL=

$ grep -v "#" /etc/locale.gen
fr_FR.UTF-8 UTF-8  
fr_FR ISO-8859-1  
fr_FR@euro ISO-8859-15

$ echo $LANG
fr_FR.utf8
Bon courage et A+

PS : pour faire des paquets tu peux te servir de :
https://wiki.archlinux.org/index.php/De ... ean_Chroot
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] qu'est-ce que j'oublie ?

Message par benjarobin »

FoolEcho a écrit :Ça ne fera pas avancer le problème, mais dissipera les doutes à ce sujet: fr_FR.utf8 fonctionne aussi. :chinois:
J'ai un doute comme même, c'est une locale qui n'existe pas, donc je ne vois pas pourquoi cela fonctionnerait

C'est quoi vos environnements ? Depuis un tty, tu as toujours la même chose (echo $LANG) ?
Que donne la compilation depuis un tty ?
Si tu utilise abs, il faut bien penser à nettoyer tous les fichiers de l'ancienne compilation (src + pkg)
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Compilation] qu'est-ce que j'oublie ?

Message par FoolEcho »

benjarobin a écrit :J'ai un doute comme même, c'est une locale qui n'existe pas, donc je ne vois pas pourquoi cela fonctionnerait
Toujours est-il que c'est le cas (locale ne dit rien après EXPORT comme quoi la variable n'existe pas-- et c'est bien de l'unicode: ça ne prend pas le fr_FR qui est ISO). D'ailleurs si tu fais un locale -a, tu verras que ça te sort bien fr_FR.utf8 comme valeurs potentielles (d'ailleurs pour anecdote, j'ai longtemps pensé que c'était le fr_FR.UTF-8 qui était louche :) ).
Par contre, que $LANG chez jaco ne colle pas avec ce qu'indique son rc.conf, ça c'est louche...
jean_no a écrit :j'ai effectué des tests de compilation
1) $ makepkg -s => me donne la même erreur que toi.
2) $ LC_ALL=C makepkg -s => compilation OK; à noter que tous les messages sont en anglais.
En ce qui me concerne, comme benjarobin, j'arrive sans problème à compiler la chose en partant du PKGBUILD, même en fr_FR.utf8 (bon après je ne suis pas en machine virtuelle, je ne vois pas bien pourquoi mais y a que ça à mon sens qui pose problème) :|

... et depuis le début, je n'ai toujours pas compris pourquoi jaco veut le compiler vu que le paquet révisé existe au moins sur Arch (et hors testing maintenant). :fou:
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jaco »

1) Le truc est que, chez moi, ça me fait la même erreur, LC_ALL=C ou pas :(

2) Pour cette histoire de $LANG, je n'en sais pas plus : j'ai suivi le wiki pour l'installation et je n'ai jamais rencontré aucun problème (d'ailleurs, c'est pareil pour jean_no et, chez lui, la compil passe avec LC_ALL... pas chez moi).

3) En outre, je le répète, ça me fait pareil sur TOUTES les distribs que j'ai testée (donc la Arch de ma machine et toutes les distribs qui tournent dans mes machines virtuelles). J'ai un peu de mal à croire que Virtual Box y soit pour quelque chose... Chacune de ces distribs utilisent un autre mécanisme pour la mise en place des locales.


Et, pour répondre à FoolEcho : j'ai évidemment installé le package maintenant qu'il est dispo mais, de toutes façons, j'avais installé Ruby 1.9.3 via le système rvm et ça marchait parfaitement. Y a juste que j'aime bien comprendre et que je n'aurai de cesse de comprendre pourquoi cette compilation ne fonctionne pas... :)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] qu'est-ce que j'oublie ?

Message par benjarobin »

Je pense que tout le monde ici aimerait comprendre aussi.
Peux tu faire vite fait le test depuis un tty (Pense bien à repartir avec uniquement le PKGBUILD et les patch, mais pas de dossier pkg ni src) ?
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jaco »

benjarobin a écrit : C'est quoi vos environnements ? Depuis un tty, tu as toujours la même chose (echo $LANG) ?
Que donne la compilation depuis un tty ?
Dans un tty, $LANG vaut fr_FR.UTF-8 (donc avec les majuscules), mais ça ne change rien : j'avais également testé pour innocenter mon environnement graphique... Même punition.
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jaco »

benjarobin a écrit :Je pense que tout le monde ici aimerait comprendre aussi.
Peux tu faire vite fait le test depuis un tty (Pense bien à repartir avec uniquement le PKGBUILD et les patch, mais pas de dossier pkg ni src) ?
J'avais fait le ./configure et make depuis un tty, mais ça faisait pareil...

Je vais retester avec ABS, pour voir...
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [Compilation] qu'est-ce que j'oublie ?

Message par jaco »

Suite des expériences...

Code : Tout sélectionner

% sudo abs
(...)
Déjà, pas de bol, le extra/ruby/PKGBUILD est celui de la version précédente (la 1.9.2).
Donc, pour tester le nouveau paquetage, je récupère le PKGBUILD dispo ici : http://goo.gl/BoJTz

Environnement = xterm dans Gnome-Shell :

Code : Tout sélectionner

% mkdir ~/abs/ruby1.9.3
% cd ~/abs/ruby1.9.3
(... copiage du PKGBUILD dans ce répertoire)
% makepkg -s          
==> Création du paquet ruby 1.9.3_p0-1 (mar. nov.  8 21:13:01 CET 2011)
==> Vérification des dépendances pour l'exécution...
==> Vérification des dépendances pour la compilation...
==> Récupération des sources...
  -> Téléchargement de ruby-1.9.3-p0.tar.bz2...
--2011-11-08 21:13:01--  ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.bz2
           => «ruby-1.9.3-p0.tar.bz2.part»
(...) 
==> Nettoyage de l'installation...
  -> Suppression d'autres fichiers...
  -> Compression des pages de man/info...
  -> Strip des symboles inutiles dans les binaires et les bibliothèques...
  -> Suppression des répertoires vides... 
==> Création du paquet... 
  -> Génération du fichier .PKGINFO...
  -> Compression du paquet... 
==> Quitte l'environnement fakeroot.
==> Création finie: ruby 1.9.3_p0-1 (mar. nov.  8 21:27:30 CET 2011)
% ls
pkg       ruby-1.9.3_p0-1-x86_64.pkg.tar.xz  ruby-docs-1.9.3_p0-1-x86_64.pkg.tar.xz
PKGBUILD  ruby-1.9.3-p0.tar.bz2              src
Donc, bref, la haine... voilà que c'est tombé en marche alors que je suis sûr et certain d'avoir essayé plusieurs fois, y compris avec le LC_ALL=C suite au post de jean_no.

La seule différence est que j'ai fait les mises à jour publiées aujourd'hui... mais je n'ai rien vu passer qui ait quelque chose à voir avec mon problème.

Par acquis de conscience, je recommence à la main :

Code : Tout sélectionner

% rm -rf pkg src
% tar xjvf ruby-1.9.3-p0.tar.bz2
% cd ruby-1.9.3-p0
% ./configure
(...)
% make
(...)
%
Et allez... ça marche aussi :(

Une hypothèse serait que je récupérais la mauvaise archive mais j'en doute car 1) je l'ai récupérée plusieurs fois pour tester sur mes différents systèmes et 2) je suis sûr d'avoir tester le makepkg hier... Donc, je n'ai aucune explication valable et je pars me réfugier sur une île déserte.
Répondre