# Applicare modifica a gtk+

## pingoo

C'è un comportamento di gnome che proprio non riesco a digerire. In sostanza dopo aggiornamento a gnome 3.6 non funziona più il tab switching con la rondella del mouse. Siccome è una cosa alla quale mi sono ormai abituato da tempo (in firefox avevo installato apposita estensione), avevo aperto anche un bug, prima in gentoo poi in gnome, salvo scoprire che la cosa era già stata segnalata e che si tratta di una feature... 

Non che mi sia arreso, ma qual'è il modo più semplice e veloce per applicare delle modifiche (es. queste) ad ogni ricompilazione/aggiornamento delle gtk+?

----------

## Onip

se l'ebuild supporta epatch_user (devi leggerlo, seguire gli inherit e vedere se viene chiamato, o, più semplicemente, provare) ti basta mettere la patch in /etc/portage/<qualcosa> e ad ogni emersione la patch verrà applicata.

altrimenti ti devi copiare l'ebuild in un overlay locale e applicare la patch modificando opportunamente la funzione src_prepare. Ad ogni aggiornamento dovrai preoccuparti manualmente di aggiornare la tua copia.

----------

## pingoo

 :Embarassed:  non ho mai messo mano agli ebuild né applicato alcuna patch... non so nemmeno seguire gli inherit

```

inherit eutils flag-o-matic gnome.org gnome2-utils multilib virtualx

```

Dove posso cercare informazioni mirate allo scopo, senza però diventare uno sviluppatore gentoo?  :Smile:  Se ho capito bene, alla fine si tratterebbe di scrivere/preparare la patch e capire dove metterla

----------

## Onip

```
inherit <nome>
```

significa che l'ebuild "include" il file /usr/portage/eclasses/<nome>.eclass.

te li devi leggere un po' e vedere se epatch_user viene chiamata.

L'alternativa più semplice, comunque, è provare: ti documenti bene su dove va sistemata la patch (nel forum si trova), la metti e poi provi ad emergere il pacchetto: nelle prime righe ti dirà se la sta applicando o meno.

le informazioni per modificare/creare ebuild le trovi nel devmanual.

----------

## pingoo

Immaginavo fosse una cosa più immediata, mi sa che prima faccio un test della modifica  :Smile:  Poi se funziona mi documento (leggi non aggiorno più gtk+ eheh)

Ho dato un'occhiata, epatch_user è definita in eutils.eclass e sì, viene invocata nella src_prepare di gtk+

Per il momento grazie, se poi vedo che non ne esco ...  :Wink: 

EDIT: ok, fatto

diff -u file_originale file_originale+modifiche > gtk+_tab_scroll_switch.patch

modificato gtk+_tab_scroll_switch.patch per aggiungere (a|b)/gtk/ e rimuovere riferimenti orari (non so se veramente necessario)

creata cartella /etc/portage/patches/x11-libs/gtk+ per accogliere la patch

ricompilato package

 :Smile: 

Ho dovuto fare un po' di prove e aggiungere echo in epatch_user per capire dove mettere la patch, anche se è scritto nella descrizione di epatch_user

Ciò che mi lascia perplesso è, che se ho capito bene da quanto ho visto, la patch è fortemente legata alle versioni del file di origine/destinazione, ovvero se aggiungeranno delle righe al file, la patch potrebbe non essere più valida... vabbè intanto mi godo il ritorno del bug  :Very Happy: 

----------

