1 |
scen 10/08/26 14:40:37 |
2 |
|
3 |
Modified: hb-guide-eclass.xml |
4 |
Log: |
5 |
Version 1.0.3, revision 1.12 of EN CVS |
6 |
|
7 |
Revision Changes Path |
8 |
1.7 xml/htdocs/proj/it/devrel/handbook/hb-guide-eclass.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/it/devrel/handbook/hb-guide-eclass.xml?rev=1.7&view=markup |
11 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/it/devrel/handbook/hb-guide-eclass.xml?rev=1.7&content-type=text/plain |
12 |
diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/it/devrel/handbook/hb-guide-eclass.xml?r1=1.6&r2=1.7 |
13 |
|
14 |
Index: hb-guide-eclass.xml |
15 |
=================================================================== |
16 |
RCS file: /var/cvsroot/gentoo/xml/htdocs/proj/it/devrel/handbook/hb-guide-eclass.xml,v |
17 |
retrieving revision 1.6 |
18 |
retrieving revision 1.7 |
19 |
diff -u -r1.6 -r1.7 |
20 |
--- hb-guide-eclass.xml 21 Jan 2009 23:31:42 -0000 1.6 |
21 |
+++ hb-guide-eclass.xml 26 Aug 2010 14:40:37 -0000 1.7 |
22 |
@@ -1,7 +1,7 @@ |
23 |
<?xml version='1.0' encoding='UTF-8'?> |
24 |
<!DOCTYPE sections SYSTEM "/dtd/book.dtd"> |
25 |
|
26 |
-<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/it/devrel/handbook/hb-guide-eclass.xml,v 1.6 2009/01/21 23:31:42 scen Exp $ --> |
27 |
+<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/it/devrel/handbook/hb-guide-eclass.xml,v 1.7 2010/08/26 14:40:37 scen Exp $ --> |
28 |
|
29 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
30 |
<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
31 |
@@ -10,8 +10,8 @@ |
32 |
cvs://gentoo/gentoo/xml/htdocs/doc/en/eclass-howto.xml :: R1.17. --> |
33 |
|
34 |
<sections> |
35 |
-<version>1.0.2</version> |
36 |
-<date>2006-02-02</date> |
37 |
+<version>1.0.3</version> |
38 |
+<date>2010-07-13</date> |
39 |
|
40 |
<section> |
41 |
<title>Introduzione alle eclass</title> |
42 |
@@ -32,9 +32,7 @@ |
43 |
|
44 |
<p> |
45 |
Questo capitolo mostra brevemente come scrivere una eclass incorporando i |
46 |
-trucchi standard e le tecniche usate nelle eclass esistenti. Il secondo è una |
47 |
-panoramica dell'eclass di kde. Il terzo spiega come scrivere un ebuild KDE |
48 |
-usando il gruppo di eclass di kde. |
49 |
+trucchi standard e le tecniche usate nelle eclass esistenti. |
50 |
</p> |
51 |
|
52 |
</body> |
53 |
@@ -469,601 +467,12 @@ |
54 |
<section> |
55 |
<title>Eclass esistenti</title> |
56 |
<subsection> |
57 |
-<title>Introduzione</title> |
58 |
+ <title>eclass-manpages</title> |
59 |
<body> |
60 |
|
61 |
<p> |
62 |
-Molte eclass sono semplici, basta leggerle e dare un'occhiata ad un paio di |
63 |
-ebuild che la usano per capire il loro funzionamento. Inoltre, molte eclass sono |
64 |
-anche ben commentate, per cui la cosa migliore è leggerle. |
65 |
-</p> |
66 |
- |
67 |
-<p> |
68 |
-Questo capitolo documenta l'insieme delle relazioni tra le eclass kde*. |
69 |
-</p> |
70 |
- |
71 |
-</body> |
72 |
-</subsection> |
73 |
-<subsection> |
74 |
-<title>base.eclass</title> |
75 |
-<body> |
76 |
- |
77 |
-<p> |
78 |
-Questa eclass definisce alcune variabili e funzioni predefinite, simili a quelle |
79 |
-presenti nativamente in un ebuild che non eredita nessuna eclass (e quindi |
80 |
-definite in ebuild.sh). Probabilmente, non verrà usata direttamente, ma |
81 |
-piuttosto attraverso una eclass di kde, che la eredita. |
82 |
-</p> |
83 |
- |
84 |
-<p> |
85 |
-Un piccola parte interessante delle funzionalità che essa fornisce è la capacità |
86 |
-di autopatch. Se nel proprio ebuild, che utilizza base_src_unpack() (o |
87 |
-kde_src_unpack()), il contenuto della variabile PATCHES viene impostato con una |
88 |
-lista di file, i sorgenti verranno patchati con questi stessi file. Le patch |
89 |
-hanno bisogno di funzionare con -p0 quando vengono eseguite da ${S}. |
90 |
-</p> |
91 |
- |
92 |
-<p> |
93 |
-Notare che è possibile impostare PATCHES senza definire una funzione personale |
94 |
-src_unpack() nel proprio ebuild! |
95 |
-</p> |
96 |
- |
97 |
-<p> |
98 |
-La nuova funzione epatch() da eutils.eclass è ancora più potente - essa supporta |
99 |
-patch compresse, directory e serie di patch, e individua automaticamente il |
100 |
-livello delle patch - e un giorno gli sviluppatori hanno intenzione di far usare |
101 |
-ad autopatch questa comoda funzione. |
102 |
-</p> |
103 |
- |
104 |
-<p> |
105 |
-Notare che la sezione <c>patch</c> in base_src_unpack() è deprecata e sarà |
106 |
-rimossa a breve. Se viene trovato un ebuild che la utilizza, esso necessiterà di |
107 |
-essere convertito al metodo di <c>autopatch.</c> |
108 |
-</p> |
109 |
- |
110 |
-</body> |
111 |
-</subsection> |
112 |
-<subsection> |
113 |
-<title>cvs.eclass</title> |
114 |
-<body> |
115 |
- |
116 |
-<p> |
117 |
-Questa eclass fornisce la funzionalità necessaria per creare ebuild cvs 'live'. |
118 |
-Gli ebuild vanno a prendere i sorgenti da uno specifico server cvs nel momento |
119 |
-dell'estrazione, di conseguenza ottenendo sempre i bug e le correzioni più |
120 |
-recenti dal ramo di sviluppo originale. |
121 |
-</p> |
122 |
- |
123 |
-<p> |
124 |
-Tuttavia il supporto necessario (es. gestione delle versioni) per gli ebuild cvs |
125 |
-live non è ancora stato aggiunto al portage. Essi possono lavorare con questa |
126 |
-eclass, ma non è conveniente in molti casi. Pensarci bene prima di creare un |
127 |
-ebuild cvs live; probabilmente un normale snapshot cvs è la soluzione migliore. |
128 |
-Se si intende aggiungere un ebuild di questo tipo a portage, informarsi sulle |
129 |
-guide linea degli ebuild del cvs nella guida per gli sviluppatori. |
130 |
-</p> |
131 |
- |
132 |
-<p> |
133 |
-Prima di ereditare cvs.eclass, impostare qualunque variabile non predefinita |
134 |
-necessaria (almeno l'indirizzo del server e il nome del modulo). Guardare la |
135 |
-lista delle impostazioni configurabili e dei valori predefiniti all'inizio di |
136 |
-cvs.eclass, marcati come ebuild-configurable settings'. |
137 |
-</p> |
138 |
- |
139 |
-<p> |
140 |
-Dopo di ciò, le cose sono più o meno automatiche. Viene fornito un |
141 |
-cvs_src_unpack() (senza sezioni). Per saperne di più, leggere il contenuto |
142 |
-stesso dell'eclass. |
143 |
-</p> |
144 |
- |
145 |
-</body> |
146 |
-</subsection> |
147 |
-<subsection> |
148 |
-<title>kde-functions.eclass</title> |
149 |
-<body> |
150 |
- |
151 |
-<p> |
152 |
-Questa eclass contiene tutte le funzioni di aiuto inerenti a KDE. Alcune di loro |
153 |
-non verranno mai usate direttamente in un ebuild; pertanto non verranno |
154 |
-menzionate qui, e comunque sono essere ben commentate nei sorgenti. |
155 |
-</p> |
156 |
- |
157 |
-<p> |
158 |
-Notare che con 'funzioni d'aiuto' s'intende qualsiasi funzione che non sia una |
159 |
-funzione speciale degli ebuild (src_unpack(),...). Tutte le eclass di kde |
160 |
-contengono queste funzioni 'speciali' ereditate da kde-functions. |
161 |
-</p> |
162 |
- |
163 |
-<p> |
164 |
-Il solo codice esterno a qualsiasi funzione in kde-functions.eclass (che viene |
165 |
-quindi eseguito in fase di derivazione) è un blocco che determina se l'ebuild |
166 |
-corrente fa parte di kde-base o meno. Se lo è, sarà impostata KDEBASE=true. |
167 |
-Questa variabile, è usata in diversi test logici altrove ed è ovviamente comodo |
168 |
-avere un test centralizzato per essa. |
169 |
-</p> |
170 |
- |
171 |
-<p> |
172 |
-<b>Lo schema corrente di multi-kdedir</b> |
173 |
-</p> |
174 |
- |
175 |
-<p> |
176 |
-Una breve spiegazione su come Gentoo gestisce più versioni di KDE: |
177 |
-</p> |
178 |
- |
179 |
-<p> |
180 |
-Un'installazione di KDE (per l'esattezza cose provenienti da kde-base) si trova |
181 |
-in /usr/kde/${versione-maggiore}.${versione-minore}. Così, per esempio, KDE |
182 |
-3.1.x si trova in /usr/kde/3.1. Tuttavia, questo schema è stato stabilito dopo |
183 |
-il rilascio di KDE 3.0, e così le vecchie versioni si trovano in una posizione |
184 |
-non standard: KDE 3.0.x si trova in /usr/kde/3 (e non /usr/kde/3.0) e KDE 2.2.2 |
185 |
-(la sola versione 2.x che c'è) si trova in /usr/kde/2. L'ebuild del cvs viene |
186 |
-mantenuto installato in /usr/kde/cvs. |
187 |
-</p> |
188 |
- |
189 |
-<p> |
190 |
-Ogni numero di KDE con diverse versioni minori possono quindi coesistere. I |
191 |
-pacchetti kde-base hanno diversi SLOT di maggiore.minore (per esempio 3.0, 3.1). |
192 |
-</p> |
193 |
- |
194 |
-<p> |
195 |
-Da quando si presume che le versioni di QT siano completamente retrocompatibili |
196 |
-tra versioni minori, ci sarà solamente unìinstallazione per ciascuna delle |
197 |
-versioni maggiori e con uno slot differente, residenti in |
198 |
-/usr/qt/$versione_maggiore. |
199 |
-</p> |
200 |
- |
201 |
-<p> |
202 |
-Un ebuild che non fa parte di kde-base è sempre installato in /usr. Il pacchetto |
203 |
-kde-env mette KDEDIRS=/usr in env.d, permettendo a queste applicazioni di essere |
204 |
-eseguite correttamente. L'applicazione viene compilata e collegata all'ultima |
205 |
-versione trovata delle librerie di KDE; l'eclass controlla la posizione standard |
206 |
-in ordine discendente - /usr/kde/cvs, poi /usr/kde/3.1, poi /usr/kde/3. (Gli |
207 |
-ebuild di kde-base sono sempre collegati alle kdelibs della propria versione). |
208 |
-Questo dipende sicuramente anche dal parametro dato da need-kde() (vedi sotto). |
209 |
-</p> |
210 |
- |
211 |
-<p> |
212 |
-Ci sono molte variabili speciali che si possono impostare per cambiare le |
213 |
-impostazioni predefinite del sistema. Il loro primo uso è per compilare un |
214 |
-ebuild con una versione specifica di KDE installata per test, ma è anche |
215 |
-possibile usare queste variabili per installare KDE in una posizione non |
216 |
-standard, così si avranno, per esempio, entrambi KDE 3.0.1 e 3.0.2 installati |
217 |
-fianco a fianco. Questo, inoltre, è molto più utile per il test e lo sviluppo. |
218 |
-</p> |
219 |
- |
220 |
-<p> |
221 |
-Tutte le applicazioni di KDE (base e non base) saranno installate in |
222 |
-${KDEPREFIX}, se impostato. Esso sovrascrive tutta l'altra logica nelle eclass. |
223 |
-</p> |
224 |
- |
225 |
-<p> |
226 |
-Un'applicazione di KDE (sia facente parte di kde-base, sia non) proverà ad |
227 |
-essere collegata alle kdelibs installate in ${KDELIBSDIR}, se impostata. Se |
228 |
-questo fallisce, essa ripiegherà sulla logica standard di ricercare la posizione |
229 |
-delle kdelibs più recenti (o all'appropriata versione di kde-base). |
230 |
-</p> |
231 |
- |
232 |
-<p> |
233 |
-<b>need-kde(), need-qt(), set-kdedir(), set-qtdir()</b> |
234 |
-</p> |
235 |
- |
236 |
-<p> |
237 |
-kde-functions.eclass forniscono due paia di funzioni: need-kde(), need-qt() e |
238 |
-set-kdedir(), set-qtdir(). Queste funzioni gestiscono i dettagli di diverse |
239 |
-installazioni di KDE e QT. |
240 |
-</p> |
241 |
- |
242 |
-<p> |
243 |
-La funzione need-kde() è chiamata con un parametro che è il numero minimo di |
244 |
-versione di kdelibs richiesta. Essa aggiunge le dipendenze opportune a DEPEND, |
245 |
-RDEPEND e chiama la funzione set-kdedir(). Se non vengono passati parametri, |
246 |
-verrà usata una versione di numero 0 (zero), il che significa che qualsiasi |
247 |
-versione soddisferà la dipendenza. need-kde() chiama anche need-autoconf() e |
248 |
-need-automake() con i parametri corretti per questa versione di KDE. |
249 |
-</p> |
250 |
- |
251 |
-<p> |
252 |
-Poi la funzione set-kdedir() determina il prefisso dell'installazione e la |
253 |
-posizione di kdelibs che il proprio ebuild dovrebbe usare. Questi valori vengono |
254 |
-passati all'utente rispettivamente in ${PREFIX} e ${KDEDIR}, (e sono |
255 |
-automaticamente gestiti in kde.eclass). Notare che nessun ebuild dovrebbe mai |
256 |
-impostare direttamente ${KDEPREFIX} o ${KDELIBSDIR}! |
257 |
-</p> |
258 |
- |
259 |
-<p> |
260 |
-need-kde() inoltre recupera da una tabella la versione minima richiesta di QT |
261 |
-per questa versione di kdelibs. Quindi chiama need-qt() con questa versione. Un |
262 |
-ebuild di un'applicazione dipendente solo da qt (per esempio non-kde) |
263 |
-generalmente chiama direttamente need-qt, scavalcando need-kde. |
264 |
-</p> |
265 |
- |
266 |
-<p> |
267 |
-La funzione need-qt() aggiunge le versioni richieste di QT a DEPEND, RDEPEND e |
268 |
-chiama set-qtdir() con esse. La funzione set-qtdir() imposta QTDIR come |
269 |
-posizione predefinita di questa versione delle QT. Diversamente da set-kdedir(), |
270 |
-set-qtdir() non controlla effettivamente se c'è installata una versione di QT. |
271 |
-</p> |
272 |
- |
273 |
-<p> |
274 |
-need-kde() (o need-qt()) necessita di essere chiamata dalla sezione principale |
275 |
-dell'ebuild (per esempio, non da una funzione), cosicché ogni cambiamento a |
276 |
-DEPEND e RDEPEND influenzi emerge. |
277 |
-</p> |
278 |
- |
279 |
-<p> |
280 |
-<b>need-autoconf(), need-automake()</b> |
281 |
-</p> |
282 |
- |
283 |
-<p> |
284 |
-Queste funzioni impostano l'ambiente necessario per fare funzionare le versioni |
285 |
-richieste di autoconf o automake. Esse inoltre deallocano tutte le variabili |
286 |
-di questo tipo impostate precedentemente. Per esempio, chiamando |
287 |
-'need-automake 1.4' verrà impostato NEED_AUTOMAKE_1_4=1 e deallocate tutte le |
288 |
-altre variabili WANT_AUTOMAKE*. Per maggiori informazioni, guardare il codice |
289 |
-delle funzioni e i commenti all'inizio di /usr/bin/auto{conf,male} (su sistemi |
290 |
-Gentoo). |
291 |
-</p> |
292 |
- |
293 |
-<p> |
294 |
-<b>kde_sandbox_patch()</b> |
295 |
-</p> |
296 |
- |
297 |
-<p> |
298 |
-Alcuni makefile di KDE sono malfunzionanti. Essi eseguono un chmod o un chown |
299 |
-sui file in PREFIX al momento dell'installazione, ma non rispettano DESTDIR |
300 |
-(${D}). Per esempio, durante l'installazione, copiano correttamente un file in |
301 |
-${DESTDIR}/${PREFIX}/path/foo, ma poi tentano di effettuare il comando chmod+x |
302 |
-sul file ${PREFIX}/path/foo sul filesystem reale che potrebbe anche non |
303 |
-esistere. Se questo tentativo si dovesse verificare, la sandbox previene questa |
304 |
-operazione. |
305 |
-</p> |
306 |
- |
307 |
-<p> |
308 |
-Questa funzione esegue un sed generico sui makefile per sistemare tutti i casi |
309 |
-conosciuti del problema. Viene chiamata passando come parametri le directory che |
310 |
-devono essere processate e processa i Makefile, Makefile.in e Makefile.am in |
311 |
-queste directory. Per esempio: |
312 |
-</p> |
313 |
- |
314 |
-<pre caption = "Processo"> |
315 |
-src_unpack() { |
316 |
- base_src_unpack |
317 |
- kde_sandbox_patch ${S}/dir1 ${S}/dir2/dir3 |
318 |
-} |
319 |
-</pre> |
320 |
- |
321 |
-<p> |
322 |
-<b>kde_remove_flag()</b> |
323 |
-</p> |
324 |
- |
325 |
-<p> |
326 |
-Questa funzione è usata per eliminare le flag di compilazione conosciute |
327 |
-come causa di malfunzionante del pacchetto. Si chiama questa funzione dopo |
328 |
-l'estrazione passando come parametri la sottodirectory di ${S} nella quale |
329 |
-lavorare e il nome del flag da rimuovere. Notare che la funzione non è |
330 |
-ricorsiva. Esempio: "kde_remove_flag foodir/barfoo -fomit-frame-pointer". |
331 |
-</p> |
332 |
- |
333 |
-<p> |
334 |
-<b>kde_remove_dir() e ${KDE_REMOVE_DIR}</b> |
335 |
-</p> |
336 |
- |
337 |
-<p> |
338 |
-Questa funzione rimuove la specifica sottodirectory dalla compilazione. Essa la |
339 |
-rimuove e rimuove tutte le sue referenze dai file delle sottodirectory,da |
340 |
- configure e dai makefile. Notare che al momento funziona soltanto nelle |
341 |
-sottodirectory di ${S}, non funziona nel secondo livello di sottodirectory. La |
342 |
-si può invocare con una lista di sottodirectory da eliminare; essa lavora a |
343 |
-turno con ogni parametro. |
344 |
-</p> |
345 |
- |
346 |
-<p> |
347 |
-È possibile chiamarla direttamente ma per evitare di definire una funzione |
348 |
-src_unpack() personalizzata è possibile impostare KDE_REMOVE_DIR con una lista |
349 |
-di sottodirectory da eliminare. kde_src_unpack() chiamerà 'kde_remove_dir |
350 |
-${KDE_REMOVE_DIR}' dopo l'estrazione. Come si può vedere, ci si è spinti molto |
351 |
-avanti per permettere di definire una funzione extra in un ebuild, questo per |
352 |
-rendere gli ebuild più puliti e leggibili. |
353 |
-</p> |
354 |
- |
355 |
-</body> |
356 |
-</subsection> |
357 |
-<subsection> |
358 |
-<title>kde.eclass</title> |
359 |
-<body> |
360 |
- |
361 |
-<p> |
362 |
-Questa è l'eclass principale e centrale di KDE. Contiene la maggior parte del |
363 |
-codice relativo a KDE. Tutti gli ebuild di KDE, in un modo o nell'altro la |
364 |
-ereditano. L'eclass di kde eredita le funzioni di base e kde-functions. |
365 |
-</p> |
366 |
- |
367 |
-<p> |
368 |
-Come con le altre eclass, leggerla per vedere cosa fa. La maggior parte del |
369 |
-codice è molto chiaro. Qui c'è un breve riepilogo: |
370 |
-</p> |
371 |
- |
372 |
-<p> |
373 |
-La sezione globale dell'eclass (per esempio, quella che viene eseguita quando la |
374 |
-si eredita) aggiunge le corrette dipendenze su kde-env, automake, autoconf, male |
375 |
-e perl (quest'ultimo è usato dalle configurazioni standard degli script per la |
376 |
-generazione veloce dei makefile). Imposta inoltre in modo predefinito SLOT="0". |
377 |
-</p> |
378 |
- |
379 |
-<p> |
380 |
-kde_src_unpack() di base chiama solamente base_src_unpack(), passando tutti i |
381 |
-parametri (per esempio sezioni da eseguire). Dopo questo, aggiunge elementi |
382 |
-specifici di kde. "Tocca" (cambiando la data e ora di modifica) tutti i file |
383 |
-.ui nel codice estratto per rigenerare tutti i vecchi file .cpp e .h. Chiama |
384 |
-anche kde_remove_dir() con ${KDE_REMOVE_DIR} se questa varibile è impostata |
385 |
-(guardare più sopra nella sezione su kde-functions). |
386 |
-</p> |
387 |
- |
388 |
-<p> |
389 |
-Anche kde_src_compile() possiede molte correzioni. Una di esse esporta |
390 |
-kde_widgetdir="${KDEDIR}/lib/kde3/plugins/designer" per raggirare un bug |
391 |
-presente in vecchi acinclude.m4.in. Un altro è quello di impostare |
392 |
-HOME="${T}/fakehome", così facendo gli accessi a ${HOME}/.kde e $HOME/.qt non |
393 |
-verranno interrotti dalla sandbox, e non toccheranno l'home directory |
394 |
-dell'utente. Questo è un bug (o mancanza) di uic, che tenta sempre di accedere |
395 |
-ai file di configurazione di queste directory. |
396 |
-</p> |
397 |
- |
398 |
-<p> |
399 |
-kde_src_compile() possiede diverse sezioni. <c>myconf</c> aggiunge a ${myconf} i |
400 |
-parametri predefiniti dello script di configurazione di kde, come |
401 |
---prefix=${PREFIX} (ricordarsi che ${PREFIX} è impostato da set-kdedir()). È |
402 |
-possibile aggiungere i propri valori personali a ${myconf} sia prima che dopo |
403 |
-questa sezione; ricordarsi solo di non sovrascrivere i vecchi valori, perchè gli |
404 |
-utenti possono pensare di impostare $myconf nella shell e in questo modo |
405 |
-aggiungere qualcosa ai parametri configurati usati dall'ebuild. |
406 |
-</p> |
407 |
- |
408 |
-<p> |
409 |
-La sezione <c>configure</c> esegue lo script di configurazione in ${S}, |
410 |
-passandole ${myconf}. Se lo script di configurazione non esiste, proverà a |
411 |
-generarlo eseguendo male -f Makefile.cvs o male -f admin/Makefile.common. In |
412 |
-questo modo, questo passo della compilazione (che è necessario per gli snapshot |
413 |
-del cvs, o per gli ebuild che applicano patch a file come configure.in) viene |
414 |
-anche eseguito automaticamente. |
415 |
-</p> |
416 |
- |
417 |
-<p> |
418 |
-La sezione <c>male</c> esegue semplicemente emake || die. Per finire, c'è una |
419 |
-sezione <c>all</c> che esegue tutto quando appena spiegato. |
420 |
-</p> |
421 |
- |
422 |
-<p> |
423 |
-Infine, kde_src_install() possiede una sezione <c>male</c> che esegue male |
424 |
-install, e una sezione <c>dodoc</c> che esegue dodoc su alcuni nomi standard di |
425 |
-documenti in ${S}, come README e COPYING. |
426 |
-</p> |
427 |
- |
428 |
-</body> |
429 |
-</subsection> |
430 |
-<subsection> |
431 |
-<title>kde-base.eclass</title> |
432 |
-<body> |
433 |
- |
434 |
-<p> |
435 |
-Questa eclass è ora deprecata, l'ebuild deve usare al suo posto "inherit kde". |
436 |
-</p> |
437 |
- |
438 |
-</body> |
439 |
-</subsection> |
440 |
-<subsection> |
441 |
-<title>kde-dist.eclass</title> |
442 |
-<body> |
443 |
- |
444 |
-<p> |
445 |
-Questa eclass è per il cuore dei pacchetti di distribuzione di kde in |
446 |
-kde-base/*. Eredita kde. |
447 |
-</p> |
448 |
- |
449 |
-<p> |
450 |
-Imposta correttamente DESCRIPTION e HOMEPAGE e chiama need-kde ${PV}. Il più |
451 |
-semplice, piccolo pacchetto kde-base/ (per esempio kdetoys) non necessita di |
452 |
-fare nessun cambiamento ad essa, la maggior parte di essi aggiunge soltanto |
453 |
-dipendenze e patch. |
454 |
-</p> |
455 |
- |
456 |
-</body> |
457 |
-</subsection> |
458 |
-<subsection> |
459 |
-<title>kde-i18n.eclass</title> |
460 |
-<body> |
461 |
- |
462 |
-<p> |
463 |
-Questa eclass è per i pacchetti kde-i18n-*. Infatti, tutti gli ebuild di |
464 |
-kde-i18n sono completamente identici per cui tutto quello che devono |
465 |
-fare è ereditare da questa eclass. Le loro variabili ${P}, ${P}, ${PV} fanno il |
466 |
-resto. |
467 |
-</p> |
468 |
- |
469 |
-</body> |
470 |
-</subsection> |
471 |
-<subsection> |
472 |
-<title>kde.org.eclass</title> |
473 |
-<body> |
474 |
- |
475 |
-<p> |
476 |
-Questa eclass è anch'essa deprecata, e tutto il codice è stato spostato in |
477 |
-kde-dist.eclass. |
478 |
-</p> |
479 |
- |
480 |
-</body> |
481 |
-</subsection> |
482 |
-<subsection> |
483 |
-<title>koffice-i18n.eclass</title> |
484 |
-<body> |
485 |
- |
486 |
-<p> |
487 |
-Questa eclass è pensata per i pacchetti koffice-i18n-* ed è molto simile a |
488 |
-kde-i18n.eclass. Anche qui, tutti gli ebuild di kde-i18n sono completamente |
489 |
-identici per cui tutto quello che devono fare è ereditare da questa eclass. |
490 |
-</p> |
491 |
- |
492 |
-</body> |
493 |
-</subsection> |
494 |
-<subsection> |
495 |
-<title>kde-source.eclass</title> |
496 |
-<body> |
497 |
- |
498 |
-<p> |
499 |
-Questa eclass lavora al di sopra di cvs.eclass, aggiungendo alcune funzionalità |
500 |
-specifiche di kde. Per esempio, recupera automaticamente la directoy admin/ dal |
501 |
-modulo kde-common del cvs di kde. Per saperne di più, incluse le impostazioni |
502 |
-specifiche per il cvs di kde che si possono passare, leggere l'eclass. |
503 |
-</p> |
504 |
- |
505 |
-</body> |
506 |
-</subsection> |
507 |
-</section> |
508 |
-<section> |
509 |
-<title>Scrittura di ebuild per KDE</title> |
510 |
-<subsection> |
511 |
-<title>Introduzione</title> |
512 |
-<body> |
513 |
- |
514 |
-<p> |
515 |
-Questo capitolo spiega come scrivere ebuild standard per KDE. Tutto quanto è |
516 |
-detto qui è un ripasso di tutte le informazioni sulle eclass spiegate in |
517 |
-precedenza. Se si è in dubbio, guardare gli altri ebuild, le altre eclass, |
518 |
-oppure chiedere. |
519 |
-</p> |
520 |
- |
521 |
-</body> |
522 |
-</subsection> |
523 |
-<subsection> |
524 |
-<title>Un tipico ebuild di KDE</title> |
525 |
-<body> |
526 |
- |
527 |
-<p> |
528 |
-Il codice sottostante dovrebbe essere chiaro dopo avere letto questa guida: |
529 |
-</p> |
530 |
- |
531 |
-<pre caption = "Un semplice ebuild di KDE, #1"> |
532 |
-<L'intestazione va qui...> |
533 |
-inherit kde |
534 |
-</pre> |
535 |
- |
536 |
-<p> |
537 |
-Alcuni ebuild terminano proprio qui. Altri necessitano di alcune |
538 |
-personalizzazioni. |
539 |
-</p> |
540 |
- |
541 |
-<p> |
542 |
-Il prossimo passo serve per aggiungere delle dipendenze extra. Ricordarsi di |
543 |
-estendere *sempre* le variabili, non sovrascriverle mai! |
544 |
-</p> |
545 |
- |
546 |
-<p> |
547 |
-Siccome lo scopo è quello di evitare la definizione di funzioni ebuild |
548 |
-personalizzate a meno che non ci sia altra scelta, vengono usate tutte le |
549 |
-impostazioni possibili e chiamate tutte le possibili funzioni d'aiuto, |
550 |
-direttamente dalla sezione principale dell'ebuild. Ricordarsi però che ci sono |
551 |
-limitazioni sul codice nella sezione principale; per esempio, essa non deve |
552 |
-produrre nessun output (l'output di debug-print() probabilmente non conta). |
553 |
-</p> |
554 |
- |
555 |
-<pre caption="Un semplice ebuild di KDE, #2: aggiungere dipendenze extra"> |
556 |
-DEPEND="foo/bar" |
557 |
-RDEPEND="bar/foo" |
558 |
-</pre> |
559 |
- |
560 |
-<p> |
561 |
-Si vogliono anche aggiungere alcuni argomenti extra a myconf, che vengono |
562 |
-passati allo script configure (assumendo di usare la sezione di configurazione |
563 |
-kde_src_compile): |
564 |
-</p> |
565 |
- |
566 |
-<pre caption="Un semplice ebuild di KDE, #4: passare argomenti alla |
567 |
-configurazione" > |
568 |
-myconf="$myconf --with-foobar" |
569 |
-</pre> |
570 |
- |
571 |
-<p> |
572 |
-C'è anche una patch da aggiungere. Se può essere applicata usando -p0 in ${S}, |
573 |
-si può usare la sezione <c>autopatch</c> di base_src_unpack. Ricordarsi che |
574 |
-kde_src_unpack() chiama base_src_unpack() passando tutti i parametri che gli |
575 |
-vengono dati. |
576 |
-</p> |
577 |
- |
578 |
-<pre caption="Un semplice ebuild di KDE, #5: autopatching"> |
579 |
-PATCHES="$FILESDIR/$P-myfix.diff" |
580 |
-</pre> |
581 |
- |
582 |
-<p> |
583 |
-Infine si vuole estendere src_install() per installare della documentazione: |
584 |
-</p> |
585 |
- |
586 |
-<pre caption="Un semplice ebuild di KDE, #6: estendere src_install()"> |
587 |
-src_unpack() { |
588 |
- kde_src_install |
589 |
- dodoc $S/doc/* |
590 |
-} |
591 |
-</pre> |
592 |
- |
593 |
-<p> |
594 |
-Questo è l'ebuild creato in questo esempio: |
595 |
-</p> |
596 |
- |
597 |
-<pre caption="Un semplice ebuild di KDE - codice completo"> |
598 |
-<L'intestazione va qui...> |
599 |
-inherit kde |
600 |
- |
601 |
-# aggiungere le dipendenze |
602 |
-DEPEND="foo/bar" |
603 |
-RDEPEND="bar/foo" |
604 |
- |
605 |
-# abilitare sempre foobar |
606 |
-myconf="${myconf} --with-foobar" |
607 |
- |
608 |
-# correzione di un terribile bug |
609 |
-PATCHES="${FILESDIR}/${P}-myfix.diff" |
610 |
- |
611 |
-src_unpack() { |
612 |
- kde_src_install |
613 |
- # installare alcuna documentazione extra non inclusa nel target di male |
614 |
- # install |
615 |
- dodoc ${S}/doc/* |
616 |
-} |
617 |
-</pre> |
618 |
- |
619 |
-</body> |
620 |
-</subsection> |
621 |
-<subsection> |
622 |
-<title>Un tipico ebuild con funzionalità KDE opzionali</title> |
623 |
-<body> |
624 |
- |
625 |
-<p> |
626 |
-Quando si aggiungono funzionalità (eclass) kde ad un ebuild esistente, basta |
627 |
-anteporre <c>use kde &&</c> ad ogni linea specifica per kde, oppure |
628 |
-creare interi blocchi <c>if [ -n "`use kde`" ]; then; fi</c>. |
629 |
-</p> |
630 |
- |
631 |
-<p> |
632 |
-Alla sezione generale, aggiungere il codice seguente (solo se la USE kde è |
633 |
-impostata, chiaramente): |
634 |
-</p> |
635 |
- |
636 |
-<pre caption="Supporto opzionale per KDE - sezione principale dell'ebuild"> |
637 |
-inherit kde-functions |
638 |
- |
639 |
-# Questo aggiungerà kdelibs, kde-env alla stringa delle dipendenze e imposta |
640 |
-# ${KDEDIR} con il valore corretto: |
641 |
- |
642 |
-need-kde ${version} # versione minima di kde richiesta dalla propria applicazione |
643 |
- |
644 |
-# Aggiunge tutto il resto di cui hai bisogno per il supporto di kde: |
645 |
-use kde && myconf="${myconf} --with-my-parameter" |
646 |
-</pre> |
647 |
- |
648 |
-<p> |
649 |
-A questo punto chiedere alla propria applicazione di cercare KDE nelle |
650 |
-impostazioni di ${KDEDIR} che sarà disponibile dopo aver chiamato need-kde(). Se |
651 |
-non si vuole che la dipendenza a kdelibs sia aggiunta, chiamare set-kdedir() al |
652 |
-posto di need-kde(). |
653 |
+È possibile effettuare l'emerge di app-portage/eclass-manpages per ottenere la |
654 |
+documentazione delle eclass esistenti. |
655 |
</p> |
656 |
|
657 |
</body> |