OVH Cloud OVH Cloud

[FreeBSD] Questions sur les ports (Xfree) et Eclipse (Java)

7 réponses
Avatar
Nicolas Le Scouarnec
Bonjour,

Je suis actuellement sur la branche RELENG5, avec un cvsup qui date
d'hier ou avant-hier.

J'aurais deux questions sur les ports, une première sur l'apparition du
port xorg. Je suppose que c'est lié au changement de licence de Xfree,
mais quelle branche est-il le plus judicieux de suivre ? Xfree86 ?
Xorg ? ou alors on ne peut pas savoir ?

La deuxieme concerne le port d'Eclipse. J'ai installé Eclipse
(/usr/ports/java/eclipse) et mis a jour tous les ports dépendants, ca
m'a installé deux JavaVM (Sun 1.4), une première compilée pour Linux et
la deuxieme pour FreeBSD, tout c'est bien passé, enfin, je crois, mais
maintenant... Ca plante.

Ca affiche le logo Eclipse, ca me demande le répertoire de travail, et
puis:

---------
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 10 occurred at PC=0x34DFADEF
Function=_gtk_tree_view_queue_draw_node+0x1716
Library=/usr/X11R6/lib/libgtk-x11-2.0.so.400

Current Java thread:
at org.eclipse.swt.internal.gtk.OS.gtk_container_add(Native Method)
- locked <0x30840450> (a java.lang.Class)
at org.eclipse.swt.widgets.Tree.createHandle(Tree.java:249)
[...]
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
at org.eclipse.core.launcher.Main.run(Main.java:644)
at org.eclipse.core.launcher.Main.main(Main.java:628)

Ensuite, la liste des bibliothèques dynamique (longue)
Et "Heap at VM Abort:"

Local Time = Tue Sep 21 22:59:55 2004
Elapsed Time = 15
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.2-p6-root_21_sep_2004_19_58
# mixed mode)
#
-----------

Je ne sais pas du tout vers où regarder... J'ai fais une betise ? Je ferais
mieux de m'orienter vers la sociologie ou la psychologie ? Je n'ai qu'a
tout réinstaller, normalement, ca marche ?


--
Nicolas Le Scouarnec

7 réponses

Avatar
Thierry Thomas
Mardi 21 septembre 2004 à 21:14 GMT, Nicolas Le Scouarnec a écrit :
Bonjour,


Bonsoir,

Je suis actuellement sur la branche RELENG5, avec un cvsup qui date
d'hier ou avant-hier.

J'aurais deux questions sur les ports, une première sur l'apparition du
port xorg. Je suppose que c'est lié au changement de licence de Xfree,
mais quelle branche est-il le plus judicieux de suivre ? Xfree86 ?
Xorg ? ou alors on ne peut pas savoir ?


Je ne pense pas que la licence soit un problème, et d'ailleurs les deux
sont dans les ports.

J'ai passé des machines en xorg, et en ai gardé en XFree. L'intérêt
d'xorg c'est que le projet est plus actif, un grand nombre de
nouveautés sont prévues, et on peut supposer que les nouvelles cartes
seront prises en compte plus rapidement par xorg.

[snip Eclipse - je ne sais pas... Si pas de réponse ici, tenter la liste
java@]
--
Th. Thomas.

Avatar
Nicolas Le Scouarnec
La deuxieme concerne le port d'Eclipse. J'ai installé Eclipse
(/usr/ports/java/eclipse) et mis a jour tous les ports dépendants, ca
m'a installé deux JavaVM (Sun 1.4), une première compilée pour Linux et
la deuxieme pour FreeBSD, tout c'est bien passé, enfin, je crois, mais
maintenant... Ca plante.

Library=/usr/X11R6/lib/libgtk-x11-2.0.so.400
# The exception above was detected in native code outside the VM


En passant, si ca peut aider quelqu'un a trouver une idée plus
judicieuse, en compilant Eclipse avec: WITH_MOTIF=1 WITHOUT_GNOMEVFS=1
ca marche "parfaitement", enfin, c'est moins esthétique.

--
Nicolas Le Scouarnec

Avatar
pornin
According to Nicolas Le Scouarnec :
J'aurais deux questions sur les ports, une première sur l'apparition du
port xorg. Je suppose que c'est lié au changement de licence de Xfree,
mais quelle branche est-il le plus judicieux de suivre ? Xfree86 ?
Xorg ? ou alors on ne peut pas savoir ?


Xorg est la voie "canonique". Les dépendances des différents ports
s'expriment envers Xorg plutôt que XFree86 ; on peut utiliser XFree86,
mais ça fait des warnings (pas graves, mais inesthétiques) lors de la
compilation des ports.

