Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Vorrei pacchettizzare una CVS di amule (la CVS-20050727) per la quale ho anche la patch per Adunanza. Per applicare la patch, dall'interno della directory dei sorgenti scompattata, mi sembra dovrei dare il comando
La mia patch termina in ".patch.gz" e non in ".diff.gz". Devo scrivere comunque .........miapatch.diff.gz?
Da dove ho preso la patch dicono di dare l'opzione -p0. Ho letto il man ma non ho ben capito la differenza tra p0 e p1; deve avere a che fare col percorso in cui è posizionata la patch e con la directory in cui mi trovo, per cui se la metto dentro il sorgente è 0, se sul primo livello superiore è 1?
Devi ovviamente lasciare la tua estenzione,
altrimenti zcat non trova il file
Per quanto riguarda il flag -p, esso serve
a togliere un numero stabilito slash di separazione
all'interno dei percorsi indicati per i file
a cui vanno applicate le modifiche.
In pratica, si risale ogin volta di una dir.
Ciò è necessario in presenza di file di differenze
in cui le informazioni sui file contengono un percorso.
Quando invece le differenza queste vengono applicate
in un contesto equivalente a quello nel quale sono state
generate, si usa l'opzione -p0, che indica
il mantenimento della situazione attuale.
Ad es., se nel nel file di differenze si fa riferimento
al file x/y/z/prova, significa che le modifiche relative
vanno applicate localmente al file y/z/prova.
Se però nel file di differenze si facesse riferimento
al file ./x/y/z/prova, eliminando la slash
non si otterrebbe alcun cambiamento,
perché ciò produrrebbe il percorso x/y/z/prova,
uguale al primo.
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|Using version in current directory: 2.0.3+cvs20050727
|Current version is: 2.0.3+cvs20050727
|Diffing against tag: upstream_version_2_0_3_cvs20050727
|Index: debian/README.Debian
|===================================================================
|RCS file: debian/README.Debian
|diff -N debian/README.Debian
|--- /dev/null 1 Jan 1970 00:00:00 -0000
|+++ debian/README.Debian 27 Jul 2005 16:27:23 -0000 1.1.118.1
--------------------------
Patching file README.Debian using Plan A...
Hunk #1 succeeded at 1.
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|Index: debian/amule-adunanza.dirs
|===================================================================
|RCS file: debian/amule-adunanza.dirs
|diff -N debian/amule-adunanza.dirs
|--- /dev/null 1 Jan 1970 00:00:00 -0000
|+++ debian/amule-adunanza.dirs 27 Jul 2005 16:27:23 -0000 1.1.28.1
--------------------------
Patching file amule-adunanza.dirs using Plan A...
Hunk #1 succeeded at 1.
....
....
....
....
.... /* SERIE LUNGA DI MESSAGGI DELLO STESSO TIPO ! */
....
....
....
....
Hmm... The next patch looks like a unified diff to me...
can't find file to patch at input line 1865
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: src/BaseClient.cpp
|===================================================================
|RCS file: /projects/amule/src/BaseClient.cpp,v
|retrieving revision 1.1.1.41
|retrieving revision 1.1.1.41.2.1
|diff -u -r1.1.1.41 -r1.1.1.41.2.1
|--- src/BaseClient.cpp 23 Jul 2005 05:30:46 -0000 1.1.1.41
|+++ src/BaseClient.cpp 27 Jul 2005 16:27:25 -0000 1.1.1.41.2.1
--------------------------
File to patch:
Ho messo un commento in mezzo al codice tagliando un po' di messaggi. Alla fine si aspetta che io gli dica il file da patchare.
come dicono sul sito della patch. Ho ricompresso in tar.bz2, avendo però corretto il nome della directory principale dell'archivio, poiché mi dava solo amule-cvs, mentre serviva un aMule-CVS-20052707 stando a quanto riportato nello Slackbuild.
Rilancio lo stesso SlackBuild di Lorys, sembra tutto a posto ma... il tgz creato non contiene /bin con i binari.
CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi
PKG=$TMP/package-aMule
NAME=aMule
VERSION=CVS-20050728
ARCH=${ARCH:-i486}
BUILD=1ac
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mcpu=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2"
fi
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
cd $TMP
mkdir -p $PKG/usr
tar xjvf $CWD/$NAME-$VERSION.tar.bz2
cd $NAME-$VERSION
zcat $CWD/amule-adunanza-2.0.3+cvs20050727-1.patch.gz | patch -p0 /*QUI IL COMANDO PER APPLICARE PATCH*/
Ad un primo momento sembra andare tutto bene, ma il pacchetto creato continua a non avere /bin e il bello è che se compilo i sorgenti con lo SlackBuild senza il zcat ..., ossia se non applico la patch, i binari vengono creati!! Deduco che o sbaglio io o la patch incasina tutto.