# Applicare una patch e rigenerare un ebuild [semi RISOLTO]

## tocas

Ho un errore di compilazione delle libgdiplus, consigliano di applicare la patch e rifare l'ebuild da quì.

L'ebuild dovrei essere in grado di rigenerarlo ma non ho idea di come applicare la patch.

Chi mi può aiutare ?

GrazieLast edited by tocas on Mon Aug 08, 2005 11:18 am; edited 1 time in total

----------

## .:chrome:.

vado a memoria perché l'ho fatto una volta, tempo fa. quindi ti prego di perdare eventuali imprecisioni

- copi l'intera directory dell'ebuild in /usr/local/portage (devi avere definito portage overlay in make.conf)

- applichi la patch aggiungendo una riga epatch all'ebuild

- rigeneri l'ebuild

dovrebbe essere tutto qui, se non ricordo male

----------

## otaku

si aggiungi

```
epatch <patch>
```

nella funzione src_unpack()

poi nella cartella dell'ebuild dai un

```
ebuild app-99.9.ebuild
```

quindi emergi il pacchetto

----------

## knefas

Ho guardato il bug in questione.  :Smile: 

In pratica devi fare come dice k.gothmog, ricapitolando: 

1) ti crei un overlay del portage, ad esempio /usr/local/portage con le dir giuste, ad esempio dev-dotnet/libgdiplus (v. qui)

2) copi nella dir dev-dotnet/libgdiplus il tuo ebuild e in dev-dotnet/libgdiplus/files tutti i file richiesti dall'ebuild in questione  (quelli che l'ebuild chiama da ${FILESDIR}: due li trovi in /usr/portage e uno e' proprio la patch postata su bugzilla)

3) generi il digest e provi a installare. Ti consiglio di fare le fasi (unpack compile install) manualmente per controllare bene tutto, e poi dare l'emerge.

Buon lavoro.  :Smile: 

----------

## tocas

Ci sono riuscito..... grazie a tutti però senza applicare la patch manualmente perchè il comando 

```
epatch <patch>
```

non esiste nel mio sistema. 

Fa parte di una site di tools aggiuntivi da emergere ?

Comunque ho creato il portage overlay come descritto e rigenerato l'ebuild. Controllando i messaggi a video ho potuto

constatare che la patch è stata applicata automaticamente da emerge e la compilazione è andata a buon fine.

 :Very Happy:   :Very Happy: 

TNX

----------

## knefas

le patch agli ebuild le applichi a mano (con patch), mentre le patch ai sorgenti sono applicate dagli ebuild tramite il comando epatch, che e' reso disponibile con inehrit eutils. Ma e' un comando interno al portage, come emake, einstall (la "e" sta per easy, credo), e' un wrapper per "patch"  :Smile: 

----------

