Page 1 of 1
Applicare modifica a gtk+
Posted: Wed Mar 20, 2013 3:24 pm
by 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+?
Posted: Wed Mar 20, 2013 7:56 pm
by 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.
Posted: Thu Mar 21, 2013 9:38 pm
by pingoo

non ho mai messo mano agli ebuild né applicato alcuna patch... non so nemmeno seguire gli inherit
Code: Select all
inherit eutils flag-o-matic gnome.org gnome2-utils multilib virtualx
Dove posso cercare informazioni mirate allo scopo, senza però diventare uno sviluppatore gentoo?

Se ho capito bene, alla fine si tratterebbe di scrivere/preparare la patch e capire dove metterla
Posted: Fri Mar 22, 2013 8:09 am
by Onip
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.
Posted: Fri Mar 22, 2013 9:12 pm
by pingoo
Immaginavo fosse una cosa più immediata, mi sa che prima faccio un test della modifica

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 ...
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

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
