Articles
Résultat
Voici le résultat en ligne de nombreuses heures de travail: W3C Validator.
Installation
- Téléchargement CVS
cd ~/project/cvs/ export CVSROOTTMP=$CVSROOT export CVSROOT=":pserver:anonymous@dev.w3.org:/sources/public" cvs login # le mot de passe est anonymous cvs get validator export CVSROOT=$CVSROOTTMP
- Pré-requis #1, openSP. Je n'ai aucune idée comment détecté la version, mais on peut regarder avec un 'openjad<tab>' si le programme openjade est présent. Remarque: j'ai du recompilé openSP en français, voir l'étape 17.
- Euh? qu'est-ce qu'on fait après avoir fait ça? Je vais regardé dans project/cvs/validator/htdocs/index.html
- Peut-être si je l'essais avec mon serveur... Copie des fichiers dans les bons répertoires...
cp -R validator/htdocs/ ~/public_html/w3c-validator/ su cp validator/httpd/cgi-bin/ch* /var/www/cgi-bin/ mkdir /usr/local/validator/ cp -R validator/share/ /usr/local/validator/ mkdir /etc/w3c cp validator/htdocs/config/* /etc/w3c/
- (à ne pas faire) Test #1 avec serveur, le lien vers le formulaire n'est pas valide. Correction de la page index.html en changeant le texte action="check" à action="/cgi-bin/check". On dirait que je n'ai pas SSL aussi.
- (à ne pas faire) Bon le script ne fonctionne pas, en regardant le script, je viens de m'apercevoir que j'ai oublié l'étape de copier les templates partagé. Correction faite, ca ne fonctionne pas plus.
- Je viens de remarquer ce qu'il me manquait, les configurations du httpd.conf (voir fichier httpd/conf/httpd.conf --> /etc/httpd/conf/httpd.conf). Bon je remet l'attribut "action" du formulaire check. Et je modifie en conséquence leur code pour accéder au bon répertoire. Et je redémarre le serveur /usr/sbin/apachectl -k restart
- Il faut que j'installe le Config/General.pm 2.06 de perl
wget http://www.cpan.org/modules/by-category/02_Perl_Core_Modules/Config/Config-General-2.06.tar.gz # http://www.cpan.org/modules/by-category/02_Perl_Core_Modules/Config/Config-General-2.06.readme tar xzvf Config-General-2.06.tar.gz cd Config-General-2.06 perl Makefile.PL make make test make install cd ..
- Aussi, le HTML/Template 2.6 de perl
wget http://www.cpan.org/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/HTML/HTML-Template-2.6.tar.gz # http://www.cpan.org/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/HTML/HTML-Template-2.6.readme tar xzvf HTML-Template-2.6.tar.gz cd HTML-Template-2.6 perl Makefile.PL make make test make install cd ..
- Aussi, le Set/Intspan de perl
wget http://www.cpan.org/modules/by-module/Set/Set-IntSpan-1.07.tar.gz # http://www.cpan.org/modules/by-module/Set/Set-IntSpan-1.07.readme tar xzvf Set-IntSpan-1.07.tar.gz cd Set-IntSpan-1.07 perl Makefile.PL make make test make install cd ..
- Aussi, le Text/Text-Iconv de perl
wget http://www.cpan.org/modules/by-module/Text/Text-Iconv-1.2.tar.gz # http://www.cpan.org/modules/by-module/Text/Text-Iconv-1.2.readme tar xzvf Text-Iconv-1.2.tar.gz cd Text-Iconv-1.2 perl Makefile.PL make make test make install cd ..
- Installation de libwww-perl 5.8
perl -MCPAN -e 'install Bundle::LWP'
- Après avoir regardé sur le site de http://www.sslug.dk/emailarkiv/teknik/2003_01/msg00350.html, j'ai regardé le fichier /var/log/httpd/error_log pour voir l'erreur. Il me dit:
Can't locate Apache/Registry.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at (eval 1) line 3.!, referer: http://localhost:8080/w3c-validator/index.html
L'erreur est causé parce que je n'ai pas ModPerl 1 mais ModPerl 2. J'ai changé dans le httpd.conf la ligne Apache::Registry par ModPerl::Registry. Ce qui a causé une erreur d'assertion.Assertion ((sv)->sv_flags & (0x00002000|0x00004000|0x00008000)) failed: file "mg.c", line 63 at /var/www/html/w3c-validator/check line 156.
J'ai commenté la ligne 156 (où on efface la variable %ENV). Cette erreur a été décrite sur un forum.
- Et une autre erreur:
Can't locate object method "FILENO" via package "Apache::RequestRec" at /usr/lib/perl5/5.8.0/IPC/Open3.pm line 196.
Pour corriger le problème j'ai commenté le module#use Open3
- Pour remplacer le open3(): http://www.alphalink.com.au/~ord/home/validator.html
- Hum, il semble que j'ai deux version de la commande (onsgmls)
Le bon est dans le répertoire /usr/local/bin/onsgmls. J'ai donc modifié la ligne:
SGML_Parser => '/usr/local/bin/onsgmls',
- Installation de openSP 1.5
wget http://download.sourceforge.net/openjade/OpenSP-1.5.tar.gz tar xzvf OpenSP-1.5.tar.gz cd OpenSP-1.5 ./configure
Attention!! Attention!!! Pour avoir les messages en français il faut faire:
- Aller dans le répertoire po/ (cd po/)
- Éditer le fichier Makefile (vi Makefile)
- Rechercher la ligne Catalogs et ajouter fr.gmo pour avoir ceci: CATALOGS = fr.gmo
- Revenir en ligne de commande et configurer la variable LANG à fr_CA ( export LANG=fr_CA )
make make check make install cd ..
- Pour utiliser le bon répertoire de recherche des DTD je n'utilise plus la variable d'environnement SGML_SEARCH_PATH. J'ai rajouté l'option -D /usr/local/validator/htdocs/sgml-lib à la ligne de commande.
Traduction avec xgettext ?
J'essai présentement de traduire les messages avec xgettext. Première étape, installer le package libint-perl.
# (en root) wget http://search.cpan.org/CPAN/authors/id/G/GU/GUIDO/libintl-perl-1.10.tar.gz tar xzvf libintl-perl-1.10.tar.gz cd libintl-perl-1.10 perl Makefile.PL make make test make install cd ..
Bon, il me reste plus qu'à comprendre comment le mettre dans le script check. Voir l'exemple SimpleCal.
Hyperliens...