Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

tkhtml pour les nuls

19 views
Skip to first unread message

Master ZU

unread,
Nov 17, 2009, 12:10:25 PM11/17/09
to
bonjour,

je cherche a mettre un mini visionneur HTML pour l'intégrer a une
application.

Apres avoir été faire un tour sur wfr.tcl.tk, j'ai vu des pages
parlant de tkhtml.

Mon probleme est d'arriver à installer ce truc chez moi -- linux
ubuntu 8.04 -- car apparemment il faut le compiler ?! pour du tcl
c'est un comble non ?

Gérard Mouton

unread,
Nov 17, 2009, 4:02:09 PM11/17/09
to

Bonjour,

Ce n'est pas un comble, il suffit de récupérer l'archive tar.gz sur
le site http://tkhtml.tcl.tk/index.html, dans laquelle
se trouve un fichier COMPILE.TXT expliquant la procédure pour
compiler, en gros:
>./configure
>make
>make install
pour au final la mise en place des fichiers libTkhtml3.so et
pkgindex.tcl dans le dossier /usr/local/lib/tkhtml3


Master ZU

unread,
Nov 18, 2009, 7:35:43 AM11/18/09
to
On 17 nov, 22:02, Gérard Mouton <mouto...@wanadoo.fr> wrote:
>
> Bonjour,
>
> Ce n'est pas un comble, il suffit de récupérer l'archive tar.gz  sur
> le sitehttp://tkhtml.tcl.tk/index.html, dans laquelle

> se trouve un fichier  COMPILE.TXT expliquant la procédure pour
> compiler,

bonjour,

tu pense bien que j'ai essayé les deux methodes proposé par le fichier
COMPILE.TXT:

* avec configure
$ ./configure
checking for correct TEA configuration... ok (TEA 3.5)
checking for Tcl configuration... configure: WARNING: Can't find Tcl
configuration definitions

je ne sais pas ce que cela veux dire ??
(Le fichier configure.in est pour le moins abscons lorqu'on ne connait
pas ce «TEA» )

* édition du fichier linux-gcc.mk comme ceci (mais la encore je ne
maitrise pas toutes les infos) et compilation dans un nouveau
répertoire
$ mkdir build; cd build; make -f ../linux-gcc.mk 2>&1 | tee make.log
...
$ cat make.log
COMPILE = gcc -O2 -Wall -DNDEBUG -DHTML_MACROS -DTKHTML_ENABLE_PROFILE
-I/home/patrick/tcl/include -I. -I/home/patrick/devel/aerodynamics/
aerodynamics+tkaerodynamics/gui-tk/htmlwidget/src/ -DUSE_TCL_STUBS -
DUSE_TK_STUBS
TCLSH = tclsh
[...]
$(COMPILE) -c /home/patrick/devel/aerodynamics/aerodynamics
+tkaerodynamics/gui-tk/htmlwidget/src/htmlparse.c -o htmlparse.o
In file included from /home/patrick/devel/aerodynamics/aerodynamics
+tkaerodynamics/gui-tk/htmlwidget
/src/htmlparse.c:41:
/home/patrick/devel/aerodynamics/aerodynamics+tkaerodynamics/gui-tk/
htmlwidget/src/html.h:62:16: err
or: tk.h: No such file or directory
In file included from /home/patrick/devel/aerodynamics/aerodynamics
+tkaerodynamics/gui-tk/htmlwidget
/src/html.h:145,
from /home/patrick/devel/aerodynamics/aerodynamics
+tkaerodynamics/gui-tk/htmlwidget
/src/htmlparse.c:41:
/home/patrick/devel/aerodynamics/aerodynamics+tkaerodynamics/gui-tk/
htmlwidget/src/css.h:43:17: erro
r: tcl.h: No such file or directory

