Pagina 1 di 1
problemino con sed in uno SlackBuild
Inviato: ven 7 lug 2006, 21:36
da samiel
Volevo modificare il Makefile di licq
in modo che la r. 78 da:
LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error
diventasse:
LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error -liconv.
Perciò, dopo il configure ho messo:
Codice: Seleziona tutto
sed -i "s|LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error| \
LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error -liconv|g" \
Makefile
ma lo SlackBuild se ne frega allegramente
e non aggiunge -liconv.
Ora... dove sbaglio?
Grazie
M.
Inviato: ven 7 lug 2006, 21:48
da chrix
prova a redirigere l'output sul Makefile:
# sed s/'stringa'/'stringa1'/g pippo.txt > filemodificato.txt
Inviato: ven 7 lug 2006, 22:40
da samiel
Ho provato mettendo:
Codice: Seleziona tutto
sed -i "s|LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error| \
LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error -liconv|g" \
Makefile > Makefile
COsì in effetti funziona, ma in maniera poco elegante,
perché fa un primo giro di configure e mi dice:
make: *** No targets. Stop.
make: *** No rule to make target `install'. Stop.
Poi ripassa tutto il configure una seconda volta e inizia a compilare.
comunque Makefile > Makefile suona un tantino assurdo...
Ci dev'essere un modo milgiore...!
Grazie
M.
[/quote]
Inviato: sab 8 lug 2006, 10:30
da Paoletta
prova
Codice: Seleziona tutto
sed "s/LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error/LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error -liconv/" -i Makefile
Inviato: sab 8 lug 2006, 17:08
da chrix
veramente potevi fare anche:
> make.tmp
poi cat make.tmp > Makefile
è quello che intendevo...
Inviato: dom 9 lug 2006, 1:06
da samiel
Ho provato li suggerimento di Paoletta,
ma non funge. Il make dà il solito errore
di quando -liconv non è inserito, ergo...
sed non ha fatto i suo lavoro. Per quanto
riguarda l'ultimo suggerimento di chrix,
domani lo provo, anche se mi sembra
una procedura molto sporca per sed...
Intanto grazie
M.
Inviato: dom 9 lug 2006, 9:53
da Paoletta
strano... sei sicuro di essere nella dir giusta quando usi sed?
Inviato: dom 9 lug 2006, 10:55
da samiel
Non sono più sicuro di nulla (solo relativamente
a sta cosa, naturalmente...). comunque lo SlackBuild
verrebbe fuori semplicemente così:
#!/bin/sh
CWD=`pwd`
if [ "$TMP" = "" ]; then
TMP=/tmp
fi
PKG=$TMP/package-licq
NAME=licq
VERSION=1.3.2
ARCH=i686
BUILD=1ms
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
cd $TMP
tar xjvf $CWD/$NAME-$VERSION.tar.bz2
cd $NAME-$VERSION
chown -R root.root .
zcat $CWD/emailfix.diff.gz | patch -p1 -E --backup --verbose
chown -R root.root .
CFLAGS="-O3 -march=i686 -mtune=i686" ./configure --prefix=/usr \
--program-prefix="" \
--program-suffix="" \
$ARCH-slackware-linux
sed 's|LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error| \
LIBS = -lssl -lcrypto -ldl -lpthread -lnsl -lgpgme -lgpg-error -liconv|' \
-i Makefile
make
make install DESTDIR=$PKG
# Plugin (qt-gui) compilation
cd ./plugins/qt-gui
./configure --with-x --with-kde --with-qt \
--with-qt-includes=/usr/lib/qt/include \
--with-qt-libraries=/usr/lib/qt/lib \
--prefix=/usr \
--program-prefix="" \
--program-suffix="" \
$ARCH-slackware-linux
make
make install DESTDIR=$PKG
# Plugin (Msn) compilation
cd ../msn
./configure --prefix=/usr \
--program-prefix="" \
--program-suffix="" \
$ARCH-slackware-linux
make
make install DESTDIR=$PKG
# Plugin (Auto-reply) compilation
cd ../auto-reply
./configure --prefix=/usr \
--program-prefix="" \
--program-suffix="" \
$ARCH-slackware-linux
make
make install DESTDIR=$PKG
# Plugin (Console) compilation
#cd ../console
#./configure --prefix=/usr \
#--program-prefix="" \
#--program-suffix="" \
#$TARGET-slackware-linux
#make
#make install DESTDIR=$PKG
# Plugin (Email) compilation
cd ../email
./configure --prefix=/usr \
--program-prefix="" \
--program-suffix="" \
$ARCH-slackware-linux
make
make install DESTDIR=$PKG
# Plugin (RMS) compilation
cd ../rms
./configure --prefix=/usr \
--program-prefix="" \
--program-suffix="" \
$ARCH-slackware-linux
make
make install DESTDIR=$PKG
# Plugin (Osd) compilation
cd ../osd
./configure --prefix=/usr \
--program-prefix="" \
--program-suffix="" \
$ARCH-slackware-linux
make
make install DESTDIR=$PKG
chown -R root.bin $PKG/usr/bin
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs
strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
cd $TMP/$NAME-$VERSION
mkdir -p $PKG/usr/doc/$NAME-$VERSION
cp -a ChangeLog INSTALL LICENSE README* \
$PKG/usr/doc/licq-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
rm -rf $PKG/tmp
cd $PKG
makepkg -l y -c n $CWD/licq-$VERSION-$ARCH-$BUILD.tgz
if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/licq-$VERSION
rm -rf $PKG
fi