Newsgroup: it.comp.os.linux.ubuntu
Titolo: problema:dpkg-source come compilare dei source con le patch?

Uso lubuntu quindi penso sia questo il gruppo più adatto:
 
Da questo tutorial 
http://www.debian.org/doc/debian-policy/ap-pkg-sourcepkg.html#s-pkg-sourcearchives
 
 
C.1.1 dpkg-source - packs and unpacks Debian source packages
 
This program is frequently used by hand, and is also called from 
package-independent automated building scripts such as dpkg-buildpackage.
 
To unpack a package it is typically invoked with
 
        dpkg-source -x .../path/to/filename.dsc
with the filename.tar.gz and filename.diff.gz (if applicable) in the 
same directory. It unpacks into package-version, and if applicable 
package-version.orig, in the current directory.
 
To create a packed source archive it is typically invoked:
 
        dpkg-source -b package-version
This will create the .dsc, .tar.gz and .diff.gz (if appropriate) in the 
current directory. dpkg-source does not clean the source tree first - 
this must be done separately if it is required.
 
Ho eseguito il comando
enrico@enrico-Aspire-3690:~/Downloads/PATCH-TUTORIAL$ sudo dpkg-source 
-x /home/enrico/Downloads/PATCH-TUTORIAL/eboard_1.1.1-4.dsc
 
gpgv: Signature made Fri 06 Feb 2009 03:03:43 PM CET using DSA key ID 
9B7C328D
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on 
/home/enrico/Downloads/PATCH-TUTORIAL/eboard_1.1.1-4.dsc
dpkg-source: info: extracting eboard in eboard-1.1.1
dpkg-source: info: unpacking eboard_1.1.1.orig.tar.gz
dpkg-source: info: applying eboard_1.1.1-4.diff.gz
 
Però quando faccio ./config make e make install (sudo) mi da un errore 
come se la patch non fosse stata applicata affatto, cosa posso 
aggiungere come opzione a dpkg-source un parametro -verbose o qualcosa 
di simile che mi consenta di capire cosa stia succedendo? Se poi la 
soluzione è evidente meglio ancora ^^
 
P.S. eboard è già installato come bin correttamente come da repository 
su lubuntu 11.10 oneirc.
 
ciao!

come se la patch non fosse stata applicata affatto
 
Se è stata applicata lo dovresti vedere dalle date dei file, credo che
lasci pure un backup dell'originale.

 messaggi che ricevi
https://launchpad.net/ubuntu/+source/eboard/1.1.1-4
 
enrico@enrico-Aspire-3690:~/Downloads$ sudo dpkg-source -x 
eboard_1.1.1-4.1.dsc
gpgv: Signature made Sun 20 Dec 2009 02:50:07 PM CET using DSA key ID 
1392B174
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./eboard_1.1.1-4.1.dsc
dpkg-source: info: extracting eboard in eboard-1.1.1
dpkg-source: info: unpacking eboard_1.1.1.orig.tar.gz
dpkg-source: info: applying eboard_1.1.1-4.1.diff.gz
 
enrico@enrico-Aspire-3690:~/Downloads/eboard-1.1.1$ sudo ./configure
configuring eboard 1.1.1...
checking sanity of install... ok
testing C++ compiler...
   trying g++ ... it works
header verification:
   all headers found.
header verification:
   sys/audioio.h       : no
checking for IPPROTO_TCP in netinet/in.h... yes
checking for TCP_NODELAY in netinet/in.h... no
checking for SOL_TCP in netinet/in.h... no
checking for IPPROTO_TCP in netinet/tcp.h... no
checking for TCP_NODELAY in netinet/tcp.h... yes
checking for SOL_TCP in netinet/tcp.h... yes
   net options: netinet/tcp.h required, IPPROTO_TCP present.
looking for pkg-config... /usr/bin/pkg-config
looking for GTK+ version... 2.24.6, ok
looking for libpng... 1.2.46, ok
header verification:
   all headers found.
wrote config.h
wrote config.make
writing Makefile... ok
creating eboard-config... ok
creating eboard.spec... ok
 
Summary:
 
eboard version 1.1.1
binaries  will be installed to    /usr/local/bin
man pages will be installed under /usr/local/man
datafiles will be installed to    /usr/local/share/eboard
NLS support: yes
 
done.
 
sudo make:
...
g++ -O6 -pthread -I/usr/include/gtk-2.0 
-I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 
-I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 
-I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ 
-I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include 
-I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 
-c ntext.cc -o ntext.o
ntext.cc: In member function ‘void NText::append(const char*, int, int)’:
ntext.cc:247:24: error: invalid conversion from ‘const char*’ to ‘char*’ 
[-fpermissive]
make: *** [ntext.o] Error 1
 
questo errore lo avevo corretto in puppy e mi aveva compilato 
aggiungendo (char*) nella riga 24
 
