Gentoo Archives: gentoo-commits

From: "Davide Cendron (scen)" <scen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/proj/it/apache: apache-developer.xml
Date: Mon, 03 Mar 2008 18:56:36
Message-Id: E1JWFpx-0006gs-B0@stork.gentoo.org
1 scen 08/03/03 18:56:33
2
3 Added: apache-developer.xml
4 Log:
5 Initial commit: version 2.5, revision 1.1 of EN CVS
6
7 Revision Changes Path
8 1.1 xml/htdocs/proj/it/apache/apache-developer.xml
9
10 file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/it/apache/apache-developer.xml?rev=1.1&view=markup
11 plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/it/apache/apache-developer.xml?rev=1.1&content-type=text/plain
12
13 Index: apache-developer.xml
14 ===================================================================
15 <?xml version='1.0' encoding="UTF-8"?>
16 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
17 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/it/apache/apache-developer.xml,v 1.1 2008/03/03 18:56:32 scen Exp $ -->
18
19 <guide link="/proj/it/apache/apache-developer.xml" lang="it">
20 <title>Documentazione per Sviluppatori di Apache</title>
21
22 <author title="Autore">
23 <mail link="vericgar@g.o">Michael Stewart</mail>
24 </author>
25
26 <author title="Traduzione">
27 <mail link="zanetti.massimo@×××××.com">Massimo Zanetti</mail>
28 </author>
29
30 <abstract>
31 Questo documento fornisce dettagli sulle nuove eclass disponibili per gli
32 sviluppatori di pacchetti relativi ad Apache.
33 </abstract>
34
35 <!-- The content of this document is licensed under the CC-BY-SA license -->
36 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
37 <license/>
38
39 <version>2.5</version>
40 <date>2008-03-02</date>
41
42 <chapter>
43 <title>Introduzione</title>
44 <section>
45 <body>
46
47 <p>
48 Questo documento mostra in maniera particolareggiata come le <uri
49 link="#apache-module">nuove eclasses</uri> siano state <uri
50 link="#changes">modificate</uri> rispetto al precedente stile di apache e come
51 si debbano <uri link="#ebuild-update">modificare</uri> le ebuild per sfruttare
52 al massimo le nuove eclass. Se si è degli utenti interessati a come eseguire
53 l'aggiornamento, si consiglia di leggere il documento <uri
54 link="apache-upgrading.xml">Aggiornamento di Apache</uri>.
55 </p>
56
57 </body>
58 </section>
59 </chapter>
60
61 <chapter id="changes">
62 <title>Che cosa è cambiato</title>
63 <section>
64 <title>Sguardo d'insieme</title>
65 <body>
66
67 <p>
68 Sono state apportate molte modifiche sulla modalità d'installazione e
69 funzionamento di Apache e i suoi moduli su Gentoo. Questo rende la manutenzione
70 più facile e segue più da vicino il concetto di pratica upstream. Queste
71 modifiche sono:
72 </p>
73
74 <ul>
75 <li>Corretti molti bug</li>
76 <li>Cambiati i percorsi dell'installazione e della configurazione</li>
77 <li>
78 Create le eclass <uri link="#depend-apache">depend.apache</uri> e <uri
79 link="#apache-module">apache-module</uri>
80 </li>
81 <li>
82 Riuniti apache.conf e commonapache.conf in un unico file, analogamente a
83 come vengono distribuiti da apache.org.
84 </li>
85 <li>
86 <c>apr</c> e <c>apr-utils</c> sono stai estratti da apache così che alcuni
87 pacchetti non hanno più bisogno di apache
88 </li>
89 <li>Quasi tutti i moduli sono stati aggiornati</li>
90 <li>Maggiore disponibilità di MPMs</li>
91 <li>Aggiunto supporto per lingerd</li>
92 <li>Corretto il supporto per i file di grandi dimensioni</li>
93 <li><e>Sicuramente altro...</e></li>
94 </ul>
95
96 </body>
97 </section>
98 <section>
99 <title>Localizzazione Percorsi Apache</title>
100 <body>
101
102 <p>
103 Allo scopo di avvicinarsi al tipo di installazione fatto da apache.org e altre
104 distribuzioni, sono stati modificati i seguenti percorsi:
105 </p>
106
107 </body>
108 </section>
109 <section>
110 <title>Apache 2.x</title>
111 <body>
112
113 <table>
114 <tr>
115 <th>Utilizzo</th>
116 <th>Vecchio Percorso</th>
117 <th>Nuovo Percorso</th>
118 </tr>
119 <tr>
120 <ti>Server Root</ti>
121 <ti><path>/etc/apache2/</path></ti>
122 <ti><path>/usr/lib/apache2/</path></ti>
123 </tr>
124 <tr>
125 <ti>Directory della Configurazione</ti>
126 <ti><path>/etc/apache2/conf/</path></ti>
127 <ti><path>/etc/apache2/</path></ti>
128 </tr>
129 <tr>
130 <ti>Configurazione</ti>
131 <ti><path>/etc/apache2/conf/apache2.conf</path></ti>
132 <ti><path>/etc/apache2/httpd.conf</path></ti>
133 </tr>
134 <tr>
135 <ti>Configurazione</ti>
136 <ti><path>/etc/apache2/conf/commonapache2.conf</path></ti>
137 <ti><path>/etc/apache2/httpd.conf</path></ti>
138 </tr>
139 <tr>
140 <ti>Configurazione Vhosts</ti>
141 <ti><path>/etc/apache2/conf/vhosts/</path></ti>
142 <ti><path>/etc/apache2/vhosts.d/</path></ti>
143 </tr>
144 <tr>
145 <ti>Configuratione Moduli</ti>
146 <ti><path>/etc/apache2/conf/modules.d/</path></ti>
147 <ti><path>/etc/apache2/modules.d/</path></ti>
148 </tr>
149 <tr>
150 <ti>Modulo Binari</ti>
151 <ti><path>/usr/lib/apache2-extramodules/</path></ti>
152 <ti><path>/usr/lib/apache2/modules/</path></ti>
153 </tr>
154 </table>
155
156 <note>
157 La configurazione predefinita ora include automaticamente
158 <path>modules.d/*.conf</path> e <path>vhosts.d/*.conf</path>. Tuttavia la
159 direttiva contenuta in <path>httpd.conf</path> mostra i percorsi sopra indicati
160 come <path>conf/modules.d/*.conf</path> e <path>conf/vhosts.d/*.conf</path>.
161 Questo perchè Apache legge la configurazione usando la directory
162 <path>/usr/lib/apache{|2}</path> che contiene un link simbolico a <path>conf ->
163 /etc/apache{|2}</path>.
164 </note>
165
166 <impo>
167 Se si è uno sviluppatore e si cerca di aggiornare un'ebuild per farlo funzionare
168 con le modifiche che sono state fatte, si cerchi di non inserire i percorsi
169 sopra indicati nell'ebuild, controllare invece la documentazione sulla eclass
170 relativa alle variabili che possono essere usate.
171 </impo>
172
173 </body>
174 </section>
175 </chapter>
176
177 <chapter id="ebuild-update">
178 <title>Aggiornare l'Ebuild</title>
179 <section>
180 <body>
181
182 <p>
183 Con queste nuove modifiche quasi tutte le ebuild che hanno una dipendenza da
184 Apache devono essere cambiate. Il gruppo di Apache si è già preso cura della
185 maggioranza di questi pacchetti, essendone loro i responsabili. Ma ne rimangono
186 ancora diversi che, appartenendo ad altri sviluppatori, devono essere
187 aggiornati.
188 </p>
189
190 <p>
191 Questo capitolo mostra ad uno sviluppatore l'uso della nuova eclass attraverso
192 l'aggiornamento di un'ebuild. Per fare questo si prende come esempio uno dei
193 pacchetti più complessi, <c>www-apache/mod_ldap_userdir</c>.
194 </p>
195
196 <note>
197 Se il proprio pacchetto non è precisamente un modulo, ma ha solo bisogno di
198 conoscere i percorsi usati da Apache, eseguire <c>inherit depend.apache</c> ed
199 usare le variabili rese disponibili nella eclass. A tale proposito si guardi
200 la documentazione della eclass <uri link="#depend-apache">depend.apache</uri> .
201 </note>
202
203 </body>
204 </section>
205 <section>
206 <title>Sguardo d'insieme delle modifiche necessarie</title>
207 <body>
208
209 <ul>
210 <li>
211 Sarà necessaria una nuova revisione considerato che le precedenti, adattate
212 alla nuova eclass, non sono compatibili con le vecchie versioni di Apache.
213 </li>
214 <li>
215 Assicurarsi di impostare <c>KEYWORDS</c> a testing e, se i pacchetti di
216 Apache sono ancora hard-masked, aggiungerli in package.mask
217 </li>
218 <li>
219 Sostituire ciascun <c>DEPEND</c> di Apache con <c>need_apache1</c> (per
220 i moduli di Apache-1*), <c>need_apache2</c> (per i moduli di Apache-2*), o
221 <c>need_apache</c> (per i moduli che possono dipendere sia da Apache-1* che
222 da Apache-2* - determinati da USE-flags)
223 </li>
224 <li>
225 Rimovere qualsiasi linea di codice che modifica <c>SLOT</c> o <c>DEPEND</c>
226 con hack tipo <c>has_version</c>.
227 </li>
228 <li>
229 Controllare se l'impostazione predefinita di <c>src_compile</c> nella eclass
230 funziona. Altrimenti, impostare <c>APXS1_ARGS</c> o <c>APXS2_ARGS</c> per
231 compilare, come richiesto, gli altri file.
232 </li>
233 <li>Di norma tutte le funzioni possono essere rimosse dall'ebuild</li>
234 <li>
235 Modificare il file di configurazione del modulo affichè usi gli
236 <c>IfDefine</c> per caricare e configurare il modulo
237 </li>
238 <li>Aggiungere qualsiasi file di documentazione a <c>DOCFILES</c></li>
239 <li>
240 Specificare il file di configurazione che src_install deve installare:
241 <c>APACHE1_MOD_CONF</c>, <c>APACHE2_MOD_CONF</c>
242 </li>
243 <li>
244 Specificare la <c>IfDefine</c> che il modulo usa nel suo file di
245 configurazione così che pkg_postinst possa dare informazioni all'utente su
246 come abilitare il modulo: <c>APACHE1_MOD_DEFINE</c>,
247 <c>APACHE2_MOD_DEFINE</c>
248 </li>
249 <li>
250 Non dimenticarsi di testarlo - nel caso non sia stato fatto, seguire le
251 istruzioni di aggiornamento che si trovano in questo documento
252 </li>
253 </ul>
254
255 </body>
256 </section>
257 <section>
258 <title>Ebuild Globali</title>
259 <body>
260
261 <pre caption="Diff tra mod_ldap_userdir-1.4.1 e mod_ldap_userdir-1.4.1-r1
262 (modificato)">
263 +inherit apache-module
264 +
265 -IUSE="apache2 ssl"
266 +IUSE="ssl"
267
268 DESCRIPTION="Modulo Apache che abilita ~/public_html from an LDAP directory."
269 HOMEPAGE="http://horde.net/~jwm/software/mod_ldap_userdir/"
270 -KEYWORDS="x86 ppc"
271 +KEYWORDS="~x86 ~ppc"
272
273 SRC_URI="http://horde.net/~jwm/software/mod_ldap_userdir/${P}.tar.gz"
274
275 -DEPEND="=net-www/apache-1*
276 - apache2? ( =net-www/apache-2* )
277 - ssl? ( dev-libs/openssl )
278 - net-nds/openldap"
279 +DEPEND="ssl? ( dev-libs/openssl )
280 + net-nds/openldap"
281
282 LICENSE="GPL-1"
283 SLOT="0"
284 +
285 +DOCFILES="DIRECTIVES README user-ldif posixAccount-objectclass"
286 +APACHE1_MOD_CONF="${PVR}/47_mod_ldap_userdir"
287 +APACHE2_MOD_CONF="${PVR}/47_mod_ldap_userdir"
288 +APACHE1_MOD_DEFINE="LDAPuserdir"
289 +APACHE2_MOD_DEFINE="LDAPuserdir"
290 +
291 +need_apache
292 </pre>
293
294
295 <p>
296 Si è partiti da <c>inherit apache-module</c> che a sua volta eredita
297 <c>depend.apache</c>. <c>depend.apache</c> definisce le locazioni usate da
298 Apache e, più importante, le tre <c>DEPEND</c>s: <c>APACHE1_DEPEND</c> per quei
299 pacchetti che hanno bisogno di Apache-1*, <c>APACHE2_DEPEND</c> per quelli che
300 hanno bisogno di Apache-2*, e <c>APACHE_DEPEND</c> per quelli che hanno bisogno
301 sia di Apache-1* o di Apache-2* e lasciare ad apache2 USE-flag quale usare.
302 </p>
303
304 <note>
305 Benchè sia possibile, l'installazione di ambedue le versioni di apache
306 affiancate non è supportata; d'altra parte non è neanche supportata
307 l'installazione di un modulo per ambedue le versioni di apache. I moduli
308 dovrebbero usare solamente uno <c>SLOT</c> che non sia <c>0</c> se hanno
309 multiple versioni di codice e ciascuna supporta una differente versione di
310 Apache. (es. <path>mod_layout-3.2.1-r1</path> ha <c>SLOT="1"</c> e
311 <path>mod_layout-4.0.1a-r1</path> ha <c>SLOT="2"</c>)
312 </note>
313
314 <p>
315 L'<c>apache-module</c> fa la parte più pesante per i pacchetti del modulo
316 definendo impostazioni predefinite valide per <c>pkg_setup</c>,
317 <c>src_compile</c>,<c>src_install</c> e <c>pkg_postinst</c>.
318 </p>
319
320 <p>
321 Poichè, se necessario, <c>depend.apache</c> aggiunge <c>apache2</c> a IUSE, non
322 serve più definirlo esplicitamente nella IUSE dell'ebuild. Tuttavia deve essere
323 lasciato definito se quella use-flag viene usata da qualche parte nell'ebuild.
324 </p>
325
326 <p>
327 <c>depend.apache</c> lavora aggiungendo il corretto Apache DEPEND al proprio
328 DEPEND (se si chiama una delle funzioni <c>need_apache{|1|2}</c>) così che si
329 possa togliere la gestione del apache DEPEND dalla propria ebuild.
330 </p>
331
332 <p>
333 <c>DOCFILES</c> è usato da <c>src_install</c> in <c>apache-modules</c> per
334 installare tutta la documentazione. <c>src_install</c> trova automaticamente i
335 file html e altri e usa sia <c>dodoc</c> che <c>dohtml</c> per installarli al
336 posto giusto.
337 </p>
338
339 <p>
340 <c>APACHE1_MOD_CONF</c> e <c>APACHE2_MOD_CONF</c> definiscono il file di
341 configurazione da installare per il modulo. Questo è usato durante
342 <c>src_install</c> così che possano essere collegati a qualsiasi cosa si sia
343 impostata con <c>APXS1_S</c> o <c>APXS2_S</c> (normalmente a <c>${S}/src</c> se
344 è una directory, altrimenti <c>${S}</c>).
345 </p>
346
347 <p>
348 <c>APACHE1_MOD_DEFINE</c> e <c>APACHE2_MOD_DEFINE</c> dicono all'eclass quale
349 <c>&lt;IfDefine MODULENAME&gt;</c> usa il modulo. Servono per mostrare
350 all'utente le istruzioni su come abilitare il modulo.
351 </p>
352
353 </body>
354 </section>
355 <section>
356 <title>src_compile</title>
357 <body>
358
359 <p>
360 <c>src_compile</c> può servire se il modulo richiede speciali passi che l'eclass
361 non può gestire. Questo è un caso raro. Nella maggioranza dei casi, riguardare
362 il <path>Makefile</path> e aggiungere gli oggetti a <c>APXS1_ARGS</c>
363 o <c>APXS2_ARGS</c> è sufficiente.
364 </p>
365
366 <pre caption="Diff tra mod_ldap_userdir-1.4.1 e mod_ldap_userdir-1.4.1-r1
367 (modificato)">
368 -src_compile() {
369 - local myconf
370 - if use apache2; then
371 - myconf="${myconf} --with-apxs2=/usr/sbin/apxs2"
372 - else
373 - myconf="${myconf} --with-apxs=/usr/sbin/apxs"
374 - fi
375 -
376 - use ssl &amp;&amp; myconf="${myconf} -with-tls"
377 -
378 - myconf="${myconf} --with-activate"
379 - ./configure ${myconf} || die "Configure failed"
380 - make clean
381 - make || die "Make failed"
382 -}
383
384 +src_compile() {
385 + local myargs="-lldap -llber -c ${PN}.c"
386 + use ssl &amp;&amp; myargs="${myargs} -D TLS=1"
387 +
388 + APXS2_ARGS="${myargs}"
389 + APXS1_ARGS="${myargs}"
390 +
391 + apache-module_src_compile
392 +
393 +}
394 </pre>
395
396 <note>
397 In generale se APXS1_ARGS o APXS2_ARGS devono essere diversi, sono definiti
398 nello spazio globale. <path>mod_ldap_userdir</path> a questo riguardo è
399 differente perchè lo stato della flag USE di ssl influenza quelle variabili
400 ed è più efficiente nell'impostare solamente quei valori in <c>src_compile</c>
401 piuttosto che eseguire il controllo USE durante ogni chiamata dell'ebuild.
402 </note>
403
404 </body>
405 </section>
406 <section>
407 <title>src_install</title>
408 <body>
409
410 <p>
411 Nella maggior parte dei casi, <c>src_install</c> non è necessario, eccetto
412 quando ci sono altre directory che hanno bisogno di essere installate o quando
413 i permessi sui file devono essere modificati.
414 </p>
415
416 <pre caption="Diff tra mod_ldap_userdir-1.4.1 e mod_ldap_userdir-1.4.1-r1
417 (modificato)">
418 -src_install() {
419 - if use apache2; then
420 - exeinto /usr/lib/apache2-extramodules
421 - doexe mod_ldap_userdir.so
422 - else
423 - exeinto /usr/lib/apache-extramodules
424 - doexe mod_ldap_userdir.so
425 - fi
426 - dodoc DIRECTIVES README user-ldif posixAccount-objectclass
427 -}
428 +src_install() {
429 + apache-module_src_install
430 + if [ "${APACHE_VERSION}" == "2" ]; then
431 + fperms 600 ${APACHE2_MODULES_CONFDIR}/$(basename ${APACHE2_MOD_CONF})
432 + else
433 + fperms 600 ${APACHE1_MODULES_CONFDIR}/$(basename ${APACHE1_MOD_CONF})
434 + fi
435 +}
436 </pre>
437
438 <p>
439 Come si può notare, nel <path>mod_ldap_userdir</path> sono state aggiunte alcune
440 modifiche che non erano presenti nella revisione precedente - l'aggiunta di un
441 file di configurazione e l'impostazione corretta dei permessi.
442 <c>apache-module</c> da il meglio di sè chiamando
443 <c>apache-module_src_install</c> all'interno del proprio <c>src_install</c>.
444 Nella maggior parte dei casi <c>src_install</c> non è per nulla necessario.
445 </p>
446
447 <p>
448 <c>src_install</c> gestisce correttamente e completamente l'installazione del
449 modulo, dei file di configurazione e della documentazione.
450 </p>
451
452 </body>
453 </section>
454 <section>
455 <title>Altre funzioni</title>
456 <body>
457
458 <p>
459 Nella maggioranza dei casi, non ci dovrebbe essere nessun pkg_postinst o
460 pkg_config, visto che l'eclass gestisce direttamente l'invio delle istruzioni
461 relative all'abilitazione di un modulo e la posizione del file di configurazione
462 dell'utente. Se ci fosse bisogno di istruzioni aggiuntive per la configurazione,
463 allora si può aggiungere <c>pkg_postinst</c>, ma si deve ugualmente far andare
464 <c>apache1_pkg_postinst</c> o <c>apache2_pkg_postinst</c> al suo interno.
465 </p>
466
467 <pre caption="Diff tra mod_ldap_userdir-1.4.1 e mod_ldap_userdir-1.4.1-r1
468 (modificato)">
469 -pkg_postinst() {
470 - if use apache2; then
471 - elog "Adjust /etc/apache2/conf/modules.d/47_mod_ldap_userdir.conf to match your setup and"
472 - elog "add '-D LDAPuserdir' to your APACHE2_OPTS in /etc/conf.d/apache2"
473 - elog "To configure the package run \"ebuild /var/db/pkg/net-www/${PF}/${PF}.ebuild config\""
474 - fi
475 -}
476 -
477 -pkg_config() {
478 - /usr/sbin/apacheaddmod \
479 - ${ROOT}/etc/apache/conf/apache.conf \
480 - extramodules/mod_ldap_userdir.so mod_ldap_userdir.c ldap_userdir_module \
481 - define=LDAPuserdir addconf=conf/addon-modules/47_mod_ldap_userdir.conf
482 -}
483 </pre>
484
485 <p>
486 Con la nuova configurazione predefinita, gli utenti non devono più modificare
487 <path>httpd.conf</path> per abilitare un modulo. Tutti i file
488 <path>*.conf</path> nella directory <path>modules.d</path> sono automaticamente
489 inclusi. Tutti i file dovrebbero essere inglobati in un blocco <c>&lt;IfDefine
490 MODULENAME&gt;</c>, in modo che le direttive in quel file siano usate solo se
491 l'utente aggiunge un <c>"-D MODULENAME"</c> al suo file
492 <path>/etc/conf.d/apache{|2}</path>.
493 </p>
494
495 </body>
496 </section>
497 <section>
498 <title>File di configurazione</title>
499 <body>
500
501 <p>
502 La maggior parte dei file di configurazione non deve essere modificata. Bisogna
503 fare estrema attenzione nell'usare il percorso corretto quando si carica il
504 modulo:
505 </p>
506
507
508 <pre caption="LoadModule directive">
509 <comment>(Vecchia direttiva:)</comment>
510 LoadModule ldap_userdir_module extramodules/mod_ldap_userdir.so
511
512 <comment>(Nuova direttiva:)</comment>
513 LoadModule ldap_userdir_module modules/mod_ldap_userdir.so
514 </pre>
515
516 <p>
517 Inoltre ciascun file di configurazione del modulo deve essere inglobato nel
518 blocco <c>&lt;IfDefine MODULENAME&gt;</c>. Se questo non viene fatto, allora
519 Apache carica il modulo predefinito, cosa che si vuole evitare. Il caricamento
520 del modulo deve essere controllato dall'utente usando il file
521 <path>/etc/conf.d/apache{|2}</path>.
522 </p>
523
524 <pre caption="Esempio .conf">
525 &lt;IfDefine LDAPuserdir&gt;
526 &lt;IfModule !mod_ldap_userdir.c&gt;
527 <comment># Carica il modulo:</comment>
528 LoadModule ldap_userdir_module modules/mod_ldap_userdir.so
529 &lt;/IfModule&gt;
530 &lt;/IfDefine&gt;
531
532 &lt;IfModule mod_ldap_userdir.c&gt;
533 <comment># Mettere una valida configurazione predefinita:</comment>
534
535 LDAPUserDir public_html
536 LDAPUserDirDNInfo cn=root,dc=yourcompany,dc=com yourpassword
537 LDAPUserDirBaseDN ou=People,dc=yourcompany,dc=com
538
539 &lt;/IfModule&gt;
540 </pre>
541
542 <note>
543 Alcuni moduli potrebbero voler aggiungere estensioni che sono controllate dalla
544 DirectoryIndex. Apache è stato modificato per avere una nuova direttiva di
545 configurazione, AddDirectoryIndex, che fa appunto questo. Si usa come
546 DirectoryIndex,funziona nello stesso modo eccetto che non sostituisce la
547 DirectoryIndex, ma la aggiunge. Se, per qualche motivo, ce ne fosse bisogno c'è
548 anche una RemoveDirectoryIndex.
549 </note>
550
551 </body>
552 </section>
553 </chapter>
554
555 <chapter id="apache-module">
556 <title>apache-module eclass</title>
557 <section>
558 <title>Descrizione</title>
559 <body>
560
561 <p>
562 L'eclass <c>apache-module</c> fornisce valide funzioni predefinite per compilare
563 moduli di apache. Siccome la maggioranza dei moduli sono compilati nella stessa
564 maniera, è possibile avere un modulo di ebuild estremamente semplice.
565 </p>
566
567 </body>
568 </section>
569 <section>
570 <title>Funzioni</title>
571 <body>
572
573 <table>
574 <tr>
575 <th>Funzione</th>
576 <th>Descrizione</th>
577 </tr>
578 <tr>
579 <ti><c>apache_cd_dir</c></ti>
580 <ti>
581 Restituisce il percorso corretto alla directory temporanea di compilazione
582 </ti>
583 </tr>
584 <tr>
585 <ti><c>apache_mod_file</c></ti>
586 <ti>Restituisce il percorso al modulo compilato da installare</ti>
587 </tr>
588 <tr>
589 <ti><c>apache_doc_magic</c></ti>
590 <ti>
591 Prende opzionalmente un unico valore. Se il valore è impostato, restituisce
592 tutti i file *.html contenuti in <c>${DOCFILES}</c>, altrimenti ritorna
593 tutti i file non-*.html.
594 </ti>
595 </tr>
596 <tr>
597 <ti><c>apache1_src_compile</c></ti>
598 <ti>
599 Chiama <c>${APXS1}</c> con valori di <c>${APXS1_ARGS}</c>. Se un modulo
600 richiede un'impostazione di compilazione diversa da questa, allora si usa
601 <c>${APXS1}</c> nella routine src_compile.
602 </ti>
603 </tr>
604 <tr>
605 <ti><c>apache1_src_install</c></ti>
606 <ti>
607 Questo installa il modulo e i file di installazione nella directory di
608 apache. Gestisce l'installazione dei moduli, della configurazione, degli
609 eseguibili e della documentazione.
610 </ti>
611 </tr>
612 <tr>
613 <ti><c>apache1_pkg_postinst</c></ti>
614 <ti>Stampa messaggi standard di configurazione.</ti>
615 </tr>
616 <tr>
617 <ti><c>apache2_pkg_setup</c></ti>
618 <ti>
619 Se APACHE2_SAFE_MPMS è impostato, controlla gli MPMs installati e dà errore
620 se non ci sono MPMs sicuri installati.
621 </ti>
622 </tr>
623 <tr>
624 <ti><c>apache2_src_compile</c></ti>
625 <ti>
626 Chiama <c>${APXS2}</c> con valori di <c>${APXS2_ARGS}</c>. Se un modulo ha
627 bisogno di una impostazione di compilazione differente, allora usa
628 <c>${APXS2}</c> nella routine src_compile.
629 </ti>
630 </tr>
631 <tr>
632 <ti><c>apache2_src_install</c></ti>
633 <ti>
634 Questo installa il modulo e i file di configurazione nella directory di
635 apache. Gestisce l'installazione dei moduli, della configurazione, degli
636 eseguibili e della documentazione.
637 </ti>
638 </tr>
639 <tr>
640 <ti>
641 <c>apache-module_pkg_setup</c><br />
642 <c>apache-module_src_compile</c><br />
643 <c>apache-module_src_install</c><br />
644 <c>apache-module_pkg_postinst</c>
645 </ti>
646 <ti>
647 Queste sono funzioni "wrapper" sulle funzioni apache1_* o apache2_*.
648 Determinano automaticamente la versione di apache su cui la compilazione si
649 appoggia.
650 </ti>
651 </tr>
652 </table>
653
654 </body>
655 </section>
656 <section>
657 <title>Variabili</title>
658 <body>
659
660 <table>
661 <tr>
662 <th>Variabile</th>
663 <th>Predefinito</th>
664 <th>Descrizione</th>
665 </tr>
666 <tr>
667 <ti>
668 <c>APACHE1_MOD_CONF</c><br />
669 <c>APACHE2_MOD_CONF</c>
670 </ti>
671 <ti>Nessuna</ti>
672 <ti>
673 Il luogo in <c>${FILESDIR}</c> della configurazione del modulo, senza
674 l'estensione .conf.
675 </ti>
676 </tr>
677 <tr>
678 <ti>
679 <c>APACHE1_MOD_DEFINE</c><br />
680 <c>APACHE2_MOD_DEFINE</c>
681 </ti>
682 <ti>Nessuna</ti>
683 <ti>
684 Nome del define nella configurazione del modulo. Usato mostrando un
685 messaggio all'utente per aggiungere <path>/etc/conf.d/apache{|2}</path> al
686 loro percorso.
687 </ti>
688 </tr>
689 <tr>
690 <ti>
691 <c>APACHE1_EXECFILES</c><br />
692 <c>APACHE2_EXECFILES</c>
693 </ti>
694 <ti>Nessuno</ti>
695 <ti>File eseguibili aggiuntivi che dovrebbero essere installati.</ti>
696 </tr>
697 <tr>
698 <ti>
699 <c>APACHE1_MOD_FILE</c><br />
700 <c>APACHE2_MOD_FILE</c>
701 </ti>
702 <ti>
703 ${PN}.so<br />
704 .libs/${PN}.so
705 </ti>
706 <ti>Il modulo che <c>src_install</c> installa.</ti>
707 </tr>
708 <tr>
709 <ti><c>APACHE2_SAFE_MPMS</c></ti>
710 <ti>Nessuno</ti>
711 <ti>
712 Una lista di MPMs che funzionano con questo modulo. Se non impostati, allora
713 non verrà fatto nessun controllo sugli MPMs. Se ci sono degli MPMs non
714 sicuri installati, l'utente è avvisato. Se non ci sono MPMs sicuri
715 installati, il modulo rifiuta di installarsi.
716 </ti>
717 </tr>
718 <tr>
719 <ti>
720 <c>APXS1_S</c><br />
721 <c>APXS2_S</c>
722 </ti>
723 <ti>Nessuna</ti>
724 <ti>
725 Percorsi verso directory di compilazione temporanee. Restituiti da
726 <c>apache_cd_dir</c> se configurati, altrimenti vedere <c>${S}/src</c> (se è
727 una directory) oppure <c>${S}</c>.
728 </ti>
729 </tr>
730 <tr>
731 <ti>
732 <c>APXS1_ARGS</c><br />
733 <c>APXS2_ARGS</c>
734 </ti>
735 <ti>-c ${PN}.c</ti>
736 <ti>Argomenti da passare all'apxs tool.</ti>
737 </tr>
738 <tr>
739 <ti><c>DOCFILES</c></ti>
740 <ti>Nessuno</ti>
741 <ti>
742 La documentazione da installare. Qualsiasi file con estensione .html è
743 installato usando <c>dohtml</c>, mentre tutti gli altri con <c>dodoc</c>.
744 </ti>
745 </tr>
746 </table>
747
748 </body>
749 </section>
750 </chapter>
751
752 <chapter id="depend-apache">
753 <title>eclass depend.apache</title>
754 <section>
755 <title>Descrizione</title>
756 <body>
757
758 <p>
759 La eclass <c>depend.apache</c> imposta le destinazioni predefinite per i
760 differenti percorsi di apache e gestisce le impostazioni delle dipendenze. In
761 generale questa eclass non dovrebbe essere usata per i moduli. Dovrebbe essere
762 invece usata solo per i programmi che dipendono da apache, ma che non sono
763 moduli. (I moduli dovrebbero usare l'eclass <uri
764 link="#apache-module">apache-module</uri>.)
765 </p>
766
767 </body>
768 </section>
769 <section>
770 <title>Funzioni</title>
771 <body>
772
773 <table>
774 <tr>
775 <th>Funzione</th>
776 <th>Descrizione</th>
777 </tr>
778 <tr>
779 <ti><c>need_apache1</c></ti>
780 <ti>
781 Questa funzione imposta in modo corretto le dipendenze per quei pacchetti
782 che supportano solo apache-1.x. I pacchetti che hanno bisogno di apache-1.x
783 dovrebbero chiamare <c>need_apache1</c> nel global scope per impostare
784 correttamente le dipendenze.
785 </ti>
786 </tr>
787 <tr>
788 <ti><c>need_apache2</c></ti>
789 <ti>
790 Questa funzione imposta in modo corretto le dipendenze per quei pacchetti
791 che supportano solo apache-2.x. I pacchetti che hanno bisogno di apache-2.x
792 dovrebbero chiamare <c>need_apache2</c> nel global scope per impostare
793 correttamente le dipendenze.
794 </ti>
795 </tr>
796 <tr>
797 <ti><c>need_apache</c></ti>
798 <ti>
799 Questa funzione imposta in modo corretto le informazioni sulla dipendenza
800 basandosi sulla flag USE correntemente impostate. I pacchetti che possono
801 usare ambedue le versioni di apache dovrebbero chiamare <c>need_apache</c>
802 nel global scope per impostare correttamente le dipendenze.
803 </ti>
804 </tr>
805 </table>
806
807 </body>
808 </section>
809 <section>
810 <title>Variabili</title>
811 <body>
812
813 <table>
814 <tr>
815 <th>Variabile</th>
816 <th>Predefinito</th>
817 <th>Descrizione</th>
818 </tr>
819 <tr>
820 <ti><c>APACHE_VERSION</c></ti>
821 <ti>1</ti>
822 <ti>
823 Impostata da <c>need_apache</c>,<c>need_apache1</c>,<c>need_apache2</c>.
824 Salvano la versione di apache che si sta per compilare.
825 </ti>
826 </tr>
827 <tr>
828 <ti>
829 <c>APXS1</c><br />
830 <c>APXS2</c>
831 </ti>
832 <ti>
833 <path>/usr/sbin/apxs</path><br />
834 <path>/usr/sbin/apxs2</path>
835 </ti>
836 <ti>Percorso agli apxs tool</ti>
837 </tr>
838 <tr>
839 <ti>
840 <c>APACHECTL1</c><br />
841 <c>APACHECTL2</c>
842 </ti>
843 <ti>
844 <path>/usr/sbin/apachectl</path><br />
845 <path>/usr/sbin/apache2ctl</path>
846 </ti>
847 <ti>Percorso agli apachectl tool</ti>
848 </tr>
849 <tr>
850 <ti>
851 <c>APACHE1_BASEDIR</c><br />
852 <c>APACHE2_BASEDIR</c>
853 </ti>
854 <ti>
855 <path>/usr/lib/apache</path><br />
856 <path>/usr/lib/apache2</path>
857 </ti>
858 <ti>Il percorso su cui viene eseguito il server</ti>
859 </tr>
860 <tr>
861 <ti>
862 <c>APACHE1_CONFDIR</c><br />
863 <c>APACHE2_CONFDIR</c>
864 </ti>
865 <ti>
866 <path>/etc/apache</path><br />
867 <path>/etc/apache2</path>
868 </ti>
869 <ti>Posizione del file di configurazione <path>httpd.conf</path></ti>
870 </tr>
871 <tr>
872 <ti>
873 <c>APACHE1_MODULES_CONFDIR</c><br />
874 <c>APACHE2_MODULES_CONFDIR</c>
875 </ti>
876 <ti>
877 ${APACHE1_CONFDIR}/modules.d<br />
878 ${APACHE2_CONFDIR}/modules.d
879 </ti>
880 <ti>
881 Posizione dove i moduli dovrebbero installare la loro configurazione. Tutti
882 i file *.conf in questa directory sono inclusi durante l'avvio.
883 </ti>
884 </tr>
885 <tr>
886 <ti>
887 <c>APACHE1_VHOSTDIR</c><br />
888 <c>APACHE2_VHOSTDIR</c>
889 </ti>
890 <ti>
891 ${APACHE1_CONFDIR}/vhosts.d<br />
892 ${APACHE2_CONFDIR}/vhosts.d
893 </ti>
894 <ti>
895 Posizione in cui le configurazioni del virtual host dovrebbero essere
896 tenute. Tutti i file *.conf in questa directory sono inclusi durante
897 l'avvio.
898 </ti>
899 </tr>
900 <tr>
901 <ti>
902 <c>APACHE1_MODULESDIR</c><br />
903 <c>APACHE2_MODULESDIR</c>
904 </ti>
905 <ti>
906 ${APACHE1_BASEDIR}/modules<br />
907 ${APACHE2_BASEDIR}/modules
908 </ti>
909 <ti>Posizione in cui i binari del modulo dovrebbero essere installati.</ti>
910 </tr>
911 </table>
912
913 <note>
914 Tutte le variabili dovrebbero essere trattate come di sola lettura e non
915 dovrebbero essere modificate nell'ebuild. Fare questo può portare a risultati
916 imprevedibili.
917 </note>
918
919 </body>
920 </section>
921 </chapter>
922
923 </guide>
924
925
926
927 --
928 gentoo-commits@l.g.o mailing list