Come patchare un pacchetto

From Paldo

(Difference between revisions)
Jump to: navigation, search
Revision as of 00:38, 24 November 2010 (edit)
Onevejo (Talk | contribs)

← Previous diff
Current revision (18:20, 1 December 2010) (edit) (undo)
WikiSysop (Talk | contribs)
m (Reverted edits by Onevejo (Talk); changed back to last version by Paolo)
 
Line 1: Line 1:
----- 
-<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"> 
----- 
-=[http://ebytery.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]= 
----- 
-=[http://ebytery.co.cc CLICK HERE]= 
----- 
-</div> 
== Come applicare le patch con Upkg == == Come applicare le patch con Upkg ==
''Scritta da Paolo Stivanin nel marzo 2009'' ''Scritta da Paolo Stivanin nel marzo 2009''
Line 16: Line 8:
Io ho una scheda TV PCI nella mia Paldo-box. Purtroppo non c'è una applicazione gnome per guardare la tv nel main repo di Paldo quindi ho deciso di compilare e installare [http://zapping.sourceforge.net/ zapping] . Purtroppo ho avuto un errore nel make: Io ho una scheda TV PCI nella mia Paldo-box. Purtroppo non c'è una applicazione gnome per guardare la tv nel main repo di Paldo quindi ho deciso di compilare e installare [http://zapping.sourceforge.net/ zapping] . Purtroppo ho avuto un errore nel make:
-&lt;pre&gt;+<pre>
In file included from io-v4l2k.c:55: In file included from io-v4l2k.c:55:
videodev2k.h:19:46: error: linux/compiler.h: No such file or directory videodev2k.h:19:46: error: linux/compiler.h: No such file or directory
Line 28: Line 20:
make[1]: Leaving directory `/home/pol/temp/zvbi-0.2.19.orig' make[1]: Leaving directory `/home/pol/temp/zvbi-0.2.19.orig'
make: *** [all] Error 2 make: *** [all] Error 2
-&lt;/pre&gt;+</pre>
Sarebbe stato semplice commentare la linea del linux/compiler.h ma è meglio fare il giro lungo perchè prima o poi sarà necessario sapere applicare una patch ;-) Sarebbe stato semplice commentare la linea del linux/compiler.h ma è meglio fare il giro lungo perchè prima o poi sarà necessario sapere applicare una patch ;-)
== Creare il file diff == == Creare il file diff ==
-Innazitutto scaricate i sorgenti e scompattateli. Io ho aggiunto il suffisso &quot;.orig&quot; alla cartella e ho fatto una copia della suddetta senza il suffiso. Le mie directorys ora sono:+Innazitutto scaricate i sorgenti e scompattateli. Io ho aggiunto il suffisso ".orig" alla cartella e ho fatto una copia della suddetta senza il suffiso. Le mie directorys ora sono:
-&lt;pre&gt;+<pre>
[pol@pol-laptop:~/temp]$ ls -la [pol@pol-laptop:~/temp]$ ls -la
[...] [...]
drwxr-xr-x 9 nicolas users 4096 2006-03-29 17:01 zvbi-0.2.19 drwxr-xr-x 9 nicolas users 4096 2006-03-29 17:01 zvbi-0.2.19
drwxr-xr-x 9 nicolas users 4096 2006-03-29 17:03 zvbi-0.2.19.orig drwxr-xr-x 9 nicolas users 4096 2006-03-29 17:03 zvbi-0.2.19.orig
-&lt;/pre&gt;+</pre>
Entriamo nella cartella di lavoro, quella senza il suffisso, e fixiamo il bug. Usciamo dalla cartella di lavoro e creiamo il diff-file usando il comando diff. Nel mio esempio ho cambiato il file videodev2k.h che può essere trovato nella cartella src della mia cartella di lavoro (zvbi-0.2.19/src/videodev2k.h). Ora ho creato il diff-file col comando: Entriamo nella cartella di lavoro, quella senza il suffisso, e fixiamo il bug. Usciamo dalla cartella di lavoro e creiamo il diff-file usando il comando diff. Nel mio esempio ho cambiato il file videodev2k.h che può essere trovato nella cartella src della mia cartella di lavoro (zvbi-0.2.19/src/videodev2k.h). Ora ho creato il diff-file col comando:
-&lt;pre&gt;+<pre>
- [pol@pol-laptop:~/temp]$ diff -puNr zvbi-0.2.19.orig zvbi-0.2.19 &gt; zvbi-0.2.19-compiler.h-1.patch+ [pol@pol-laptop:~/temp]$ diff -puNr zvbi-0.2.19.orig zvbi-0.2.19 > zvbi-0.2.19-compiler.h-1.patch
-&lt;/pre&gt;+</pre>
== Comprimere il file == == Comprimere il file ==
Line 52: Line 44:
Ora usiamo '''bzip2''' per comprimere la patch e copiamo i sorgenti originali e l'archivio con la patch nel repository. Il mio repo ora sarà così: Ora usiamo '''bzip2''' per comprimere la patch e copiamo i sorgenti originali e l'archivio con la patch nel repository. Il mio repo ora sarà così:
-&lt;pre&gt;+<pre>
[pol@pol-laptop:~/]$ ls -la PaldoRepo/sources/zvbi-0.2/ [pol@pol-laptop:~/]$ ls -la PaldoRepo/sources/zvbi-0.2/
[...] [...]
-rw-r--r-- 1 pol users 344 2006-03-29 16:30 zvbi-0.2.19-compiler.h-1.patch.bz2 -rw-r--r-- 1 pol users 344 2006-03-29 16:30 zvbi-0.2.19-compiler.h-1.patch.bz2
-rw-r--r-- 1 pol users 722143 2006-03-29 15:55 zvbi-0.2.19.tar.bz2 -rw-r--r-- 1 pol users 722143 2006-03-29 15:55 zvbi-0.2.19.tar.bz2
-&lt;/pre&gt;+</pre>
== Informare Upkg della patch == == Informare Upkg della patch ==
Ora creiamo un file spec. Ora creiamo un file spec.
-La parte importante è aggiungere '''patch-directive between''' la tag '''archive- tag''' (&lt;patch name=&quot;zvbi-0.2.19-compiler.h-1&quot;/&gt;). Come puoi vedere non devi aggiungere il suffisso &quot;.patch.bz2&quot;. In questo caso Upkg cercherà automaticamente il file '''zvbi-0.2.19-compiler.h-1.patch.bz2''' e lo applicherà automagicamente durante il processo di installazione.+La parte importante è aggiungere '''patch-directive between''' la tag '''archive- tag''' (<patch name="zvbi-0.2.19-compiler.h-1"/>). Come puoi vedere non devi aggiungere il suffisso ".patch.bz2". In questo caso Upkg cercherà automaticamente il file '''zvbi-0.2.19-compiler.h-1.patch.bz2''' e lo applicherà automagicamente durante il processo di installazione.
-&lt;pre&gt;+<pre>
- &lt;?xml version=&quot;1.0&quot;?&gt;+ <?xml version="1.0"?>
- &lt;package name=&quot;zvbi-0.2&quot;&gt;+ <package name="zvbi-0.2">
- &lt;description&gt;the vertical blanking interval (VBI) library&lt;/description&gt;+ <description>the vertical blanking interval (VBI) library</description>
- &lt;releases&gt;+ <releases>
- &lt;release version=&quot;0.2.19&quot; revision=&quot;1&quot; branch=&quot;testing&quot;&gt;+ <release version="0.2.19" revision="1" branch="testing">
- &lt;deps&gt;+ <deps>
- &lt;dep name=&quot;libpng&quot;/&gt;+ <dep name="libpng"/>
- &lt;/deps&gt;+ </deps>
- &lt;build&gt;+ <build>
- &lt;script&gt;+ <script>
- &lt;archive name=&quot;zvbi-$VERSION&quot;&gt;+ <archive name="zvbi-$VERSION">
- &lt;patch name=&quot;zvbi-$VERSION-compiler.h-1&quot;/&gt;+ <patch name="zvbi-$VERSION-compiler.h-1"/>
- &lt;cmd&gt;./configure --prefix=/usr + <cmd>./configure --prefix=/usr
--infodir=/usr/share/info --infodir=/usr/share/info
--mandir=/usr/share/man --mandir=/usr/share/man
- --sysconfdir=/etc&lt;/cmd&gt;+ --sysconfdir=/etc</cmd>
- &lt;cmd&gt;make -j 2&lt;/cmd&gt;+ <cmd>make -j 2</cmd>
- &lt;cmd&gt;make install&lt;/cmd&gt;+ <cmd>make install</cmd>
- &lt;/archive&gt;+ </archive>
- &lt;/script&gt;+ </script>
- &lt;/build&gt;+ </build>
- &lt;/release&gt;+ </release>
- &lt;/releases&gt;+ </releases>
- &lt;/package&gt;+ </package>
-&lt;/pre&gt;+</pre>
== Compilare ed installare == == Compilare ed installare ==
Line 95: Line 87:
Ora siamo pronti a compilare ed installare (vedere guida precedente). Ora siamo pronti a compilare ed installare (vedere guida precedente).
-&lt;pre&gt;+<pre>
[pol@pol-laptop:~]# upkg-build zvbi-0.2 [pol@pol-laptop:~]# upkg-build zvbi-0.2
Generating script... Generating script...
Line 109: Line 101:
Building zvbi-0.2-0.2.19-1 (testing)... Building zvbi-0.2-0.2.19-1 (testing)...
[pol@pol-laptop:~]# [pol@pol-laptop:~]#
-&lt;/pre&gt;+</pre>
== Ora potrai usare la tua applicazione.== == Ora potrai usare la tua applicazione.==
Se vuoi vedere il file di log basta andare qui: '''/var/lib/upkg/logs/PACKAGE-VERSION.log.bz2'''. Nel mio caso: '''/var/lib/upkg/logs/zvbi-0.2-x86-glibc-2.4-gcc-4.1-1-0.2.19-1.log.bz2''' Se vuoi vedere il file di log basta andare qui: '''/var/lib/upkg/logs/PACKAGE-VERSION.log.bz2'''. Nel mio caso: '''/var/lib/upkg/logs/zvbi-0.2-x86-glibc-2.4-gcc-4.1-1-0.2.19-1.log.bz2'''

Current revision

Contents

[edit] Come applicare le patch con Upkg

Scritta da Paolo Stivanin nel marzo 2009

[edit] Premessa

Questo howto ti spiegherà come patchare dei sorgenti usando upkg.

[edit] Un problema concreto

Io ho una scheda TV PCI nella mia Paldo-box. Purtroppo non c'è una applicazione gnome per guardare la tv nel main repo di Paldo quindi ho deciso di compilare e installare zapping . Purtroppo ho avuto un errore nel make:

    In file included from io-v4l2k.c:55:
    videodev2k.h:19:46: error: linux/compiler.h: No such file or directory
    make[4]: *** [io-v4l2k.lo] Error 1
    make[4]: Leaving directory `/home/pol/temp/zvbi-0.2.19.orig/src'
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory `/home/pol/temp/zvbi-0.2.19.orig/src'
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/home/pol/temp/zvbi-0.2.19.orig/src'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/pol/temp/zvbi-0.2.19.orig'
    make: *** [all] Error 2

Sarebbe stato semplice commentare la linea del linux/compiler.h ma è meglio fare il giro lungo perchè prima o poi sarà necessario sapere applicare una patch ;-)

[edit] Creare il file diff

Innazitutto scaricate i sorgenti e scompattateli. Io ho aggiunto il suffisso ".orig" alla cartella e ho fatto una copia della suddetta senza il suffiso. Le mie directorys ora sono:

    [pol@pol-laptop:~/temp]$ ls -la
    [...]
    drwxr-xr-x  9 nicolas users   4096 2006-03-29 17:01 zvbi-0.2.19
    drwxr-xr-x  9 nicolas users   4096 2006-03-29 17:03 zvbi-0.2.19.orig

Entriamo nella cartella di lavoro, quella senza il suffisso, e fixiamo il bug. Usciamo dalla cartella di lavoro e creiamo il diff-file usando il comando diff. Nel mio esempio ho cambiato il file videodev2k.h che può essere trovato nella cartella src della mia cartella di lavoro (zvbi-0.2.19/src/videodev2k.h). Ora ho creato il diff-file col comando:

    [pol@pol-laptop:~/temp]$ diff -puNr zvbi-0.2.19.orig zvbi-0.2.19 > zvbi-0.2.19-compiler.h-1.patch

[edit] Comprimere il file

Ora usiamo bzip2 per comprimere la patch e copiamo i sorgenti originali e l'archivio con la patch nel repository. Il mio repo ora sarà così:

    [pol@pol-laptop:~/]$ ls -la PaldoRepo/sources/zvbi-0.2/
    [...]
    -rw-r--r-- 1 pol users    344 2006-03-29 16:30 zvbi-0.2.19-compiler.h-1.patch.bz2
    -rw-r--r-- 1 pol users 722143 2006-03-29 15:55 zvbi-0.2.19.tar.bz2

[edit] Informare Upkg della patch

Ora creiamo un file spec. La parte importante è aggiungere patch-directive between la tag archive- tag (<patch name="zvbi-0.2.19-compiler.h-1"/>). Come puoi vedere non devi aggiungere il suffisso ".patch.bz2". In questo caso Upkg cercherà automaticamente il file zvbi-0.2.19-compiler.h-1.patch.bz2 e lo applicherà automagicamente durante il processo di installazione.

    <?xml version="1.0"?>
    <package name="zvbi-0.2">
          <description>the vertical blanking interval (VBI) library</description>
          <releases>
                  <release version="0.2.19" revision="1" branch="testing">
                          <deps>
                            <dep name="libpng"/>
                          </deps>
                          <build>
                                  <script>
                                          <archive name="zvbi-$VERSION">
                                                  <patch name="zvbi-$VERSION-compiler.h-1"/>
                                                  <cmd>./configure --prefix=/usr 
                                                                   --infodir=/usr/share/info 
                                                                   --mandir=/usr/share/man 
                                                                   --sysconfdir=/etc</cmd>
                                                  <cmd>make -j 2</cmd>
                                                  <cmd>make install</cmd>
                                          </archive>
                                  </script>
                          </build>
                  </release>
          </releases>
    </package>

[edit] Compilare ed installare

Ora siamo pronti a compilare ed installare (vedere guida precedente).

    [pol@pol-laptop:~]# upkg-build zvbi-0.2
    Generating script...
    Writing script...
    Executing script...
    The following extra packages will be installed:
    zvbi-0.2

    The following packages will be built from source:
    zvbi-0.2

    Do you want to continue? [Y/n]
    Building zvbi-0.2-0.2.19-1 (testing)...
    [pol@pol-laptop:~]#

[edit] Ora potrai usare la tua applicazione.

Se vuoi vedere il file di log basta andare qui: /var/lib/upkg/logs/PACKAGE-VERSION.log.bz2. Nel mio caso: /var/lib/upkg/logs/zvbi-0.2-x86-glibc-2.4-gcc-4.1-1-0.2.19-1.log.bz2

Personal tools