widgetproxy.cc:(.text+0x2755): undefined reference to `gtk_main_iteration'
collect2: ld returned 1 exit status
make: *** [eboard] Error 1
 
mentre nella versione 1.1.3 estrae correttamente le patch e le elenca 
sotto il comando dpkg-source eseguito, quando eseguo la dpkg-source -x 
di queste patch non da nessun elenco di file soggetti a patch, l'unica 
conclusione cui posso arrivare è che i file della patch e il sorgente 
origine non sono allineati, anche un mio amico ha fatto le stesse 
operazioni e ha avuto problemi di compilazione proprio come me.
Ho provato a registrarmi per segnalare l'errore ma non ne vuole sapere 
la pagina di registrazione di accettare la mia password.
boh

enrico@enrico-Aspire-3690:~/Downloads/eboard-1.1.1$ sudo ./configure
 
Io non conosco eboard e non ho mai usato dpkg-source, quando voglio
ricompilarmi un pacchetto scarico sempre i tre file a mano, applico la
patch a mano e poi compilo, ma suppongo che sia lo stesso che usare
dpkg-source.
 
precisamente, dopo aver applicato la patch, io faccio (vado a memoria):
 
chmod +x debian/rules
fakeroot debian/rules binary
 
Nota che così facendo non c'è bisogno di diventare root, il che è più
tranquillo, e non c'e bisogno di eseguire a mano i passaggi necessari,
il makefile debian/rules dovrebbe far tutto da sé e generare i .deb,
cosa che a meno di errori fa regolarmente.  A volte il makefile applica
delle patch che stanno dentro la directory debian.  Se fosse questo il
caso di eboard potrebbe spiegarsi il tuo problema.

 caso di eboard potrebbe spiegarsi il tuo problema.
Nel caso specifico credo che ci sia un problema di librerie che il 
compilatore gcc non trova colle vecchie regole di make e qualcosa 
correlato a wxwidget, il problema è che il file .orig. è della versione 
1.1.1 e le patch arrivano alla versione 1.1.4 e francamente fare a mano 
tutte quelle patch oltre che pericoloso e noioso, diventa esso stesso un 
lavoro di manutenzione + pesante delle modifiche da fare. Credo che il 
comando dpkg-source sia una garanzia, anche perchè altrimenti non penso 
che Debian o Ubuntu potrebbero avere una organizzazione in grado di 
sopravvivere.
Mi piacerebbe sapere perchè del messaggio di errore sulla Signature 
forse ho dimenticato di scaricare una chiave o omesso un passaggio?
enrico@enrico-Aspire-3690:~/Downloads$ sudo dpkg-source -x 


forse ho dimenticato di scaricare una chiave o omesso un passaggio?
 
Credo che non c'entri.  Il messaggio significa che chi distribuisce il
pacchetto non ha fornito una firma, o che tu non hai scaricato il
certificato relativo, per cui il pacchetto potrebbe essere falso.
 
Detto questo, per quanto ho capito il tuo problema non c'entra né con
l'applicazione della patch né con la firma mancante.  Prova a rileggere
la mia risposta di prima.  Il mio sospetto è che il problema possa avere
qualcosa a che fare con i due comandi di cui parlavo nel mio messaggio
precedente, e che sono in cima a questa mail.  Invece di dare quei due
comandi tu dai un ./configure; make.

 zcat ../quello-che-e.diff.gz | patch -p 1
si questo comando fa un passo avanti crea la directory /debian con 
dentro i file.dpatch ma i file unpacked nel tar .orig. non sono stati 
modificati, quindi manca un passaggio, un comando che prenda i dpatch da 
/debian e li porti in /eboard-1.1.1 nei file.cc, file.h e tutti gli altri.

:

Rileggi i miei messaggi precedenti, e prova a fare come faccio io.  Se
non capisci tutto chiedi.  Se non ci riesci dillo e appena trovo il
tempo provo a scaricarmi un sorgente e a rifare tutti i passaggi così te
li posso elencare comprensivi dei cambi di directory (uno solo, se ben
ricordo).

 ricordo).
Anzitutto ti chiedo scusa, ho letto i messaggi, ma non con la dovuta 
attenzione.
 
dopo..
zcat ../quello-che-e.diff.gz | patch -p 1
 
ho eseguito i comandi:
 
enrico@enrico-Aspire-3690:~/Downloads/PATCH-TUTORIAL$ sudo chmod +x 
/home/enrico/Downloads/PATCH-TUTORIAL/debian/rules
 
mi sono spostato nella directory eboard-1.1.1 dopo essermi reso conto 
che lo lanciavo dalla directory sbagliata... ora ha creato il credo il 
sorgente perchè ora riesco a modificare la finestra com voglio io, cosa
che prima non riuscivo a fare grazie mille!
sudo fakeroot debian/rules binary
 
P.S. ora devo un attimo capire cosa è successo e come fare per cambiare 
alcune cose. GRAZIEEEEEEEE! ciao!

alcune cose. GRAZIEEEEEEEE! ciao!
 
Auguri :)