23
contributi
Riga 37: | Riga 37: | ||
Questo comando creer� un file dal nome ''my_patch'' che conterr� tutti i cambiamenti apportati al sorgente del kernel rispetto alla versione pulita presente nella directory clean. Tale file potr� essere distribuito o inviato ad agli altri sviluppatori via email. | Questo comando creer� un file dal nome ''my_patch'' che conterr� tutti i cambiamenti apportati al sorgente del kernel rispetto alla versione pulita presente nella directory clean. Tale file potr� essere distribuito o inviato ad agli altri sviluppatori via email. | ||
===Nuove versioni del kernel=== | |||
Al rilascio di una nuova versione del kernel, se si desidera portare i cambiamenti su questa nuova versione necessario applicare la patch ad una versione ''pulita'' del kernel. | |||
Questo pu essere fatto seguendo questi passi: | |||
* Creare la patch, come illustrato nell'esempio precedente. | |||
* Utilizzare la patch ufficiale dal sito ''kernel.org'' e aggiornare la vecchia versione alla nuova release: | |||
<pre> | |||
$ cd linux-2.6.19 | |||
$ patch -p1 < ../patch-2.6.20 | |||
$ cd .. | |||
$ mv linux-2.6.19 linux-2.6.20 | |||
</pre> | |||
* Aggiornare la directory di lavoro rimuovendo la propria patch e, in seguito, applicando il nuovo aggiornamento: | |||
<pre> | |||
$ cd linux-2.6.19-dirty | |||
$ patch -p1 -R < ../my_patch | |||
$ patch -p1 < ../patch-2.6.20 | |||
$ cd .. | |||
$ mv linux-2.4.19-dirty linux-2.6.20-dirty | |||
</pre> | |||
* Provare ad applicare la propria patch sul nuovo aggiornamento: | |||
<pre> | |||
$ cd linux-2.6.20-dirty | |||
$ patch -p1 < ../my_patch | |||
</pre> | |||
Se l'applicazione della patch provoca dei problemi, necessario risolvere i conflitti creati (il comando ''patch'' informer circa questi conflitti creando i file ''.rej'' e ''.orig'' per l'analisi e la correzioni da parte dello sviluppatore). | |||
Questo processo di ''fusione'' (''merge'') pu rappresentare la parte pi difficile dell'intero processo se sono stati apportati cambiamenti a porzioni di codice che sono state modificate anche da altri. | |||
Per applicare correttamente questo processo di sviluppo, raccomando fortemente di utilizzare l'eccellente insieme di programmi ''patchutils'' (reperibile qui: ''http://cyberelk.net/tim/patchutils''). Questi programmi permettono di manipolare le patch facilmente e hanno risparmiato agli sviluppatori molte ore di tedioso lavoro. | |||
---- | ---- |
contributi