Gentoo Archives: gentoo-commits

From: "Marion Age (titefleur)" <titefleur@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/proj/fr/apache/doc: developer.xml
Date: Wed, 30 Jul 2008 13:07:23
Message-Id: E1KOBOe-0005YH-R6@stork.gentoo.org
1 titefleur 08/07/30 13:07:16
2
3 Added: developer.xml
4 Log:
5 Copy to /doc directory
6
7 Revision Changes Path
8 1.1 xml/htdocs/proj/fr/apache/doc/developer.xml
9
10 file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/fr/apache/doc/developer.xml?rev=1.1&view=markup
11 plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/fr/apache/doc/developer.xml?rev=1.1&content-type=text/plain
12
13 Index: developer.xml
14 ===================================================================
15 <?xml version="1.0" encoding="UTF-8"?>
16 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
17 <!-- $Header $ -->
18
19 <guide link="/proj/fr/apache/doc/developer.xml" lang="fr">
20 <title>Documentation Apache pour les développeurs</title>
21
22 <author title="Auteur">
23 <mail link="vericgar@g.o">Michael Stewart</mail>
24 </author>
25 <author title="Traducteur">
26 <mail link="titefleur@g.o">Marion Agé</mail>
27 </author>
28
29 <abstract>
30 Ce document fournit des détails au sujet des nouvelles eclass disponibles pour
31 les développeurs des paquets relatifs à Apache.
32 </abstract>
33
34 <!-- The content of this document is licensed under the CC-BY-SA license -->
35 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
36 <license/>
37
38 <version>2.4</version>
39 <date>2007-07-30</date>
40
41 <chapter>
42 <title>À propos de ce document</title>
43 <section>
44 <body>
45
46 <p>
47 Ce document détaille les <uri link="#apache-module">nouvelles eclass</uri>,
48 <uri link="#changes">ce que nous avons changé</uri> depuis le précédent modèle
49 d'Apache, et la façon dont les ebuilds ont besoin d'être <uri
50 link="#ebuild-update">modifiés</uri> pour tenir compte des avantages de nos
51 nouvelles eclass. Si vous êtes un utilisateur à la recherche d'informations
52 pour la mise à jour d'Apache, veuillez plutôt consulter le documentation de la
53 <uri link="apache-upgrading.xml">mise à jour d'Apache</uri>.
54 </p>
55
56 </body>
57 </section>
58 </chapter>
59
60 <chapter id="changes">
61 <title>Ce qui a changé</title>
62 <section>
63 <title>Vue d'ensemble</title>
64 <body>
65
66 <p>
67 Nous avons fait beaucoup de changements concernant la procédure d'installation
68 et d'utilisation d'Apache et de ses modules sous Gentoo. Cela facilite les
69 tâches de maintenance et permet de suivre de près les versions en amont. Voici
70 nos changements&nbsp;:
71 </p>
72
73 <ul>
74 <li>Correction de nombreux <uri link="#buglist">bogues</uri></li>
75 <li>Changement des chemins d'installation et de configuration</li>
76 <li>
77 Création des eclass <uri link="#depend-apache">depend.apache</uri> et <uri
78 link="#apache-module">apache-module</uri>
79 </li>
80 <li>
81 Fusion des fichiers apache.conf et commonapache.conf en un seul fichier
82 très similaire à la version de base
83 </li>
84 <li>
85 Dédoublement de <c>apr</c> et <c>apr-utils</c> en-dehors du paquet
86 principal d'Apache pour ceux qui ne nécessitent plus Apache
87 </li>
88 <li>Mise à jour et estampillage d'une version pour presque chaque module</li>
89 <li>Mise à disposition d'un plus grand nombre de MPM</li>
90 <li>Ajout du support de lingerd</li>
91 <li>Fixation du support des longs fichiers</li>
92 <li><e>Et bien plus encore, je suis sûr que j'en oublie...</e></li>
93 </ul>
94
95 </body>
96 </section>
97 <section>
98 <title>Localisation des chemins d'Apache</title>
99 <body>
100
101 <p>
102 Afin de suivre de plus près l'installation d'Apache en amont et celle des
103 autres distributions, les chemins suivant ont changé&nbsp;:
104 </p>
105
106 </body>
107 </section>
108 <section>
109 <title>Apache 2.x</title>
110 <body>
111
112 <table>
113 <tr>
114 <th>Utilisation</th>
115 <th>Ancien chemin</th>
116 <th>Nouveau chemin</th>
117 </tr>
118 <tr>
119 <ti>Racine du serveur</ti>
120 <ti><path>/etc/apache2/</path></ti>
121 <ti><path>/usr/lib/apache2/</path></ti>
122 </tr>
123 <tr>
124 <ti>Répertoire de configuration</ti>
125 <ti><path>/etc/apache2/conf/</path></ti>
126 <ti><path>/etc/apache2/</path></ti>
127 </tr>
128 <tr>
129 <ti>Configuration</ti>
130 <ti><path>/etc/apache2/conf/apache2.conf</path></ti>
131 <ti><path>/etc/apache2/httpd.conf</path></ti>
132 </tr>
133 <tr>
134 <ti>Configuration</ti>
135 <ti><path>/etc/apache2/conf/commonapache2.conf</path></ti>
136 <ti><path>/etc/apache2/httpd.conf</path></ti>
137 </tr>
138 <tr>
139 <ti>Configuration des hôtes virtuels</ti>
140 <ti><path>/etc/apache2/conf/vhosts/</path></ti>
141 <ti><path>/etc/apache2/vhosts.d/</path></ti>
142 </tr>
143 <tr>
144 <ti>Configuration des modules</ti>
145 <ti><path>/etc/apache2/conf/modules.d/</path></ti>
146 <ti><path>/etc/apache2/modules.d/</path></ti>
147 </tr>
148 <tr>
149 <ti>Modules binaires</ti>
150 <ti><path>/usr/lib/apache2-extramodules/</path></ti>
151 <ti><path>/usr/lib/apache2/modules/</path></ti>
152 </tr>
153 </table>
154
155 <note>
156 La configuration inclut désormais automatiquement les fichiers
157 <path>modules.d/*.conf</path> et <path>vhosts.d/*.conf</path> par défaut.
158 Cependant, la directive dans le fichier <path>httpd.conf</path> énumère ce qui
159 précède de la même façon que <path>conf/modules.d/*.conf</path> et
160 <path>conf/vhosts.d/*.conf</path>. Cela est dû au fait qu'Apache lit la
161 configuration en utilisant le répertoire <path>/usr/lib/apache{|2}</path> qui
162 contient un lien symbolique <path>conf -&gt; /etc/apache{|2}</path>.
163 </note>
164
165 <impo>
166 Si vous êtes développeur et que vous mettez à jour un ebuild pour utiliser les
167 changements que nous avons faits, veuillez ne pas compliquer les chemins cités
168 précédemment dans votre ebuild. Regardez plutôt la documentation des eclass
169 pour les variables appropriées que vous pouvez utiliser.
170 </impo>
171
172 </body>
173 </section>
174 </chapter>
175
176 <chapter id="ebuild-update">
177 <title>Mise à jour d'un ebuild</title>
178 <section>
179 <body>
180
181 <p>
182 Avec nos nouveaux changements, pratiquement chaque ebuild qui dépend d'Apache
183 doit être modifié. L'équipe d'Apache a déjà pris compte d'une grande majorité
184 de ces paquets, car ils en sont responsables. Mais il en reste plusieurs qui
185 appartiennent à d'autres mainteneurs et qui ont besoin d'être mis à jour.
186 </p>
187
188 <p>
189 Ce chapitre a pour but de guider un développeur à travers la mise à jour d'un
190 ebuild pour utiliser les nouvelles eclass, en s'appuyant sur un de nos paquets
191 les plus complexes, <c>www-apache/mod_ldap_userdir</c> par exemple.
192 </p>
193
194 <note>
195 Si votre paquet actuellement n'est pas un module mais qu'il a juste besoin de
196 connaître les chemins qu'utilise Apache, faites simplement un <c>inherit
197 depend.apache</c> et utilisez les variables qui sont mises à votre disposition
198 dans les eclass. Consultez pour cela la documentation du <uri
199 link="#depend-apache">depend.apache</uri> des eclass.
200 </note>
201
202 </body>
203 </section>
204 <section>
205 <title>Vue d'ensemble des changements nécessaires</title>
206 <body>
207
208 <ul>
209 <li>
210 Une nouvelle révision sera nécessaire tant que les versions modifiées pour
211 les nouvelles eclass ne sont pas rétro-compatibles avec les anciennes
212 versions d'Apache.
213 </li>
214 <li>
215 Assurez-vous d'avoir mis votre <c>KEYWORDS</c> en instable et (si les
216 paquets d'Apache sont encore masqués) ajoutez-les au fichier
217 <path>package.mask</path>.
218 </li>
219 <li>
220 Remplacez chaque <c>DEPEND</c> d'Apache par <c>need_apache1</c> (pour les
221 modules de Apache-1*), par <c>need_apache2</c> (pour les modules
222 d'Apache-2*), ou par <c>need_apache</c> (pour les modules qui peuvent
223 dépendre d'Apache-1* ou d'Apache-2* &mdash; selon les variables USE
224 indiquées).
225 </li>
226 <li>
227 Retirez n'importe quel code spécifique qui modifie le <c>SLOT</c> ou
228 <c>DEPEND</c> avec des «&nbsp;bidouilles&nbsp;» telles que
229 <c>has_version</c>.
230 </li>
231 <li>
232 Vérifiez que le <c>src_compile</c> par défaut dans l'eclass est
233 fonctionnel. Si ce n'est pas le cas, réglez <c>APXS1_ARGS</c> et/ou
234 <c>APXS2_ARGS</c> pour compiler les autres fichiers requis.
235 </li>
236 <li>Généralement toutes les fonctions peuvent être retirées de l'ebuild.</li>
237 <li>
238 Modifiez le fichier de configuration des modules afin d'utiliser les
239 directives <c>IfDefine</c> pour charger et configurer le module.
240 </li>
241 <li>Ajoutez les fichiers de documentation dans <c>DOCFILES</c>.</li>
242 <li>
243 Spécifiez les fichiers de configuration que src_install devra
244 installer&nbsp;: <c>APACHE1_MOD_CONF</c>, <c>APACHE2_MOD_CONF</c>.
245 </li>
246 <li>
247 Spécifiez le <c>IfDefine</c> que le module utilise dans son fichier de
248 configuration, pkg_postinst peut vous donner des informations utiles pour
249 activer le module&nbsp;: <c>APACHE1_MOD_DEFINE</c>,
250 <c>APACHE2_MOD_DEFINE</c>.
251 </li>
252 <li>
253 N'oubliez pas de le tester &mdash; suivez les instructions de mise à jour
254 de ce document si vous ne l'avez pas déjà fait.
255 </li>
256 </ul>
257
258 </body>
259 </section>
260 <section>
261 <title>Ebuilds globaux</title>
262 <body>
263
264
265 <pre caption="Diff entre mod_ldap_userdir-1.4.1 et mod_ldap_userdir-1.4.1-r1
266 (edité)">
267 +inherit apache-module
268 +
269 -IUSE="apache2 ssl"
270 +IUSE="ssl"
271
272 DESCRIPTION="Apache module that enables ~/public_html from an LDAP directory."
273 HOMEPAGE="http://horde.net/~jwm/software/mod_ldap_userdir/"
274 -KEYWORDS="x86 ppc"
275 +KEYWORDS="~x86 ~ppc"
276
277 SRC_URI="http://horde.net/~jwm/software/mod_ldap_userdir/${P}.tar.gz"
278
279 -DEPEND="=net-www/apache-1*
280 - apache2? ( =net-www/apache-2* )
281 - ssl? ( dev-libs/openssl )
282 - net-nds/openldap"
283 +DEPEND="ssl? ( dev-libs/openssl )
284 + net-nds/openldap"
285
286 LICENSE="GPL-1"
287 SLOT="0"
288 +
289 +DOCFILES="DIRECTIVES README user-ldif posixAccount-objectclass"
290 +APACHE1_MOD_CONF="${PVR}/47_mod_ldap_userdir"
291 +APACHE2_MOD_CONF="${PVR}/47_mod_ldap_userdir"
292 +APACHE1_MOD_DEFINE="LDAPuserdir"
293 +APACHE2_MOD_DEFINE="LDAPuserdir"
294 +
295 +need_apache
296 </pre>
297
298 <p>
299 Nous commençons avec <c>inherit apache-module</c> qui hérite également
300 <c>depend.apache</c>. <c>depend.apache</c> définit les localisations qu'utilise
301 Apache et, plus important, définit trois <c>DEPEND</c>&nbsp;:
302 <c>APACHE1_DEPEND</c> pour les paquets qui ont besoin d'Apache-1*,
303 <c>APACHE2_DEPEND</c> pour les paquets qui ont besoin d'Apache-2*, et
304 <c>APACHE_DEPEND</c> pour les paquets qui peuvent avoir besoin soit d'Apache-1*
305 soit d'Apache-2* et qui laissent à la variable USE apache2 le soin de
306 déterminer cela.
307 </p>
308
309 <note>
310 Pour le moment, nous ne supportons pas l'installation des deux versions
311 d'Apache simultanément (bien que cela soit possible), car il n'est pas possible
312 ensuite d'installer une seule version d'un module pour les deux versions
313 d'Apache. Les modules devront juste utiliser un <c>SLOT</c> autre que <c>0</c>
314 s'ils ont des lignes multiples de version et que chacun supporte une version
315 différente d'Apache. (i.e. <path>mod_layout-3.2.1-r1</path> possède un
316 <c>SLOT="1"</c> et <path>mod_layout-4.0.1a-r1</path> un <c>SLOT="2"</c>.)
317 </note>
318
319 <p>
320 <c>apache-module</c> s'occupe d'une lourde tâche pour les paquets de module en
321 définissant des valeurs convenables par défaut pour <c>pkg_setup</c>,
322 <c>src_compile</c>, <c>src_install</c> et <c>pkg_postinst</c>.
323 </p>
324
325 <p>
326 Comme <c>depend.apache</c> ajoute <c>apache2</c> à IUSE si nécessaire, vous ne
327 devez plus le définir explicitement dans l'IUSE des ebuilds. Vous devrez
328 cependant le laisser défini si vous employez cette variable USE dans votre
329 ebuild quelque part.
330 </p>
331
332 <p>
333 <c>depend.apache</c> s'exécute en ajoutant le DEPEND Apache correct à votre
334 DEPEND (si vous appelez l'une des fonctions de <c>need_apache{|1|2}</c>), ainsi
335 vous pouvez retirer le traitement du DEPEND Apache de votre ebuild.
336 </p>
337
338 <p>
339 <c>DOCFILES</c> est utilisé par <c>src_install</c> dans <c>apache-modules</c>
340 pour installer toutes les documentations. <c>src_install</c> détecte
341 automatiquement les fichiers html et les autres fichiers, et utilise
342 <c>dodoc</c> ou <c>dohtml</c> pour les installer à leur bonne place.
343 </p>
344
345 <p>
346 <c>APACHE1_MOD_CONF</c> et <c>APACHE2_MOD_CONF</c> définissent le fichier de
347 configuration à installer pour le module. Ceci est utilisé pendant le
348 <c>src_install</c>, ainsi ils peuvent être liés à ce que vous avez défini pour
349 <c>APXS1_S</c> ou <c>APXS2_S</c> (par défaut à <c>${S}/src</c> si c'est un
350 répertoire, ou juste <c>${S}</c>).
351 </p>
352
353 <p>
354 <c>APACHE1_MOD_DEFINE</c> et <c>APACHE2_MOD_DEFINE</c> indiquent aux eclass de
355 quelle directive <c>&lt;IfDefine MODULENAME&gt;</c> le module se sert. Il est
356 utilisé pour afficher à l'utilisateur des commandes sur la façon d'activer le
357 module.
358 </p>
359
360 </body>
361 </section>
362 <section>
363 <title>src_compile</title>
364 <body>
365
366 <p>
367 <c>src_compile</c> peut être nécessaire si le module requiert des étapes
368 spéciales que l'eclass ne peut traiter. Ce serait un cas assez exceptionnel.
369 Dans la plupart des cas, en passant juste en revue le fichier
370 <path>Makefile</path> et en ajoutant les éléments à <c>APXS1_ARGS</c> ou
371 <c>APXS2_ARGS</c>, cela devrait être suffisant.
372 </p>
373
374 <pre caption="Diff entre mod_ldap_userdir-1.4.1 et mod_ldap_userdir-1.4.1-r1
375 (édité)">
376 -src_compile() {
377 - local myconf
378 - if use apache2; then
379 - myconf="${myconf} --with-apxs2=/usr/sbin/apxs2"
380 - else
381 - myconf="${myconf} --with-apxs=/usr/sbin/apxs"
382 - fi
383 -
384 - use ssl &amp;&amp; myconf="${myconf} -with-tls"
385 -
386 - myconf="${myconf} --with-activate"
387 - ./configure ${myconf} || die "Configure failed"
388 - make clean
389 - make || die "Make failed"
390 -}
391
392 +src_compile() {
393 + local myargs="-lldap -llber -c ${PN}.c"
394 + use ssl &amp;&amp; myargs="${myargs} -D TLS=1"
395 +
396 + APXS2_ARGS="${myargs}"
397 + APXS1_ARGS="${myargs}"
398 +
399 + apache-module_src_compile
400 +
401 +}
402 </pre>
403
404 <note>
405 En général, si APXS1_ARGS ou APXS2_ARGS ont besoin d'être distincts, ils sont
406 définis dans l'espace global. <path>mod_ldap_userdir</path> est différent à cet
407 égard, parce que l'état de la variable USE ssl affecte ces variables et il est
408 plus efficace de placer uniquement ces valeurs dans <c>src_compile</c> plutôt
409 que de faire une vérification de la USE à chaque fois que vous invoquerez cet
410 ebuild.
411 </note>
412
413 </body>
414 </section>
415 <section>
416 <title>src_install</title>
417 <body>
418
419 <p>
420 Dans la plupart des cas, <c>src_install</c> ne sera pas nécessaire. Il y a des
421 exceptions quand d'autres répertoires ont besoin d'être installés ou quand les
422 droits de fichiers doivent être changés.
423 </p>
424
425 <pre caption="Diff entre mod_ldap_userdir-1.4.1 et mod_ldap_userdir-1.4.1-r1
426 (édité)">
427 -src_install() {
428 - if use apache2; then
429 - exeinto /usr/lib/apache2-extramodules
430 - doexe mod_ldap_userdir.so
431 - else
432 - exeinto /usr/lib/apache-extramodules
433 - doexe mod_ldap_userdir.so
434 - fi
435 - dodoc DIRECTIVES README user-ldif posixAccount-objectclass
436 -}
437 +src_install() {
438 + apache-module_src_install
439 + if [ "${APACHE_VERSION}" == "2" ]; then
440 + fperms 600 ${APACHE2_MODULES_CONFDIR}/$(basename ${APACHE2_MOD_CONF})
441 + else
442 + fperms 600 ${APACHE1_MODULES_CONFDIR}/$(basename ${APACHE1_MOD_CONF})
443 + fi
444 +}
445 </pre>
446
447 <p>
448 Comme vous pouvez le voir, dans <path>mod_ldap_userdir</path> nous avions en
449 fait ajouté quelques corrections qui n'étaient pas présentes dans la révision
450 précédente &mdash; l'ajout d'un fichier de configuration et le réglage des
451 permissions appropriées dessus. Mais nous permettons encore la présentation de
452 <c>apache-module</c> en appelant <c>apache-module_src_install</c> à l'intérieur
453 de notre <c>src_install</c>. Dans la plupart des cas, <c>src_install</c> ne
454 sera pas nécessaire du tout.
455 </p>
456
457 <p>
458 <c>src_install</c> traite complètement l'installation du module, la
459 configuration des fichiers et la documentation aux endroits corrects.
460 </p>
461
462 </body>
463 </section>
464 <section>
465 <title>Autres fonctions</title>
466 <body>
467
468 <p>
469 Dans la plupart des cas, il ne devrait y avoir ni pkg_postinst ni pkg_config
470 pendant que les eclass manipulent des instructions d'affichage à l'utilisateur
471 à propos de l'activation d'un module et de l'emplacement du fichier de
472 configuration. Si des instructions additionnelles d'installation sont
473 nécessaires, alors un <c>pkg_postinst</c> peut être ajouté, mais il devrait
474 alors exécuter <c>apache1_pkg_postinst</c> ou <c>apache2_pkg_postinst</c> à
475 l'intérieur de lui-même.
476 </p>
477
478 <pre caption="Diff entre mod_ldap_userdir-1.4.1 et mod_ldap_userdir-1.4.1-r1
479 (édité)">
480 -pkg_postinst() {
481 - if use apache2; then
482 - elog "Adjust /etc/apache2/conf/modules.d/47_mod_ldap_userdir.conf to match your setup and"
483 - elog "add '-D LDAPuserdir' to your APACHE2_OPTS in /etc/conf.d/apache2"
484 - elog "To configure the package run \"ebuild /var/db/pkg/net-www/${PF}/${PF}.ebuild config\""
485 - fi
486 -}
487 -
488 -pkg_config() {
489 - /usr/sbin/apacheaddmod \
490 - ${ROOT}/etc/apache/conf/apache.conf \
491 - extramodules/mod_ldap_userdir.so mod_ldap_userdir.c ldap_userdir_module \
492 - define=LDAPuserdir addconf=conf/addon-modules/47_mod_ldap_userdir.conf
493 -}
494 </pre>
495
496 <p>
497 Avec la nouvelle configration par défaut d'Apache, nous n'avons plus besoin
498 d'obliger l'utilisateur à modifier son fichier <path>httpd.conf</path> pour
499 activer le module. Tous les fichiers <path>*.conf</path> du répertoire
500 <path>modules.d</path> sont inclus automatiquement. Chaque fichier présent
501 devra être complètement compris dans un bloc <c>&lt;IfDefine
502 MODULENAME&gt;</c>, de telle sorte que les directives dans ce fichier ne soient
503 utilisées que si les utilisateurs ajoutent un <c>"-D MODULENAME"</c> à leur
504 fichier <path>/etc/conf.d/apache{|2}</path>.
505 </p>
506
507 </body>
508 </section>
509 <section>
510 <title>Fichier de configuration</title>
511 <body>
512
513 <p>
514 La plupart des fichiers de configuration n'auront besoin que de peu de
515 changements. Voici le principal à surveiller pour être sûr qu'il utilise le
516 chemin correct au chargement du module&nbsp;:
517 </p>
518
519
520 <pre caption="Directive LoadModule">
521 <comment>(Ancienne directive :)</comment>
522 LoadModule ldap_userdir_module extramodules/mod_ldap_userdir.so
523
524 <comment>(Nouvelle directive :)</comment>
525 LoadModule ldap_userdir_module modules/mod_ldap_userdir.so
526 </pre>
527
528 <p>
529 Ainsi, chaque fichier de configuration de module a besoin d'être compris dans
530 un bloc <c>&lt;IfDefine MODULENAME&gt;</c>. Si vous ne faites pas cela, alors
531 Apache chargera le module par défaut, ce que nous ne voulons pas &mdash; le
532 chargement du module doit être contrôlé par l'utilisateur, en utilisant le
533 fichier <path>/etc/conf.d/apache{|2}</path>.
534 </p>
535
536 <pre caption="Exemple de .conf">
537 &lt;IfDefine LDAPuserdir&gt;
538 &lt;IfModule !mod_ldap_userdir.c&gt;
539 <comment># Load the module:</comment>
540 LoadModule ldap_userdir_module modules/mod_ldap_userdir.so
541 &lt;/IfModule&gt;
542 &lt;/IfDefine&gt;
543
544 &lt;IfModule mod_ldap_userdir.c&gt;
545 <comment># Mettez une bonne configuration par défaut ici&nbsp;:</comment>
546
547 LDAPUserDir public_html
548 LDAPUserDirDNInfo cn=root,dc=yourcompany,dc=com yourpassword
549 LDAPUserDirBaseDN ou=People,dc=yourcompany,dc=com
550
551 &lt;/IfModule&gt;
552 </pre>
553
554 <note>
555 Certains modules peuvent vouloir ajouter des extensions qui sont vérifiées dans
556 le DirectoryIndex. Nous avons modifié Apache afin d'avoir une nouvelle
557 directive de configuration, AddDirectoryIndex, qui ne s'occupe que de cela.
558 Utilisez-le exactement comme DirectoryIndex - il travaille de la même manière à
559 l'exception près qu'il ne remplace pas le DirectoryIndex, il s'ajoute à lui. Il
560 y a également un RemoveDirectoryIndex si cela est nécessaire pour une raison
561 quelconque.
562 </note>
563
564 </body>
565 </section>
566 </chapter>
567
568 <chapter id="apache-module">
569 <title>Eclass apache-module</title>
570 <section>
571 <title>Description</title>
572 <body>
573
574 <p>
575 L'eclass <c>apache-module</c> fournit des fonctions convenables par défaut pour
576 la compilation des modules Apache. Puisque la plupart des modules sont compilés
577 exactement de la même manière, ceci permet aux ebuilds de modules d'être
578 extrêmement simples.
579 </p>
580
581 </body>
582 </section>
583 <section>
584 <title>Fonctions</title>
585 <body>
586
587 <table>
588 <tr>
589 <th>Fonction</th>
590 <th>Description</th>
591 </tr>
592 <tr>
593 <ti><c>apache_cd_dir</c></ti>
594 <ti>Retourne le chemin correct du répertoire temporaire de construction.</ti>
595 </tr>
596 <tr>
597 <ti><c>apache_mod_file</c></ti>
598 <ti>Retourne le chemin du module construit à installer.</ti>
599 </tr>
600 <tr>
601 <ti><c>apache_doc_magic</c></ti>
602 <ti>
603 Prend un seul argument optionnel. Si celui-ci est mentionné, la fonction
604 retourne tous les fichiers *.html de <c>${DOCFILES}</c>, autrement il
605 retourne tous les fichiers non-*.html.
606 </ti>
607 </tr>
608 <tr>
609 <ti><c>apache1_src_compile</c></ti>
610 <ti>
611 Appelle <c>${APXS1}</c> avec les arguments de <c>${APXS1_ARGS}</c>. Si un
612 module requiert une installation différente de construction que celle-ci,
613 utilisez <c>${APXS1}</c> dans votre propre src_compile quotidien.
614 </ti>
615 </tr>
616 <tr>
617 <ti><c>apache1_src_install</c></ti>
618 <ti>
619 Cette fonction installe le module et configure les fichiers dans le
620 répertoire d'Apache. Elle gère l'installation des modules, leur
621 configuration, les exécutables relatifs et la documentation.
622 </ti>
623 </tr>
624 <tr>
625 <ti><c>apache1_pkg_postinst</c></ti>
626 <ti>Affiche les messages de configuration standard.</ti>
627 </tr>
628 <tr>
629 <ti><c>apache2_pkg_setup</c></ti>
630 <ti>
631 Si APACHE2_SAFE_MPMS est paramétré, cette fonction vérifie les MPM
632 installés et affiche une erreur s'il n'y a aucun MPM sûr installé.
633 </ti>
634 </tr>
635 <tr>
636 <ti><c>apache2_src_compile</c></ti>
637 <ti>
638 Appelle <c>${APXS2}</c> avec les arguments de <c>${APXS2_ARGS}</c>. Si un
639 module requiert une installation différente de construction que celle-ci,
640 utilisez <c>${APXS2}</c> dans votre propre src_compile quotidien.
641 </ti>
642 </tr>
643 <tr>
644 <ti><c>apache2_src_install</c></ti>
645 <ti>
646 Cette fonction installe le module et configure les fichiers dans le
647 répertoire d'Apache. Elle gère l'installation des modules, leur
648 configuration, les exécutables relatifs et la documentation.
649 </ti>
650 </tr>
651 <tr>
652 <ti>
653 <c>apache-module_pkg_setup</c><br />
654 <c>apache-module_src_compile</c><br />
655 <c>apache-module_src_install</c><br />
656 <c>apache-module_pkg_postinst</c>
657 </ti>
658 <ti>
659 Ce sont des fonctions englobantes des fonctions apache1_* or apache2_*.
660 Elles détectent automatiquement la version d'Apache avec lesquelles elles
661 sont construites.
662 </ti>
663 </tr>
664 </table>
665
666 </body>
667 </section>
668 <section>
669 <title>Variables</title>
670 <body>
671
672 <table>
673 <tr>
674 <th>Variable</th>
675 <th>Défaut</th>
676 <th>Description</th>
677 </tr>
678 <tr>
679 <ti>
680 <c>APACHE1_MOD_CONF</c><br />
681 <c>APACHE2_MOD_CONF</c>
682 </ti>
683 <ti>Non</ti>
684 <ti>
685 L'emplacement dans <c>${FILESDIR}</c> de la configuration des modules, sans
686 l'extention .conf.
687 </ti>
688 </tr>
689 <tr>
690 <ti>
691 <c>APACHE1_MOD_DEFINE</c><br />
692 <c>APACHE2_MOD_DEFINE</c>
693 </ti>
694 <ti>Non</ti>
695 <ti>
696 Nom du «&nbsp;define&nbsp;» dans la configuration des modules. Utilisé en
697 affichant un message à l'utilisateur pour l'ajouter à son
698 <path>/etc/conf.d/apache{|2}</path>.
699 </ti>
700 </tr>
701 <tr>
702 <ti>
703 <c>APACHE1_EXECFILES</c><br />
704 <c>APACHE2_EXECFILES</c>
705 </ti>
706 <ti>Non</ti>
707 <ti>Fichiers exécutables additionnels qui devront être installés.</ti>
708 </tr>
709 <tr>
710 <ti>
711 <c>APACHE1_MOD_FILE</c><br />
712 <c>APACHE2_MOD_FILE</c>
713 </ti>
714 <ti>
715 ${PN}.so<br />
716 .libs/${PN}.so
717 </ti>
718 <ti>Les modules que <c>src_install</c> installe.</ti>
719 </tr>
720 <tr>
721 <ti><c>APACHE2_SAFE_MPMS</c></ti>
722 <ti>Non</ti>
723 <ti>
724 Une liste des MPM qui fonctionnent avec ce module. Si ce n'est pas
725 renseigné, alors aucune vérification des MPM ne sera faite. S'il y a des
726 MPM peu sûrs d'installés l'utilisateur est averti. S'il n'y pas de MPM
727 installés, le module refuse de s'installer.
728 </ti>
729 </tr>
730 <tr>
731 <ti>
732 <c>APXS1_S</c><br />
733 <c>APXS2_S</c>
734 </ti>
735 <ti>Non</ti>
736 <ti>
737 Les chemins vers les répertoires de construction temporaires. Retourné par
738 <c>apache_cd_dir</c> si renseigné, sinon il retourne <c>${S}/src</c>
739 (si c'est un répertoire) ou <c>${S}</c> sinon.
740 </ti>
741 </tr>
742 <tr>
743 <ti>
744 <c>APXS1_ARGS</c><br />
745 <c>APXS2_ARGS</c>
746 </ti>
747 <ti>-c ${PN}.c</ti>
748 <ti>Arguments à passer à l'outil apxs.</ti>
749 </tr>
750 <tr>
751 <ti><c>DOCFILES</c></ti>
752 <ti>Non</ti>
753 <ti>
754 La documentation à installer. Tous les fichiers qui finissent par .html
755 sont installés en utilisant <c>dohtml</c>, les autres sont installés en
756 utilisant <c>dodoc</c>.
757 </ti>
758 </tr>
759 </table>
760
761 </body>
762 </section>
763 </chapter>
764
765 <chapter id="depend-apache">
766 <title>Eclass depend.apache</title>
767 <section>
768 <title>Description</title>
769 <body>
770
771 <p>
772 L'eclass <c>depend.apache</c> règle les localisations par défaut des différents
773 chemins d'Apache et gère les paramètres des dépendances sur Apache. En général,
774 cette eclass ne devrait pas être utilisée par les modules. Elle devrait
775 seulement être employée pour les programmes qui doivent dépendre d'Apache mais
776 qui ne sont pas des modules. (Les modules devraient employer l'eclass <uri
777 link="#apache-module">apache-module</uri>.)
778 </p>
779
780 </body>
781 </section>
782 <section>
783 <title>Fonctions</title>
784 <body>
785
786 <table>
787 <tr>
788 <th>Fonction</th>
789 <th>Description</th>
790 </tr>
791 <tr>
792 <ti><c>need_apache1</c></ti>
793 <ti>
794 Cette fonction renseigne correctement l'information sur les dépendances
795 pour les paquets qui ne supportent que Apache-1.x. Les paquets qui
796 nécessitent Apache-1.x devront appeler <c>need_apache1</c> dans la portée
797 globale pour placer correctement les dépendances.
798 </ti>
799 </tr>
800 <tr>
801 <ti><c>need_apache2</c></ti>
802 <ti>
803 Cette fonction renseigne correctement l'information sur les dépendances
804 pour les paquets qui ne supportent que Apache-2.x. Les paquets qui
805 nécessitent Apache-2.x devront appeler <c>need_apache2</c> dans la portée
806 globale pour placer correctement les dépendances.
807 </ti>
808 </tr>
809 <tr>
810 <ti><c>need_apache</c></ti>
811 <ti>
812 Cette fonction renseigne correctement l'information sur les dépendances
813 basées sur les variables USE actuellement réglées. Les paquets qui peuvent
814 utiliser les deux versions d'Apache devront appeler <c>need_apache</c> dans
815 la portée globale pour placer correctement les dépendances.
816 </ti>
817 </tr>
818 </table>
819
820 </body>
821 </section>
822 <section>
823 <title>Variables</title>
824 <body>
825
826 <table>
827 <tr>
828 <th>Variable</th>
829 <th>Défaut</th>
830 <th>Description</th>
831 </tr>
832 <tr>
833 <ti><c>APACHE_VERSION</c></ti>
834 <ti>1</ti>
835 <ti>
836 Paramétré par <c>need_apache</c>, <c>need_apache1</c>, <c>need_apache2</c>.
837 Stocke la version d'apache que nous allons construire.
838 </ti>
839 </tr>
840 <tr>
841 <ti>
842 <c>APXS1</c><br />
843 <c>APXS2</c>
844 </ti>
845 <ti>
846 <path>/usr/sbin/apxs</path><br />
847 <path>/usr/sbin/apxs2</path>
848 </ti>
849 <ti>Chemin vers l'outil apxs</ti>
850 </tr>
851 <tr>
852 <ti>
853 <c>APACHECTL1</c><br />
854 <c>APACHECTL2</c>
855 </ti>
856 <ti>
857 <path>/usr/sbin/apachectl</path><br />
858 <path>/usr/sbin/apache2ctl</path>
859 </ti>
860 <ti>Chemin vers l'outil apachectl</ti>
861 </tr>
862 <tr>
863 <ti>
864 <c>APACHE1_BASEDIR</c><br />
865 <c>APACHE2_BASEDIR</c>
866 </ti>
867 <ti>
868 <path>/usr/lib/apache</path><br />
869 <path>/usr/lib/apache2</path>
870 </ti>
871 <ti>Le chemin dans lequel le serveur tourne.</ti>
872 </tr>
873 <tr>
874 <ti>
875 <c>APACHE1_CONFDIR</c><br />
876 <c>APACHE2_CONFDIR</c>
877 </ti>
878 <ti>
879 <path>/etc/apache</path><br />
880 <path>/etc/apache2</path>
881 </ti>
882 <ti>Localisation du fichier de configuration <path>httpd.conf</path></ti>
883 </tr>
884 <tr>
885 <ti>
886 <c>APACHE1_MODULES_CONFDIR</c><br />
887 <c>APACHE2_MODULES_CONFDIR</c>
888 </ti>
889 <ti>
890 ${APACHE1_CONFDIR}/modules.d<br />
891 ${APACHE2_CONFDIR}/modules.d
892 </ti>
893 <ti>
894 Emplacement où les modules devront installer leur configuration.
895 Tous les fichiers *.conf dans ce répertoire sont inclus au lancement.
896 </ti>
897 </tr>
898 <tr>
899 <ti>
900 <c>APACHE1_VHOSTDIR</c><br />
901 <c>APACHE2_VHOSTDIR</c>
902 </ti>
903 <ti>
904 ${APACHE1_CONFDIR}/vhosts.d<br />
905 ${APACHE2_CONFDIR}/vhosts.d
906 </ti>
907 <ti>
908 Emplacement où les configurations des hôtes virtuels devront être gardés.
909 Tous les fichiers *.conf dans ce répertoire sont inclus au lancement.
910 </ti>
911 </tr>
912 <tr>
913 <ti>
914 <c>APACHE1_MODULESDIR</c><br />
915 <c>APACHE2_MODULESDIR</c>
916 </ti>
917 <ti>
918 ${APACHE1_BASEDIR}/modules<br />
919 ${APACHE2_BASEDIR}/modules
920 </ti>
921 <ti>Emplacement où les modules binaires devront être installés.</ti>
922 </tr>
923 </table>
924
925 <note>
926 Toutes les variables devront être considérées en lecture seule et ne devront
927 pas être modifiées dans l'ebuild. Cela pourrait produire des résultats
928 imprévisibles.
929 </note>
930
931 </body>
932 </section>
933 </chapter>
934 </guide>