Au moment du split, par définition, Xorg et XFree86 étaient identiques.
Ensuite, on peut faire des prospectives sur lequel des deux projets sera
le plus réactif, le plus stable, le mieux supporté, etc... À la louche,
puisque (à peu près) tous les Unixoïdes libres passent à Xorg, il y a
des chances pour que Xorg soit le candidat gagnant.


Grâce à Xorg, il maintenant autorisé de dire du mal de XFree86 (sans se
prendre en retour un "toi qui te crois malin, montre ton code qui fait
mieux"). Prochaine étape : gcc.


La deuxieme concerne le port d'Eclipse. J'ai installé Eclipse
(/usr/ports/java/eclipse) et mis a jour tous les ports dépendants, ca
m'a installé deux JavaVM (Sun 1.4), une première compilée pour Linux et
la deuxieme pour FreeBSD, tout c'est bien passé, enfin, je crois, mais
maintenant... Ca plante.


Le compilateur Java est écrit en Java, donc la compilation de la JVM
avec les classes runtime nécessite une autre JVM pour le bootstrap.
Voilà pourquoi le port installe d'abord a JVM 1.4 Linux (en émulation,
téléchargée sous forme binaire) puis s'en sert pour compiler la JVM
native. À la fin, les deux JVM cohabitent ; on peut supprimer la JVM
1.4 Linux, mais tant qu'on a de la place sur le disque, cette JVM ne
fait pas de mal. "/usr/local/etc/javavms" permet de spécifier les JVMs
installées ; la première indiquée est celle par défaut.


Ca affiche le logo Eclipse, ca me demande le répertoire de travail, et
puis:

---------
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 10 occurred at PC=0x34DFADEF
Function=_gtk_tree_view_queue_draw_node+0x1716
Library=/usr/X11R6/lib/libgtk-x11-2.0.so.400


Signal 10 = SIGBUS

Ça veut dire que ce code fait des appels à du code natif (i.e., du code
en C ou C++ ou whatever, pas du code Java) (apparemment, il s'agit de
wrappers autour de gtk+ pour faire une API gtk+ depuis le programme
Java), et ce code natif est buggué et plante.

C'est pas de chance.


--Thomas Pornin

Avatar
Patrick Lamaizière
mais quelle branche est-il le plus judicieux de suivre ? Xfree86 ?
Xorg ? ou alors on ne peut pas savoir ?


Ama XOrg, les releases béta de FreeBSD5.3 sont livrées avec celui-ci.

Avatar
Nicolas Le Scouarnec
Au moment du split, par définition, Xorg et XFree86 étaient identiques.
Ensuite, on peut faire des prospectives sur lequel des deux projets sera
le plus réactif, le plus stable, le mieux supporté, etc... À la louche,
puisque (à peu près) tous les Unixoïdes libres passent à Xorg, il y a
des chances pour que Xorg soit le candidat gagnant.


Merci pour le conseil, quand j'aurais le temps, je ferais le changement
alors.

Grâce à Xorg, il maintenant autorisé de dire du mal de XFree86 (sans se
prendre en retour un "toi qui te crois malin, montre ton code qui fait
mieux"). Prochaine étape : gcc.


Enfin, la base du code, ca reste XFree86, non ?

Le compilateur Java est écrit en Java, donc la compilation de la JVM
avec les classes runtime nécessite une autre JVM pour le bootstrap.


Oui, ca je savais.

An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 10 occurred at PC=0x34DFADEF
Function=_gtk_tree_view_queue_draw_node+0x1716
Library=/usr/X11R6/lib/libgtk-x11-2.0.so.400
Ça veut dire que ce code fait des appels à du code natif (i.e., du code

en C ou C++ ou whatever, pas du code Java) (apparemment, il s'agit de
wrappers autour de gtk+ pour faire une API gtk+ depuis le programme
Java), et ce code natif est buggué et plante.


Merci, je comprend mieux.

C'est pas de chance.


J'ai compilé en liant Eclipse a Motif et ca passe bien si certaines
personnes rencontrent le meme probleme. Par contre, c'est surement
moins beau.



--
Nicolas Le Scouarnec


Avatar
Thierry Thomas
Mercredi 22 septembre 2004 à 07:35 GMT, Thomas Pornin a écrit :

Xorg est la voie "canonique". Les dépendances des différents ports
s'expriment envers Xorg plutôt que XFree86 ; on peut utiliser XFree86,
mais ça fait des warnings (pas graves, mais inesthétiques) lors de la
compilation des ports.


On peut même faire ça proprement : il suffit d'ajouter

X_WINDOW_SYSTEM= xfree86-4

dans /etc/make.conf.
--
Th. Thomas.

Avatar
pornin
According to Nicolas Le Scouarnec :
Enfin, la base du code, ca reste XFree86, non ?


Oui, certes, mais quand il s'agit de dire du mal, ça n'a pas
d'importance. Il suffit de monter en épingle les subtiles différences.
Un peu comme quand on compare NetBSD et OpenBSD.

--Thomas Pornin