[RISOLTO] problema libreria amule

Se avete problemi con l'installazione e la configurazione di Slackware64 postate qui. Non usate questo forum per argomenti che trattano la Slackware32 o generali... per quelli usate rispettivamente il forum Slackware e Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware64 usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
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
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: problema libreria amule

Messaggio da Procopio »

ed infatti ha funzionato perfettamente!:) poi se hai tempo puoi scrivermi a grandi linee come hai fatto? solo se è una cosa relativamente semplice, perchè se no non ci capirei comunque ed è lavoro inutile! ;)

Grazie mille!!!

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: problema libreria amule

Messaggio da targzeta »

Basta guardare il file di patch. In pratica bastava fare tutto quello che ti diceva lui, ad esempio:

Codice: Seleziona tutto

...
algebra.cpp:61:2: error: 'Equal' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
algebra.cpp:61:2: note: declarations in dependent base 'CryptoPP::AbstractGroup<CryptoPP::Integer>' are not found by unqualified lookup
algebra.cpp:61:2: note: use 'this->Equal' instead
...
Quindi, alla riga 61 ci mett 'this->Equal' invece che 'Equal'. Tutti errori di questo tipo.

In realtà si sarebbe anche potuto alleggerire il make, quel '[-fpermissive]' dovrebbe indicare che se alleggerisci questo tipo di controlli, allora l'errore non viene sollevato. E' qualcosa che hanno aggiunto di recente al gcc...se non sbaglio.

La cryptopp via SVN, sempre se non sbaglio, non "soffre" di questi problemi,
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: problema libreria amule

Messaggio da Procopio »

spina ha scritto: In pratica bastava fare tutto quello che ti diceva lui,
ma quindi non bastava modificare a mano lo slackBuild senza usare patch?

comunque un esempio per esercitarmi ce l'ho già subito, perchè ho problemi con la compilazione di aMule stesso:

Codice: Seleziona tutto

ompiling ClientUDPSocket.cpp
Compiling CorruptionBlackBox.cpp
Compiling DownloadClient.cpp
Compiling DownloadQueue.cpp
In file included from DownloadQueue.h:30:0,
                 from DownloadQueue.cpp:26:
ObservableQueue.h: In instantiation of 'void CObservableQueue<ValueType>::ObserverAdded(CObservableQueue<ValueType>::ObserverType*) [with ValueType = CPartFile*; CObservableQueue<ValueType>::ObserverType = CObserver<CQueueEvent<CPartFile*> >]':
DownloadQueue.cpp:1528:32:   required from here
ObservableQueue.h:334:2: error: 'NotifyObservers' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
ObservableQueue.h:334:2: note: declarations in dependent base 'CObservable<CQueueEvent<CPartFile*> >' are not found by unqualified lookup
ObservableQueue.h:334:2: note: use 'this->NotifyObservers' instead
ObservableQueue.h: In instantiation of 'void CObservableQueue<ValueType>::ObserverRemoved(CObservableQueue<ValueType>::ObserverType*) [with ValueType = CPartFile*; CObservableQueue<ValueType>::ObserverType = CObserver<CQueueEvent<CPartFile*> >]':
DownloadQueue.cpp:1665:1:   required from here
ObservableQueue.h:341:2: error: 'NotifyObservers' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
ObservableQueue.h:341:2: note: declarations in dependent base 'CObservable<CQueueEvent<CPartFile*> >' are not found by unqualified lookup
ObservableQueue.h:341:2: note: use 'this->NotifyObservers' instead
make[3]: *** [amule-DownloadQueue.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
bash-4.2# 
poi io vedo che la patch non è un file di testo, come faccio a "guardarlo"?

Avatar utente
alphamanitine
Linux 1.x
Linux 1.x
Messaggi: 182
Iscritto il: mar 15 feb 2005, 0:00
Slackware: 15
Località: Prato

Re: problema libreria amule

Messaggio da alphamanitine »

Solo a titolo di esempio:

Codice: Seleziona tutto

#!/bin/sh

# Heavily based on the Slackware 13.37 SlackBuild

# Written by Loris Vicenzi (http://www.slacky.eu)
# Last build from Savino Pio Liguori ( jimmy_page_89 AT hotmail DOT it )
# 21/11/2011 build by alphamanitine ( fabio.testa@tin.it )
# Slackware build script for aMule
# Official Site: http://www.amule.org/

# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AS IS AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

set -e

PKGNAME=${PKGNAME:-aMule}
VERSION=${VERSION:-2.3.1}
ARCH=${ARCH:-x86_64}
BUILD=${BUILD:-1}
TAG=${TAG:-sl}
PKGTYPE=${PKGTYPE:-txz}
SOURCE="http://sourceforge.net/projects/amule/files/aMule/2.3.1/${PKGNAME}-${VERSION}.tar.bz2"

CWD=$(pwd)
TMP=${TMP:-/tmp/buildpkgs/$PKGNAME}
PKG=${PKG:-$TMP/package-$PKGNAME}
OUTPUT=${OUTPUT:-$CWD}
TAR=${TAR:-$(basename $SOURCE)}
DIR=${DIR:-$(echo "$TAR"|sed -r 's/(\.tar|)(.gz|.bz2|)$//')}

if [ ! -e $CWD/$TAR ];then
  wget $SOURCE
fi

CHOST=i486
if [ $ARCH = i486 ]; then
    SLKCFLAGS="-O2 -march=i486 -mtune=i686"
    LIBDIRSUFFIX=""
elif [ $ARCH = i586 ]; then
    SLKCFLAGS="-O2 -march=i586 -mtune=i686"
    LIBDIRSUFFIX=""
elif [ $ARCH = i686 ]; then
    SLKCFLAGS="-O2 -march=i686 -mtune=i686"
    LIBDIRSUFFIX=""
elif [ $ARCH = x86_64 ]; then
    SLKCFLAGS="-O2 -fPIC"
    LIBDIRSUFFIX="64"
    CHOST=x86_64
fi

rm -rf $TMP
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
tar xvf $CWD/$TAR
cd $DIR
chown -R root:root .
chmod -R u+w,go+r-w,a-s .


CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
    --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --libdir=/usr/lib$LIBDIRSUFFIX \
    --mandir=/usr/man \
    --docdir=/usr/doc/$PKGNAME-$VERSION \
    --enable-amule-daemon \
    --enable-amulecmd \
    --enable-webserver \
    --enable-amule-gui \
    --enable-cas \
    --enable-wxcas \
    --enable-ed2k \
    --enable-alc \
    --enable-alcc \
    --enable-xas \
    --enable-fileview \
    --enable-geoip \
    --enable-mmap \
    --enable-optimize \
    --enable-ccache \
    --build=$CHOST-slackware-linux
echo -e "\E[0;32mPress any key to build the package!\E[0;0m"
read
make
make install DESTDIR=$PKG

# Copy documentations
cp -r [A-Z]* docs/*.txt $PKG/usr/doc/$PKGNAME-$VERSION

cat $CWD/$PKGNAME.SlackBuild > $PKG/usr/doc/$PKGNAME-$VERSION/$PKGNAME.SlackBuild
cat $CWD/slack-desc > $PKG/usr/doc/$PKGNAME-$VERSION/slack-desc

if [ -d $PKG/usr/man ]; then
    ( cd $PKG/usr/man
      find . -type f -exec gzip -9 {} \;
      for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
    )
fi

( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs -r strip --strip-unneeded 2> /dev/null || true
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs -r strip --strip-unneeded 2> /dev/null || true
  find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs -r strip --strip-unneeded 2> /dev/null || true
)

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
chown -R root:root $PKG

if [ -x "$(which requiredbuilder 2>/dev/null)" ]; then
    requiredbuilder -v -y -s $CWD $PKG
fi

/sbin/makepkg -l y -c n $OUTPUT/$PKGNAME-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

if [ "$1" = "--cleanup" ]; then
 rm -rf $PKG
fi

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: problema libreria amule

Messaggio da Procopio »

ma quello è uno slackbuild, lo lego anche io quello, l'ho anche modificato prima...io mi riferivo alla patch che ha postato spina qualche post più indietro, dacci un occhiata, è un file .tar.gz, non puoi aprirlo con un cat come hai fatto con questo, o non sto capendo cosa vuoi indicare con quello slackbuild??

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: problema libreria amule

Messaggio da targzeta »

Procopio ha scritto:
spina ha scritto: In pratica bastava fare tutto quello che ti diceva lui,
ma quindi non bastava modificare a mano lo slackBuild senza usare patch?
Per modificare solo lo slackbuild si dovrebbe vedere quella cosa che dicevo per make. Magari passando qualche opzione a make, questo non fallisce più per questo tipo di errori.

Comunque la patch è un file di testo, generato con il comando 'diff'. Solo che io ho allegato un 'gz' (e non un tar.gz), quindi per vederlo basta fare un zcat.

Vedi cosa riesci a fare per aMule. Comunque il problema sembra sempre dello stesso tipo.

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: problema libreria amule

Messaggio da Procopio »

spina ha scritto:Comunque la patch è un file di testo, generato con il comando 'diff'
mmmh ok, ma diff tra cosa e cosa? ho visto la tua patch, ma io non sarei mai in grado di scrivere a mano un file così

Codice: Seleziona tutto

bash-4.2# zcat cryptopp561.diff.gz 
diff -ur ./algebra.cpp ../cryptopp561/algebra.cpp
--- ./algebra.cpp       2010-08-06 18:44:32.000000000 +0200
+++ ../cryptopp561/algebra.cpp  2012-05-22 21:31:09.712247037 +0200
@@ -58,7 +58,7 @@
        Element g[3]={b, a};
        unsigned int i0=0, i1=1, i2=2;
 
-       while (!Equal(g[i1], this->Identity()))
+       while (!this->Equal(g[i1], this->Identity()))
        {
                g[i2] = Mod(g[i0], g[i1]);
                unsigned int t = i0; i0 = i1; i1 = i2; i2 = t;
diff -ur ./eccrypto.cpp ../cryptopp561/eccrypto.cpp
--- ./eccrypto.cpp      2010-08-06 18:44:28.000000000 +0200
+++ ../cryptopp561/eccrypto.cpp 2012-05-22 21:31:10.061291398 +0200
@@ -435,7 +435,7 @@
        StringSource ssG(param.g, true, new HexDecoder);
        Element G;
        bool result = GetCurve().DecodePoint(G, ssG, (size_t)ssG.MaxRetrievable());
-       SetSubgroupGenerator(G);
+       this->SetSubgroupGenerator(G);
        assert(result);
 
        StringSource ssN(param.n, true, new HexDecoder);
@@ -591,7 +591,7 @@
        if (level >= 2 && pass)
        {
                const Integer &q = GetSubgroupOrder();
-               Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : ExponentiateElement(g, q);
+               Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : this->ExponentiateElement(g, q);
                pass = pass && IsIdentity(gq);
        }
        return pass;
@@ -629,7 +629,7 @@
        typename EC::Point P;
        if (!this->GetGroupParameters().GetCurve().DecodePoint(P, bt, size))
                BERDecodeError();
-       SetPublicElement(P);
+       this->SetPublicElement(P);
 }
 
 template <class EC>
diff -ur ./eccrypto.h ../cryptopp561/eccrypto.h
--- ./eccrypto.h        2010-08-06 18:46:24.000000000 +0200
+++ ../cryptopp561/eccrypto.h   2012-05-22 21:31:10.405335124 +0200
@@ -43,7 +43,7 @@
        void Initialize(const EllipticCurve &ec, const Point &G, const Integer &n, const Integer &k = Integer::Zero())
        {
                this->m_groupPrecomputation.SetCurve(ec);
-               SetSubgroupGenerator(G);
+               this->SetSubgroupGenerator(G);
                m_n = n;
                m_k = k;
        }
@@ -145,9 +145,9 @@
        typedef typename EC::Point Element;
 
        void Initialize(const DL_GroupParameters_EC<EC> &params, const Element &Q)
-               {this->AccessGroupParameters() = params; SetPublicElement(Q);}
+               {this->AccessGroupParameters() = params; this->SetPublicElement(Q);}
        void Initialize(const EC &ec, const Element &G, const Integer &n, const Element &Q)
-               {this->AccessGroupParameters().Initialize(ec, G, n); SetPublicElement(Q);}
+               {this->AccessGroupParameters().Initialize(ec, G, n); this->SetPublicElement(Q);}
 
        // X509PublicKey
        void BERDecodePublicKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
@@ -166,9 +166,9 @@
        void Initialize(const EC &ec, const Element &G, const Integer &n, const Integer &x)
                {this->AccessGroupParameters().Initialize(ec, G, n); this->SetPrivateExponent(x);}
        void Initialize(RandomNumberGenerator &rng, const DL_GroupParameters_EC<EC> &params)
-               {GenerateRandom(rng, params);}
+               {this->GenerateRandom(rng, params);}
        void Initialize(RandomNumberGenerator &rng, const EC &ec, const Element &G, const Integer &n)
-               {GenerateRandom(rng, DL_GroupParameters_EC<EC>(ec, G, n));}
+               {this->GenerateRandom(rng, DL_GroupParameters_EC<EC>(ec, G, n));}
 
        // PKCS8PrivateKey
        void BERDecodePrivateKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
diff -ur ./panama.cpp ../cryptopp561/panama.cpp
--- ./panama.cpp        2010-08-09 14:22:42.000000000 +0200
+++ ../cryptopp561/panama.cpp   2012-05-22 21:31:11.152430075 +0200
@@ -422,7 +422,7 @@
 {
        this->ThrowIfInvalidTruncatedSize(size);
 
-       PadLastBlock(this->BLOCKSIZE, 0x01);
+       this->PadLastBlock(this->BLOCKSIZE, 0x01);
 
        HashEndianCorrectedBlock(this->m_data);
 
diff -ur ./secblock.h ../cryptopp561/secblock.h
--- ./secblock.h        2010-08-06 18:46:20.000000000 +0200
+++ ../cryptopp561/secblock.h   2012-05-22 21:31:11.639491980 +0200
@@ -88,7 +88,7 @@
 
        pointer allocate(size_type n, const void * = NULL)
        {
-               CheckSize(n);
+               this->CheckSize(n);
                if (n == 0)
                        return NULL;
 
bash-4.2# 
dato un responso come questo da uno slackbuild

Codice: Seleziona tutto

[...]
inflating: cryptopp-5.6.1/xtr.cpp  [text]  
  inflating: cryptopp-5.6.1/xtr.h    [text]  
  inflating: cryptopp-5.6.1/xtrcrypt.cpp  [text]  
  inflating: cryptopp-5.6.1/xtrcrypt.h  [text]  
  inflating: cryptopp-5.6.1/zdeflate.cpp  [text]  
  inflating: cryptopp-5.6.1/zdeflate.h  [text]  
  inflating: cryptopp-5.6.1/zinflate.cpp  [text]  
  inflating: cryptopp-5.6.1/zinflate.h  [text]  
  inflating: cryptopp-5.6.1/zlib.cpp  [text]  
  inflating: cryptopp-5.6.1/zlib.h   [text]  
g++ -O2 -fPIC -c hmac.cpp
In file included from hmac.h:7:0,
                 from hmac.cpp:7:
secblock.h: In instantiation of 'CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer CryptoPP::AllocatorWithCleanup<T, T_Align16>::allocate(CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type, const void*) [with T = unsigned char; bool T_Align16 = false; CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer = unsigned char*; CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type = long unsigned int]':
secblock.h:247:19:   required from 'CryptoPP::SecBlock<T, A>::SecBlock(CryptoPP::SecBlock<T, A>::size_type) [with T = unsigned char; A = CryptoPP::AllocatorWithCleanup<unsigned char>; CryptoPP::SecBlock<T, A>::size_type = long unsigned int]'
hmac.h:15:38:   required from here
secblock.h:91:3: error: 'CheckSize' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
secblock.h:91:3: note: declarations in dependent base 'CryptoPP::AllocatorBase<unsigned char>' are not found by unqualified lookup
secblock.h:91:3: note: use 'this->CheckSize' instead
make: *** [hmac.o] Error 1
ad essere sincero non riesco neanche a motivare i vari punti della patch guardando questo responso...
spero che per generata dal diff tu intenda che la patch mi viene in out se io do in pasto al diff due variabili opportune o roba del genere...!

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: problema libreria amule

Messaggio da targzeta »

Matteo, devi leggerti qualcosa riguardo al comando diff per creare patch. Comunque eccoti un esempio (mettiti sotto /tmp):
  • creiamo il file 'file':

    Codice: Seleziona tutto

    cat > file <<EOF
    > ciao
    > mamma
    > guarda
    > come
    > non
    > mi
    > sto
    > divertendo
    > ad
    > usare
    > linux
    > EOF
  • ora modifichiamo 'file' mettendo al posto di 'non mi sto divertendo', 'mi diverto tantissimo' e salviamo il nuovo file come 'file.new', quindi, file.new contiene:

    Codice: Seleziona tutto

    ciao
    mamma
    guarda
    come
    mi
    diverto
    tantissimo
    ad
    usare
    linux
  • usando il comando 'diff' possiamo vedere le differenze tra i due file:

    Codice: Seleziona tutto

    diff file file.new 
    5d4
    < non
    7,8c6,7
    < sto
    < divertendo
    ---
    > diverto
    > tantissimo
    questo comando ci dice cosa fare a 'file' per renderlo uguare a 'file.new'. Le righe con '<' vanno tolte mentre quelle con '>' vanno aggiunte.
  • se vogliamo creare una patch, basta usare l'opzione '-u' che imposta le righe di contesto (di default sono 3):

    Codice: Seleziona tutto

    diff -u file file.new
    --- file        2012-05-23 17:23:33.021712413 +0200
    +++ file.new    2012-05-23 17:09:28.034318860 +0200
    @@ -2,10 +2,9 @@
     mamma
     guarda
     come
    -non
     mi
    -sto
    -divertendo
    +diverto
    +tantissimo
     ad
     usare
     linux
    
    (nota le tre righe di contesto prima di quelle con '-' o '+'. In questo caso '-' è uguale a '<' e '+' è uguale a '>'). Ridirezioniamo l'output su di un file e il gioco è fatto:

    Codice: Seleziona tutto

    diff -u file file.new > file.diff
    ora 'file.diff' è la patch che applicata a 'file' lo rende uguale a 'file.new'.
  • applichiamo la patch:

    Codice: Seleziona tutto

    patch < file.diff 
    patching file file
    Ora controlliamo:

    Codice: Seleziona tutto

    diff file file.new 
    
    cat file
    ciao
    mamma
    guarda
    come
    mi
    diverto
    tantissimo
    ad
    usare
    linux
    come vedi, file e file.new sono identici.
Quello che generalmente si fa è di gzippare le patch, nell'esempio con 'gzip file.diff' così occupano meno spazio. Solitamente ho anche visto che si usa creare una patch nel cui il primo elemento del path viene ignorato. Nell'esempio avremmo dovuto fare:

Codice: Seleziona tutto

diff -u ./file ./file.new > file.diff
e poi applicare la patch con:

Codice: Seleziona tutto

patch -p1 < file.diff 
Una cosa utile è invalidare la patch nel caso non la si voglia più. Nell'esempio:

Codice: Seleziona tutto

patch -R < file.diff 
patching file file

diff file file.new 
5d4
< non
7,8c6,7
< sto
< divertendo
---
> diverto
> tantissimo
abbiamo ripristinato file a com'era prima dell'applicazione della patch.

Per i programmi è lo stesso. Prendi il sorgente, lo modifichi e poi, se funziona, crei una patch, la gzippi e la ridistribuisci.

Emanuele

P.S. Comunque per il tuo problema con amule dovresti vedere di passare al make l'opzione '-fpermissive' così non dovrebbe più darti quegli errori. Setta nello SlackBuild la variabiel CXXFLAGS e CFLAGS anche come '-fpermissive' e prova. Mi sembra più semplice che stare a patchare tutto.
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: problema libreria amule

Messaggio da Procopio »

spina ha scritto:Comunque per il tuo problema con amule dovresti vedere di passare al make l'opzione '-fpermissive' così non dovrebbe più darti quegli errori. Setta nello SlackBuild la variabiel CXXFLAGS e CFLAGS anche come '-fpermissive' e prova. Mi sembra più semplice che stare a patchare tutto
bè visto tutto lo sbattone che hai fatto il minimo era che facessi una patch io:)
l' ho creata, ignorando il primo elemento, la allego qua

Codice: Seleziona tutto

bash-4.2# zcat ObservableQueue.diff.gz 
--- ./ObservableQueue.h 2012-05-24 10:32:12.256979233 +0200
+++ ./ObservableQueue.new.h     2012-05-24 10:32:07.924033402 +0200
@@ -331,14 +331,14 @@
 template <typename ValueType>
 void CObservableQueue<ValueType>::ObserverAdded( ObserverType* o )
 {
-       NotifyObservers( EventType( EventType::STARTING ), o );
+       this->NotifyObservers( EventType( EventType::STARTING ), o );
 }
 
 
 template <typename ValueType>
 void CObservableQueue<ValueType>::ObserverRemoved( ObserverType* o )
 {
-       NotifyObservers( EventType( EventType::STOPPING ), o );
+       this->NotifyObservers( EventType( EventType::STOPPING ), o );
 }
 
 
bash-4.2
nella modiica alloslackbuild bisogna fare attenzione perchè in questo caso il file da patchare si trova in una directory all'interno dell'archivio completo e quindi bisogna mettere il percorso giusto inserendo

Codice: Seleziona tutto

zcat $CWD/usr/ObservableQueque.diff.gz | patch -p1
comunque non me la prende, mi continua a dare lo stesso errore come se non applicasse nessuna patch....in effetti noto che è molto diversa dalla tua, ma se la applico a mano sul file, cioè con il comando

Codice: Seleziona tutto

bash-4.2$ diff -u ./ObservableQueue.h ./ObservableQueue.new.h > ObservableQueue.diff
bash-4.2$ ls
ObservableQueue.diff  ObservableQueue.h  ObservableQueue.new.h
bash-4.2$ patch -p1 < ObservableQueue.diff 
patching file ObservableQueue.h
bash-4.2$ ls 
ObservableQueue.diff  ObservableQueue.h  ObservableQueue.new.h
bash-4.2$ diff ObservableQueue.h  ObservableQueue.new.h 
bash-4.2$ 
funziona ....

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: problema libreria amule

Messaggio da targzeta »

Ammirevole. Queste sono soddisfazioni :).

La patch è sbagliata. Quado esegui diff devi metterti nella directory madre (aMule-2.3.1) e poi fare:

Codice: Seleziona tutto

diff -u ./src/ObservableQueue.h ./src/ObservableQueue.h.new
solo così potrai lanciare:

Codice: Seleziona tutto

patch -p1
Vedi la patch in allegato. Questa la devi eseguire dallo SlackBuild con una cosa come:

Codice: Seleziona tutto

zcat $CWD/aMule-2.3.1.diff.gz | patch -p1
Emanuele
Allegati
aMule-2.3.1.diff.gz
Patch per aMule 2.3.1 con gcc > 4.6
(273 Byte) Scaricato 113 volte
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: problema libreria amule

Messaggio da conraid »


Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: problema libreria amule

Messaggio da targzeta »

Infatti Corrado, per entrambi i programmi, la versione di sviluppo non presanta problemi. Però mi sa che questo thread ha preso una strada didattica più che altro :)

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: problema libreria amule

Messaggio da Procopio »

ehehehehe infatti:)
sono poi riuscito a fare una patch funzionante, e infatti è identica alla tua;)
...mentre conraid ha postato un link alla stessa patch che abbiamo anche fatto noi, ed un elenco di sorgenti compressi con i files già coretti, quindi senza bisogno di patches?

Grazie comunque, Emanuele! ...io avevo cercato un po in giro ma effettivamente quello che ho trovato non credo che mi avrebbe portato ala procedura corretta da eseguire per creare la patch, anche perchè non si trova un progedimento "da manuale" come quello che hai postato, ma solo discussioni già iniziate da utenti che danno per scontato più o meno tanti passaggi, quindi farlo la prima volta è effettivamente difficile, se non si è già un minimo esperti.....

P.s.: dato che siamo in tema, è la prima volta che utilizzo amule (e anche il mulo in generale) quindi sto cercando di confiurarlo, sto seguendo la guida del nostro wiki, ma ho dei problemi sui comandi di amule a cui mi da sempre command not found

Codice: Seleziona tutto

bash-4.2$ amuled -f
bash: amuled: command not found
bash-4.2$ amuleweb -w
bash: amuleweb: command not found
bash-4.2$ /usr/bin/amuleweb -w
bash: /usr/bin/amuleweb: No such file or directory
bash-4.2$ ls /usr/bin/am
amarok                       amarokcollectionscanner      amarokpkg                    amixer                       amp                          
amarok_afttagger             amarokmp3tunesharmonydaemon  amidi                        amor                         amule
il fatto che non riesca ad utilizzare quest ultimo comando non mi permette neanche di creare e modificare il file .aMule/remote.conf, mentre invece il file ./aMule/amule.conf sono riuscito a crearlo facendo partire la gui di amule...

Codice: Seleziona tutto

bash-4.2$ nano .aMule/
Incoming/            amule.conf.bak       cryptkey.dat         ipfilter_static.dat  lastversion          muleLock             server.met.bak       
Temp/                clients.met          emfriends.met        known.met            logfile              preferences.dat      shareddir.dat        
amule.conf           clients.met.bak      ipfilter.dat         known2_64.met        logfile.bak          server.met           

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: problema libreria amule

Messaggio da conraid »

Procopio ha scritto:ehehehehe infatti:)
sono poi riuscito a fare una patch funzionante, e infatti è identica alla tua;)
...mentre conraid ha postato un link alla stessa patch che abbiamo anche fatto noi, ed un elenco di sorgenti compressi con i files già coretti, quindi senza bisogno di patches?
beh certo, quello è il ramo di sviluppo del programma, quindi quelle sono patch "anomale", cioè delle differenze tra due versioni, ma in realtà è come sarà la futura release. Quindi scaricando quello non hai bisogno di patch esterne

Offtopic: Sì lo so, mi lamento che non posso spiegarmi bene in inglese su LQ, ma anche in italiano...

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: [RISOLTO] problema libreria amule

Messaggio da Procopio »

in realtà poi sono riuscito a scaricare ugualmente, però ho pochi risultati nella ricerca e il download mi sembra molto lento. So che mi viene assegnato un low id e che dovrei cambiarlo, e per questo ho già trovato qualche informazione su internet, ma non ho idea di quali altri controlli io debba configurare. Qualcuno può darmi una dritta? almeno su un paio di controlli importanti, tipo il low id, che non devo tralasciare?

Rispondi