[... pleins d'erreur de compilation ...]

Peut etre un truc a voir avec tk.h et tcl.h mais je m'y perds

Eric Hassold

unread,
Nov 18, 2009, 9:53:30 AM11/18/09
to
Master ZU a �crit :

> On 17 nov, 22:02, G�rard Mouton <mouto...@wanadoo.fr> wrote:
>> Bonjour,
>>
>> Ce n'est pas un comble, il suffit de r�cup�rer l'archive tar.gz sur

>> le sitehttp://tkhtml.tcl.tk/index.html, dans laquelle
>> se trouve un fichier COMPILE.TXT expliquant la proc�dure pour
>> compiler,
>
> bonjour,
>
> tu pense bien que j'ai essay� les deux methodes propos� par le fichier

> COMPILE.TXT:
>
> * avec configure
> $ ./configure
> checking for correct TEA configuration... ok (TEA 3.5)
> checking for Tcl configuration... configure: WARNING: Can't find Tcl
> configuration definitions
>
> je ne sais pas ce que cela veux dire ??
> (Le fichier configure.in est pour le moins abscons lorqu'on ne connait
> pas ce �TEA� )

Bonjour,

Ce message veut dire (assez explicitement) que vous ne disposez pas des
headers et fichiers de configurations de Tcl. Si vous compilez vous-meme
Tcl, ces fichiers sont installes sur le systeme automatiquement a la fin
de la procedure d'installation. Mais dans le cas (classique) ou vous
utilisez l'interprete Tcl de votre distribution Linux, cela signifie
simplement que, bien que vous ayez installe les paquetages tcl8.5 et
tk8.5, vosu n'avez pas installe les paquetages de developpement
tcl8.5-dev et tk8.5-dev. En plus clair, il vous faut au prealable faire,
depuis le shell systeme:

sudo apt-get install tcl8.5-dev tk8.5-dev

(ou utiliser le gestionnaire graphique de paquetages, a votre gre).

Ensuite, tout devrait a peu pres bien se passer :p


Ceci dit, pour abonder dans le sens de ce que dit Gerard, il n'y a pas
de comble la dedans. Oui, un code Tcl pur est installable et executable
sans difficulte, mais Tcl, c'est aussi un ensemble d'extensions natives,
et il faut bien que quelqu'un se colle a les compiler, tester et
distribuer. Ces versions compilees pourraient etre comprise dans la
distribution Linux standard, mais, il faut bien l'admettre, Tcl a du mal
a traduire ses atouts en popularite, et les volontaires pour maintenir
ces paquets ne se pressent pas au portillon. Il y a ensuite les
distributions binaires maintenues par des tiers, en general pour
plusieurs plate-formes (e.g. ActiveTcl, tclkit, eTcl, ...), qui peuvent
se substituer a celles de la distribution linux. Dans le cas present, je
peux vous confirmer que eTcl integre directement la derniere version de
tkhtml, et que sur le site d'Evolane, vous trouverez une version
correspondante du navigateur hv3 sous forme de kit, ce qui peut servir
de bon point de depart pour ecrire un widget de rendu html.

<flame>
Se casser les dents sur la compilation d'une extension a au moins le
merite de mettre en avant que le travail de maintenance d'une
distribution binaire n'est pas si trivial, et qu'il repond a un besoin
de beaucoup d'utilisateur qui n'ont pas envie de s'impliquer dans le
(parfois lourd) process de compilation. Si tout le monde devait
recompiler son propre firefox avant de l'utiliser, je ne suis pas sur
que firefox gagnerait tant de part de marche. Il en va de meme pour Tcl
</flame>

Eric

Master ZU

unread,
Nov 20, 2009, 11:15:17 AM11/20/09
to
On 18 nov, 15:53, Eric Hassold <hass...@evolane.com> wrote:
>
> Bonjour,

bonjour eric,

> Ce message veut dire (assez explicitement) que vous ne disposez pas des
> headers et fichiers de configurations de Tcl. Si vous compilez vous-meme
> Tcl, ces fichiers sont installes sur le systeme automatiquement a la fin
> de la procedure d'installation. Mais dans le cas (classique) ou vous
> utilisez l'interprete Tcl de votre distribution Linux, cela signifie
> simplement que, bien que vous ayez installe les paquetages tcl8.5 et
> tk8.5, vosu n'avez pas installe les paquetages de developpement
> tcl8.5-dev et tk8.5-dev. En plus clair, il vous faut au prealable faire,
> depuis le shell systeme:
>
>    sudo apt-get install tcl8.5-dev tk8.5-dev
>
> (ou utiliser le gestionnaire graphique de paquetages, a votre gre).
>
> Ensuite, tout devrait a peu pres bien se passer :p

Apres avoir envoyé ma question, j'ai continué à grater et enfin réussi
a compiler. Mais ce n'est pas si trivial que cela.
Un petit résumé de mes aventures:

* collecte d'informations
tcl:
$ for p in `locate tclConfig.sh`; do file $p; done
/usr/lib/tcl8.4/tclConfig.sh: symbolic link to `../../share/tcltk/
tcl8.4/tclConfig.sh'
/usr/share/tcltk/tcl8.4/tclConfig.sh: ASCII English text, with very
long lines

tk:
$ for p in `locate tkConfig.sh`; do file $p; done
/usr/lib/tk8.4/tkConfig.sh: symbolic link to `../../share/tcltk/tk8.4/
tkConfig.sh'
/usr/share/tcltk/tk8.4/tkConfig.sh: ASCII English text, with very long
lines

chemin pour la librairie: libtkhtml.so:
$ for p in `echo 'foreach p $auto_path {puts $p} ' | tclsh |grep
local`; do file $p; done
/usr/local/lib/tcltk: ERROR: cannot open `/usr/local/lib/tcltk' (No
such file or directory)
/usr/local/share/tcltk: ERROR: cannot open `/usr/local/share/
tcltk' (No such file or directory)

chemin pour le fichier man: tkhtml.n:
$ for p in `manpath|sed 's/:/\n/g'|grep local`; do file $p; done
/usr/local/man: symbolic link to `share/man'
/usr/local/share/man: directory

* Compilation
$ ./configure --with-tcl=/usr/lib/tcl8.4 --with-tk=/usr/lib/tk8.4 \
--libdir=/usr/local/share/tcltk \
--mandir=/usr/local/share/man
$ make

* Installation
test installation
$ mkdir `pwd`/install
$ make DESTDIR=`pwd`/install install
...
$ find install/
install/
install/usr
install/usr/include
install/usr/bin
install/usr/local
install/usr/local/share
install/usr/local/share/tcltk
install/usr/local/share/tcltk/Tkhtml3.0
install/usr/local/share/tcltk/Tkhtml3.0/pkgIndex.tcl
install/usr/local/share/tcltk/Tkhtml3.0/libTkhtml3.0.so
install/usr/local/share/man
install/usr/local/share/man/mann
install/usr/local/share/man/mann/tkhtml.n

* installation
$ sudo make install

* Vérification
$ wish
% package require Tkhtml
3.0

et voila ... on est loin d'un long fleuve tranquille !!

>
> Ceci dit, pour abonder dans le sens de ce que dit Gerard, il n'y a pas
> de comble la dedans. Oui, un code Tcl pur est installable et executable
> sans difficulte, mais Tcl, c'est aussi un ensemble d'extensions natives,
> et il faut bien que quelqu'un se colle a les compiler, tester et
> distribuer. Ces versions compilees pourraient etre comprise dans la
> distribution Linux standard, mais, il faut bien l'admettre, Tcl a du mal
> a traduire ses atouts en popularite, et les volontaires pour maintenir
> ces paquets ne se pressent pas au portillon. Il y a ensuite les
> distributions binaires maintenues par des tiers, en general pour
> plusieurs plate-formes (e.g. ActiveTcl, tclkit, eTcl, ...), qui peuvent
> se substituer a celles de la distribution linux. Dans le cas present, je
> peux vous confirmer que eTcl integre directement la derniere version de
> tkhtml, et que sur le site d'Evolane, vous trouverez une version
> correspondante du navigateur hv3 sous forme de kit, ce qui peut servir
> de bon point de depart pour ecrire un widget de rendu html.

juste un mot concernant ma remarque et pour en finir avec les trool:
je ne savais pas que tcl pouvait charger si facilement des
librairies .so d'ou ma surprise sur la compilation. Jusque la je n'ai
vu que des widget «pure tk».

Mais cela n'etait nullement une critique de Tcl / tkhtml ou autre.


>
> <flame>
> Se casser les dents sur la compilation d'une extension a au moins le
> merite de mettre en avant que le travail de maintenance d'une
> distribution binaire n'est pas si trivial, et qu'il repond a un besoin
> de beaucoup d'utilisateur qui n'ont pas envie de s'impliquer dans le
> (parfois lourd) process de compilation. Si tout le monde devait
> recompiler son propre firefox avant de l'utiliser, je ne suis pas sur
> que firefox gagnerait tant de part de marche. Il en va de meme pour Tcl
> </flame>

Juste une autre remarque concernant la compilation: je ne connais pas
TEA mais c'est magique et tres propre !!! chapeau bas

Patrick

Kroc

unread,
Nov 23, 2009, 4:44:25 AM11/23/09
to
Si tu ne veux pas compiler, tu peux utiliser teapot : soit avec les
commandes prévues par ActiveState, soit en allant sur la page
d'index : http://teapot.activestate.com/index

1) Tu cherches tkhtml : http://teapot.activestate.com/entity/name/Tkhtml/ver/3.0/index

2) Tu télécharges la version pour ta plate-forme :
http://teapot.activestate.com/package/name/Tkhtml/ver/3.0/arch/linux-glibc2.3-ix86/file.zip

3) Tu décompresses et tu l'utilises

C'est beaucoup plus simple, non ?

--
David Zolli

Kroc

unread,
Nov 23, 2009, 4:47:52 AM11/23/09
to
On 23 nov, 10:44, I wrote:
> ... tu peux utiliser teapot : soit avec les
> commandes prévues par ActiveState ...

J'ai oublié de dire que pour utiliser teapot et teacup, tout est
expliqué là : http://wfr.tcl.tk/1436

--
David Zolli

Master ZU

unread,
Nov 23, 2009, 9:58:27 AM11/23/09
to

Merci david pour ces informations, comme toujours, precises et
precieuses :)

Mais j'ai reussi a compiler/installer tkhtml.

Le probleme maintenant c'est de l'utiliser !!!!

Cela doit etre tres simple mais bon ....

voici mon code qui donne:
Tkhtml version 3.0
GUI builed
HTML parsed
END
Segmentation fault

<code>
set _tkhtml [package require Tkhtml]
puts "Tkhtml version $_tkhtml"
pack [labelframe .fc -text HTML] -fill both -expand 1 -padx 5 -pady 5
html .fc.html
pack .fc.html
scrollbar .fc.vscroll -orient vertical -command { .fc.html yview}
pack .fc.vscroll -side right -fill y

pack [frame .fb] -fill x -expand 1 -side bottom -padx 5 -pady 5
pack [button .fb.bq -text Quit -command {exit}] -side left

puts "GUI builed"

.fc.html parse {<html><head></head><body>}
.fc.html parse {<H1>test</h1><p>blabla <a href="http://
www.ggogle.fr">Google FR</a>}
.fc.html parse -final {</body></
html>}
puts "HTML parsed"

puts "END"

</code>

Où est mon erreur ???

Kroc

unread,
Nov 24, 2009, 3:08:38 AM11/24/09
to
Il n'y a pas d'erreur : chez moi ton code fonctionne. Tu as essayé
dans eTcl ?

--
David Zolli

Master ZU

unread,
Nov 25, 2009, 8:43:29 AM11/25/09
to
On 24 nov, 09:08, Kroc <k...@kroc.tk> wrote:
> Il n'y a pas d'erreur : chez moi ton code fonctionne. Tu as essayé
> dans eTcl ?

non, mais cela marche avec la version téléchargé teapot mais pas celle
compilé par mes soins :(

C'est pas grave, je continue avec celle la.


Kroc

unread,
Nov 25, 2009, 6:48:00 PM11/25/09
to

Quand on vous dit que compiler ça n'est pas si trivial que ça ! C'est
pour ça que je n'utilise plus qu'eTcl, les librairies embarquées et du
Tcl pur (sauf si j'ai vraiment pas le choix). ;^)

--
David Zolli

0 new messages