Aggiungere una patch a un pacchetto Debian

Da Guide@Debianizzati.Org.

Trash 01.png Attenzione. Questa guida è stata proposta per la cancellazione in quanto contenente materiale potenzialmente dannoso, inutile o fuorviante.
Motivo: clone di Applicare una patch ad un pacchetto Debian


Debian-swirl.png Versioni Compatibili
Tutte le versioni supportate di Debian

Indice

Riporto un problema che mi capitò nell'agosto del 2011, che risolsi in sintesi proprio applicando una patch ad un pacchetto pre-compilato in Debian.

La storia

Per scrivere su un file pdf utilizzo il programma Xournal (GPLv2, presente nel repository "main" di Debian). Proprio quel giorno di agosto del 2011 mi capitò di dover compilare un modulo in pdf e di dover apporre la firma in coda. Il destinatario del modulo mi aveva richiesto di stampare il file, compilarlo a mano, "scannarlo" e spedirglielo via email. Non volendo però sprecare carta, inchiostro e natura,pensai di sfruttare il citato Xournal (0.4.5-3) per compilarlo (non compilarlo come un sorgente ;-), ma intendo riempire i campi vuoti con i dati relativi). Il mio problema era però relativo alla firma, non potendo con questa versione inserirla come immagine tramite il programma stesso, non volevo neppure utilizzare un secondo software. Dopo qualche ricerca scoprii una patch per aggiungere questa funzione ottenendo esattamente ciò che cercavo.

La procedura

1. Prima di tutto occorre aggiungere al nostro sources.list (/etc/apt/sources.list) il repository principale con i sorgenti. Copieremo dunque il nostro repository principale di Debian modificando però l'inizio con un "deb-src" al posto del classico "deb". Nel mio caso:

deb http://debian.ethz.ch/debian sid main
deb-src http://debian.ethz.ch/debian sid main

seguirà un update della cache dei pacchetti ad esempio con un:

# aptitude update


2. A questo punto possiamo scaricare i sorgenti del pacchetto in questione nella directory che preferiamo con il comando:

$ apt-get source xournal

Verranno scaricati 4 file:

xournal-0.4.5
xournal_0.4.5-3.debian.tar.gz
xournal_0.4.5.orig.tar.gz
xournal_0.4.5-3.dsc

Il primo è una directory contenente l'insieme dei due archivi sottostanti compattati, mentre il file .dsc è relativo al file di controllo tipico dei pacchetti Debian.


3. Per poter compilare i sorgenti, il mitico apt-get ci aiuterà a procurarci tutto quanto ci serva per la compilazione degli stessi con il semplice comando:

# apt-get build-dep xournal


4. Scaricati i pacchetti necessari ci procureremo ora la patch con la funzione per inserire le immagini. Questa la troviamo su sourceforge (http://sourceforge.net/tracker/index.php?func=detail&aid=2987520&group_id=163434&atid=827735) attualmente alla settima revisione. Per il download troviamo un link nella sezione relativa o potete scaricarla direttamente qui (http://sourceforge.net/tracker/download.php?group_id=163434&atid=827735&file_id=381572&aid=2987520). Il file scaricato avrà una nomenclatura tipo la seguente:

xournal-0.4.5-sjg-image-rev7.patch.gz

Scompatteremo poi l'archivio con gunzip.


5. A questo punto ci porteremo nella directory principale di xournal (v. sopra) e applicheremo la patch con un classico:

$ patch -p1 < ../xournal-0.4.5-sjg-image-rev7.patch

calcolando che la patch si trova nella directory con i sorgenti di xournal, altrimenti dovremo semplicemente dare la locazione corretta di quest'ultima.


5a. Potremmo ora già ricompilare il pacchetto. Se volessimo però mantenere due versioni dello stesso sul sistema dovremo cambiare il nome di quest'ultimo. Per fare ciò utilizzeremo il programma "dch" presente nel pacchetto "devscripts". Questo passaggio non è obbligatorio se si disinstallasse dapprima la "vecchia" versione di xournal; dovremo però essere coscienti di quanto fatto e ricordarci del pacchetto modificato nel sistema.


6. Per ricompilare il pacchetto, utilizzando ancora tutta la "potenza" dei devscripts daremo dalla directory dei sorgenti un semplicissimo:

$ debuild -us -uc

Le opzioni "us" e "uc" sono utilizzate per non "firmare" i sorgenti, rispettivamente i cambiamenti in quanto potrebbero portare ad errori non avendo una corrispondente chiave nel nuovo pacchetto. Il pacchetto sarà dunque ricompilato. Verranno creati i file *.build e *.changes oltre ad un nuovo fiammante *.deb.


7. Installeremo dunque il .deb con un classico "dpkg -i". Nel mio caso:

# dpkg -i xournal_0.4.5-3_amd64.deb

Il nuovo pacchetto avrà l'icona "insert image" nella barra degli strumenti a fianco della "T" per inserire del testo.

Conclusioni

Il tempo passa e al momento attuale, almeno sulla mia sid, xournal è passato alla versione 0.4.7-1 e la patch in questione è stata dunque applicata. Il metodo resta comunque attuabile per qualsiasi pacchetto in caso di necessità, così come ancora oggi per lo stesso xournal per le versioni di testing e/o stable. Non mi resta che dire, happy (re-)compiling ;-)




Guida scritta da: Brunitika 23:51, 4 nov 2012 (CET)

Swirl-auth20.png Debianized 20%

Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized

Strumenti personali
Namespace
Varianti
Azioni
Navigazione
Risorse
Strumenti