SlackBuild e patch

Postate qui se avete consigli per migliorare i pacchetti disponibili in questo sito o se avete problemi con installazione, funzionamento o altro.

Moderatore: Staff

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.
Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

SlackBuild e patch

Messaggio da elettronicha »

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

Codice: Seleziona tutto

zcat amule-adunanza-2.0.3+cvs20050727-1.patch.gz | patch -p0
Che modifiche vanno apportate allo SlackBuild che è presente qui sul sito per l'applicazione della patch?

Grazie.

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

La patch la tieni vicino al file sorgente, slack-desc e SlackBuil.
Dopo il tar... inserichi una stringa come questa

Codice: Seleziona tutto

zcat $CWD/tuapatch.diff.gz | patch -p1 -E --backup --verbose
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

Messaggio da elettronicha »

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?

samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Messaggio da samiel »

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.

M.

Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

Messaggio da elettronicha »

Va bene. Ora vediamo qui:

Codice: Seleziona tutto

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.

Se può servire ho usato questo:

Codice: Seleziona tutto

#!/bin/sh
# Heavily based on the Slackware 10.1 SlackBuild
# http://www.amule.org/

CWD=`pwd`
if ["$TMP" = ""]; then
 TMP=/tmp
fi
PKG=$TMP/package-aMule
NAME=aMule
VERSION=CVS-20050727
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
zcat $CWD/amule-adunanza-2.0.3+cvs20050727-1.patch.gz | patch -p1 -E --backup --verbose
cd $NAME-$VERSION
chown -R root.root .
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure --prefix=/usr \
--with-wx-config=/usr/bin/wx-config \
--disable-debug \
--program-prefix="" \
--program-suffix="" \
$ARCH-slackware-linux
make
make install DESTDIR=$PKG
e inoltre:
root@localhost:/home/elettro/packages/amule/CVS# ls -l
total 2410
-rw-r--r-- 1 elettro users 2416555 2005-08-27 16:57 aMule-CVS-20050727.tar.bz2
-rw-r--r-- 1 elettro users 1540 2005-08-27 21:32 aMule.SlackBuild
-rw-r--r-- 1 elettro users 1540 2005-08-27 20:41 aMule.SlackBuild~
-rw-r--r-- 1 elettro users 28812 2005-08-27 16:57 amule-adunanza-2.0.3+cvs20050727-1.patch.gz
-rw-r--r-- 1 elettro users 150 2005-08-27 17:00 amule.desktop
-rw-r--r-- 1 elettro users 928 2005-08-27 16:59 slack-desc
root@localhost:/home/elettro/packages/amule/CVS#
Penso di essere stato esaustivo, sebbene prolisso. :)

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

prova a spostare lo zcat dopo il comando cd. se ancora non va prova valori di -p diversi: -p0, -p1, -p2 (anche se direi che -p0 è quello giusto).

Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

Messaggio da elettronicha »

Per evitare casini ho fatto come segue. Ho estratto il mio aMule-CVS-20050727.tar.bz2 a mano, ho copiato dentro la patch e l'ho applicata con

zcat amule-adunanza-2.0.3+cvs20050727-1.patch.gz | patch -p0

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.

Ora riprovo aggiungendo come suggeriva Lorys

-E --backup --verbose

Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

Messaggio da elettronicha »

Aggiornamento:

Ho usato questa porzione di SlackBuild, con zcat ... dopo il tar ... e il successivo cd ... :

Codice: Seleziona tutto

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.

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

Dimmi dove prendere la pezza.
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

Messaggio da elettronicha »

http://amuleadu.altervista.org/blog/

Lorys, ma ti sto scocciando?

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

No scherzi :) io mi scoccio solo al lavoro dopo 8 ore di telefono e grane :evil: per me questo è un piacere, altrimenti non rispondevo neppure al tuo post :wink:
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

Cavolo che sfiga :) i sorgenti 20050727 non si recuperano, partono dal 20050728 in su 8O me li mandi per posta ?
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

Messaggio da elettronicha »

Doh! L'ho cancellato! :oops: ... Fino a ieri c'era quello del 20052707, solo che ora leggo:
Notice that tarballs get removed after 30 days.


Pazienza, fa niente. Grazie ugualmente.

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

Ma che sfiga :x
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

delonghilongo
Linux 0.x
Linux 0.x
Messaggi: 25
Iscritto il: mar 26 lug 2005, 0:00

Messaggio da delonghilongo »

dammi la mail:)
comunque a me funzia ma si blocca,

Rispondi