Compiz-git
Indice
Descrizione
Questo script esegue il download dell'ultima versione GIT di compiz-fusion, lo compila e lo installa (il prefix di default è lo stesso usato da Patrik --> /usr/local). Oltre a compiz vengono scaricati i rami del progetto di cui necessita per il suo corretto funzionamento (libcompizconfig, ccsm, emerald,...) e tutti i plugins disponibili :-)
Finalmente viene creato un pacchetto ".tgz" per ogni ramo del progetto!! In questo modo è pi semplice tenere traccia dell'installazione di compiz :-D
*** ATTENZIONE ***
L'attuale versione NON è compatibile con distro a 64bit. Sto cercando di aggiungere il supporto anche per questo tipo di cpu, ma per il momento lo script si può usare solo con distro 32bit.
Requisiti
GIT --> home
PYTHON --> python-italia // sito_ufficiale
CONNESSIONE A INTERNET ATTIVA --> per scaricare i vari componenti
ACCELERAZIONE 3D ATTIVATA --> per poter avviare compiz e godersi al meglio tutte le meraviglie di questo window-manager (per sapere come abilitare l'accelerazione 3D consultate questa guida, la quale contiene anche alcuni consigli utili per avviare compiz e risolvere problemi comuni)
Download (Slackware 12.1)
Download (Slackware 12.0)
Script
Di seguito è riportato il codice degli script.
Versione 5.0 (per Slackware 12.1)
#!/bin/bash
# Script che scarica, compila e installa compiz-fusion versione git
#
# Compiz sarà compilato senza il supporto per metacity, gnome e gconf;
# in pratica sarà una versione per chi usa esclusivamente KDE su slackware 12.1
# :-)
#
# Script creato il 20/6/2008 da Ansa89 (avrei dovuto fare la mia tesina per l'esame...)
# Variabili per la creazione del pacchetto .tgz
HERE=$(pwd)
PKG="package-getcompiz"
VERSION="git"
CHOST="i686"
ARCH=${ARCH:-i686}
BUILD="1as"
if [ "$ARCH" == "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
elif [ "$ARCH" == "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
elif [ "$ARCH" == "i686" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" == "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" == "x86_64" ]; then
SLKCFLAGS="-O2"
fi
# Variabili per il download di compiz
COMPIZ="git://anongit.compiz-fusion.org/compiz"
REPO="git://anongit.compiz-fusion.org/fusion/"
ITEMS="compizconfig/libcompizconfig"
ITEMS="$ITEMS compizconfig/compizconfig-python"
ITEMS="$ITEMS libraries/bcop"
ITEMS="$ITEMS plugins-main plugins-extra plugins-unsupported"
ITEMS="$ITEMS decorators/emerald decorators/emerald-themes"
ITEMS="$ITEMS i18n"
ITEMS="$ITEMS compizconfig/ccsm"
EXTRA="git://anongit.compiz-fusion.org/users/crdlb/fusion-icon"
# Gli argomenti da passare a "autogen.sh di compiz"
ARGS=" --enable-librsvg --enable-gtk --disable-metacity --disable-static --disable-gconf --enable-kde --build=i686-slackware-linux --prefix=/usr/local"
# Funzione per controllare le dipendenze
check_dep() {
# Controllo se git è installato
if [ -z "$(which git-clone)" ]; then
echo
echo "Devi avere GIT installato per usare questo script!"
echo
exit 1;
fi
if [ -z "$(which git-pull)" ]; then
echo
echo "Devi avere GIT installato per usare questo script!"
echo
exit 1;
fi
# Controllo se python è installato
if [ -z "$(which python)" ]; then
echo
echo "Devi avere PYTHON installato per usare questo script!"
echo
exit 1;
fi
# Controllo se intltool è installato
if [ -z "$(which intltoolize)" ]; then
echo
echo -n "Scarico e installo intltool..."
wget -c http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-12.1/development/intltool/0.40.4/intltool-0.40.4-noarch-1sl.tgz
su -c "upgradepkg --install-new intltool-0.40.4-noarch-1sl.tgz"
rm -f intltool-0.40.4-noarch-1sl.tgz
echo "Fatto"
echo
fi
# Controllo se orbit2 e' installato
if ! ls /var/log/packages | grep orbit2 &> /dev/null; then
echo -n "Scarico e installo orbit2..."
wget -c http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-12.1/libraries/orbit2/2.14.10/orbit2-2.14.10-i686-7as.tgz
su -c "upgradepkg --install-new orbit2-2.14.10-i686-7as.tgz"
rm -f orbit2-2.14.10-i686-7as.tgz
echo "Fatto"
echo
fi
# Controllo se gconf e' installato
if ! ls /var/log/packages | grep gconf &> /dev/null; then
echo -n "Scarico e installo gconf..."
wget -c http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-12.1/libraries/gconf/2.20.1/gconf-2.20.1-i686-7as.tgz
su -c "upgradepkg --install-new gconf-2.20.1-i686-7as.tgz"
rm -f gconf-2.20.1-i686-7as.tgz
echo "Fatto"
echo
fi
}
# Funzione per controllare se si ha internet
check_net() {
if ! ping -c 1 www.kernel.org &> /dev/null; then
echo "Devi poter accedere a internet per scaricare i sorgenti!"
exit 1;
fi
}
# Funzione per scaricare compiz-git
download () {
# Controllo se hai internet
check_net
# Path dove si vuole scaricare i sorgenti
echo "Dove vuoi creare la cartella per i sorgenti? (usare un path assoluto, non relativo!!)"
echo "Se la cartella contiene già i sorgenti scaricati, questi verranno aggiornati ;-)"
echo -n "($HERE) "
read dir
if [ "$dir" == "" ]; then
dir=$HERE
fi
if [ ! -e $dir/compiz-git ]; then
mkdir -p $dir/compiz-git
fi
COMPIZDIR=$dir/compiz-git
PKG=$COMPIZDIR/$PKG
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
# Scarico tutti i rami del progetto di cui ho bisogno (oppure li aggiorno)
cd $COMPIZDIR
COMPIZDIR=$(pwd)
if [ ! -e compiz ]; then
echo "Scarico compiz..."
git-clone $COMPIZ
echo
else
cd compiz
echo "Sto aggiornando compiz..."
git-pull
cd ../
echo
fi
for item in $ITEMS; do
if [ ! -e $(echo $item | cut -d "/" -f 2) ]; then
echo "Scarico il ramo $item..."
git-clone $REPO$item
echo
else
cd $(echo $item | cut -d "/" -f 2)
echo "Sto aggiornando il ramo $item..."
git-pull
cd ../
echo
fi
done
cd $COMPIZDIR
if [ ! -e fusion-icon ]; then
echo "Scarico il ramo fusion-icon..."
git-clone $EXTRA
echo
else
cd fusion-icon
echo "Sto aggiornando il ramo fusion-icon..."
git-pull
cd ../
echo
fi
echo
echo "Ho terminato tutti i download :-)"
echo
}
# Funzione per installare compiz-git
installa () {
# Imposto il numero di versione
cd $COMPIZDIR/libcompizconfig
if [ -e VERSION ]; then
VERSION=$(cat VERSION | cut -d "=" -f 2)
fi
# Compilo compiz per primo (è una dipendenza degli altri pacchetti)
cd $COMPIZDIR/compiz
echo -n "Per primo compilo compiz con i seguenti flags: "
echo $ARGS
sleep 2
CFLAGS="$SLKCFLAGS"
CXXFLAGS="$SLKCFLAGS"
./autogen.sh $ARGS
sleep 2
make
if [ "$(echo $?)" == "0" ]; then
make install DESTDIR=$PKG
mkdir -p $PKG/usr/doc/compiz
cp -a AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO $PKG/usr/doc/compiz/
cd $PKG
echo "Inserisci la password di root per creare e installare il pacchetto compiz-$VERSION-$ARCH-$BUILD.tgz"
su -c "makepkg -l y -c n $HERE/compiz-$VERSION-$ARCH-$BUILD.tgz && upgradepkg --install-new --reinstall $HERE/compiz-$VERSION-$ARCH-$BUILD.tgz && rm -Rf $PKG/*"
cd $COMPIZDIR
else
echo
echo "Qualcosa non è andato bene..."
echo "Esco"
echo
exit 1
fi
# Entro in tutte le cartelle
cd $COMPIZDIR
for item in $ITEMS; do
oggetto=$(echo $item | cut -d "/" -f 2)
cd $COMPIZDIR/$oggetto
# Imposto il numero di versione
if [ -e VERSION ]; then
VERSION2=$(cat VERSION | cut -d "=" -f 2)
else
VERSION2=$VERSION
fi
# Controllo se il ramo che devo compilare e' ccsm
if [ "$oggetto" == "ccsm" ]; then
echo
echo "Compilo $oggetto"
CFLAGS="$SLAKCFLAGS"
CXXFLAGS="$SLKCFLAGS"
python setup.py clean
python setup.py build
if [ "$(echo $?)" == "0" ]; then
mkdir -p $PKG/usr/local/
python setup.py install --prefix=$PKG/usr/local/
mkdir -p $PKG/usr/doc/$oggetto/
cp -a AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO $PKG/usr/doc/$oggetto/
cd $PKG
echo "Inserisci la password di root per creare e installare il pacchetto compiz-$oggetto-$VERSION2-$ARCH-$BUILD.tgz"
su -c "makepkg -l y -c n $HERE/compiz-$oggetto-$VERSION2-$ARCH-$BUILD.tgz && upgradepkg --install-new --reinstall $HERE/compiz-$oggetto-$VERSION2-$ARCH-$BUILD.tgz && rm -Rf $PKG/*"
cd $COMPIZDIR
echo "Reinserisci la password di root"
su -c "ln -sf /usr/local/lib/python2.5/site-packages/c* /usr/lib/python2.5/site-packages/"
else
echo
echo "Non sono riuscito ad installare $oggetto"
echo "Mi fermo"
echo
cd ../
exit 1
fi
# Compilo e installo se trovo "autogen.sh"
elif [ -e autogen.sh ]; then
echo
echo "Compilo $oggetto"
CFLAGS="$SLKCFLAGS"
CXXFLAGS="$SLKCFLAGS"
./autogen.sh
./configure
make clean
make
if [ "$(echo $?)" == "0" ]; then
make install DESTDIR=$PKG
mkdir -p $PKG/usr/doc/$oggetto
cp -a AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO $PKG/usr/doc/$oggetto
cd $PKG
compiz=""
if [ "$oggetto" == "plugins-main" ] || [ "$oggetto" == "plugins-extra" ] || [ "$oggetto" == "plugins-unsupported" ]; then
compiz="compiz-"
fi
echo "Inserisci la password di root per creare e installare il pacchetto $compiz$oggetto-$VERSION2-$ARCH-$BUILD.tgz"
su -c "makepkg -l y -c n $HERE/$compiz$oggetto-$VERSION2-$ARCH-$BUILD.tgz && upgradepkg --install-new --reinstall $HERE/$compiz$oggetto-$VERSION2-$ARCH-$BUILD.tgz && rm -Rf $PKG/*"
cd $COMPIZDIR
if [ "$oggetto" == "bcop" ] && [ ! -e /usr/local/lib/pkgconfig/bcop.pc ]; then
echo "Reinserisci la password di root"
su -c "ln -s /usr/local/share/pkgconfig/bcop.pc /usr/local/lib/pkgconfig/"
fi
else
echo
echo "Non sono riuscito ad installare $oggetto"
echo "Mi fermo"
echo
cd ../
exit 1
fi
fi
done
# Chiedo se vuoi anche la fusion-icon
echo -n "Vuoi anche installare la fusion-icon? (s/n) "
read icon
if [ "$icon" == "" ] || [ "$icon" == "s" ]; then
cd $COMPIZDIR/fusion-icon
if [ -e VERSION ]; then
VERSION2=$(cat VERSION | cut -d "=" -f 2)
else
VERSION2=$VERSION
fi
python setup.py clean
python setup.py build
if [ "$(echo $?)" == "0" ]; then
echo "Inserisci la password di root per installare la fusion-icon"
su -c "python setup.py install --prefix=/usr/"
cd ../
else
echo
echo "Non sono riuscito ad installare fusion-icon"
echo "Mi fermo"
echo
cd ../
exit 1
fi
else
echo
echo "Fusion-icon non installata."
echo
fi
echo
echo
echo "Congratulazioni!"
echo "Ora hai installato l'ultima versione di compiz-fusion (GIT) sul tuo PC!"
echo
echo "Have a lot of fun :-)"
echo
}
# Funzione per disinstallare compiz-git
uninstall () {
# Path dei sorgenti
echo
echo "Dove si trova la cartella contenente i sorgenti? (usare un path assoluto, non relativo!!)"
echo -n "($HERE) "
read dir
if [ "$dir" == "" ]; then
dir=$HERE
fi
COMPIZDIR=$dir/compiz-git
# Cerco se ci sono pacchetti installati
if ls /var/log/packages/ | grep compiz &> /dev/null; then
echo "Ho trovato questi pacchetti installati che assomigliano a compiz:"
ls /var/log/packages/ | grep compiz
ls /var/log/packages/ | grep emerald
ls /var/log/packages/ | grep ccsm
ls /var/log/packages/ | grep i18n
ls /var/log/packages/ | grep bcop
ls /var/log/packages/ | grep plugins
echo "Quali devo rimuovere?"
echo -n "(Lista di pacchetti separati da UNO SPAZIO) "
read canc
if [ ! "$canc" == "" ] && [ -d $COMPIZDIR/fusion-icon ]; then
echo "Inserisci la password di root per eliminare i pacchetti $canc"
su -c "removepkg $canc && cd $COMPIZDIR/fusion-icon && python setup.py uninstall --prefix=/usr/"
echo "Hai rimosso compiz-git."
echo
elif [ ! "$canc" == "" ] && [ ! -d $COMPIZDIR/fusion-icon ]; then
echo "Inserisci la password di root per eliminare i pacchetti $canc"
su -c "removepkg $canc"
echo "Hai rimosso compiz-git."
echo
fi
else
echo
echo "Non ho trovato nessun pacchetto che assomiglia a compiz :-("
echo
exit 1
fi
# Chiedo se devo rimuovere anche i sorgenti di compiz-git
echo -n "Vuoi anche rimuovere la cartella contenente i sorgenti? (s/n) "
read risp
if [ "$risp" == "" ]; then
risp="n"
fi
if [ "$risp" == "s" ]; then
cd $dir
echo "Inserisci la password di root per rimuovere la cartella dei sorgenti"
su -c "echo -n 'Sto eliminando i sorgenti di compiz-git...' && rm -Rf compiz-git/ && echo 'Fatto'"
echo
fi
}
# Controllo le dipendenze
check_dep
# Controllo il parametro passato allo script
case "$1" in
download)
download
exit 0
;;
install)
download
installa
exit 0
;;
only_install)
echo
echo "Dov'è la cartella contenente i sorgenti? (usare un path assoluto, non relativo!!)"
echo -n "($HERE) "
read COMPIZDIR
if [ "$COMPIZDIR" == "" ]; then
COMPIZDIR=$HERE
fi
cd $COMPIZDIR
for item in compiz bcop plugins-main plugins-extra plugins-unsupported emerald emerald-themes libcompizconfig compizconfig-python i18n fusion-icon; do
if [ ! -d $item ]; then
echo
echo "Il percorso $COMPIZDIR non è corretto o non contiene tutti i rami del progetto!"
echo "Prova con '$0 install'..."
echo "Mi fermo"
echo
exit 1
fi
done
installa
exit 0
;;
uninstall)
uninstall
exit 0
;;
*)
echo
echo "Opzioni valide:"
echo "$0 download --> per scaricare/aggiornare compiz-git"
echo "$0 install --> per scricare/aggiornare e installare compiz-git"
echo "$0 only_install --> per installare compiz-git se i sorgenti sono già stati scaricati"
echo "$0 uninstall --> per rimuovere una versione di compiz-git precedentemente installata"
echo
echo "Versione 5.0"
echo "By Ansa89 (ansa89@slacky.it)"
echo
exit 1
;;
esac
#EOF
Versione 4.0 (per Slackware 12.0)
#!/bin/bash
# Script che scarica, compila e installa compiz-fusion versione git
#
# Compiz sarà compilato senza il supporto per metacity, gnome e gconf;
# in pratica sarà una versione per chi usa esclusivamente KDE su slackware 12.0
# :-)
#
# Script creato il 8/4/2008 da Ansa89 (avrei dovuto studiare Bergson e Dewey...)
# Variabili per la creazione del pacchetto .tgz
HERE=$(pwd)
PKG="package-getcompiz"
VERSION="git"
CHOST="i686"
ARCH=${ARCH:-i686}
BUILD=1
if [ "$ARCH" == "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
elif [ "$ARCH" == "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
elif [ "$ARCH" == "i686" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" == "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" == "x86_64" ]; then
SLKCFLAGS="-O2"
fi
# Variabili per il download di compiz
COMPIZ="git://git.freedesktop.org/git/xorg/app/compiz"
REPO="git://anongit.compiz-fusion.org/fusion/"
ITEMS="libraries/bcop"
ITEMS="$ITEMS plugins-main plugins-extra plugins-unsupported"
ITEMS="$ITEMS decorators/emerald decorators/emerald-themes"
ITEMS="$ITEMS compizconfig/libcompizconfig"
ITEMS="$ITEMS compizconfig/compizconfig-python"
ITEMS="$ITEMS compizconfig/ccsm"
ITEMS="$ITEMS i18n"
EXTRA="git://anongit.compiz-fusion.org/users/crdlb/fusion-icon"
# Gli argomenti da passare a "autogen.sh di compiz"
ARGS=" --enable-librsvg --enable-gtk --disable-metacity --disable-static --disable-gconf --enable-kde --build=i686-slackware-linux --prefix=/usr/local"
# Controllo se git è installato
if [ -z "$(which git-clone)" ]; then
echo "Devi avere GIT installato per usare questo script!"
exit 1;
fi
if [ -z "$(which git-pull)" ]; then
echo "Devi avere GIT installato per usare questo script!"
exit 1;
fi
# Controllo se python è installato
if [ -z "$(which python)" ]; then
echo "Devi avere PYTHON installato per usare questo script!"
exit 1;
fi
# Funzione per scaricare compiz-git
download () {
# Controllo se hai internet
if ! ping -c 5 www.slacky.eu &> /dev/null; then
echo "Devi poter accedere a internet per scaricare i sorgenti!"
exit 1;
fi
# Scarico e installo due pacchetti che servono
if ! ls /var/log/packages/ | grep gconf &> /dev/null; then
wget -c http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-12.0/network/gizmo/3.1.0.79/gconf-2.20.1-i686-6as.tgz
su -c "upgradepkg --install-new gconf-2.20.1-i686-6as.tgz"
fi
if ! ls /var/log/packages/ | grep orbit2 &> /dev/null; then
wget -c http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-12.0/network/gizmo/3.1.0.79/orbit2-2.14.10-i686-6as.tgz
su -c "upgradepkg --install-new orbit2-2.14.10-i686-6as.tgz"
fi
rm -f gconf-2.20.1-i686-6as.tgz orbit2-2.14.10-i686-6as.tgz
# Path dove si vuole scaricare i sorgenti
echo "Dove vuoi creare la cartella per i sorgenti? (usare un path assoluto, non relativo!!)"
echo "Se la cartella contiene già i sorgenti scaricati, questi verranno aggiornati ;-)"
echo -n "($HERE) "
read dir
if [ "$dir" == "" ]; then
dir=$HERE
fi
if [ ! -e $dir/compiz-git ]; then
mkdir -p $dir/compiz-git
fi
COMPIZDIR=$dir/compiz-git
PKG=$COMPIZDIR/$PKG
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
# Scarico tutti i rami del progetto di cui ho bisogno (oppure li aggiorno)
cd $COMPIZDIR
COMPIZDIR=$(pwd)
if [ ! -e compiz ]; then
echo "Scarico compiz..."
git-clone $COMPIZ
echo
else
cd compiz
echo "Sto aggiornando compiz..."
git-pull
cd ../
echo
fi
for z in $ITEMS; do
if [ ! -e $(echo $z | cut -d "/" -f 2) ]; then
echo "Scarico il ramo $z..."
git-clone $REPO$z
echo
else
cd $(echo $z | cut -d "/" -f 2)
echo "Sto aggiornando il ramo $z..."
git-pull
cd ../
echo
fi
done
cd $COMPIZDIR
if [ ! -e fusion-icon ]; then
echo "Scarico il ramo fusion-icon..."
git-clone $EXTRA
echo
else
cd fusion-icon
echo "Sto aggiornando il ramo fusion-icon..."
git-pull
cd ../
echo
fi
echo
echo "Ho terminato tutti i download :-)"
echo
}
# Funzione per installare compiz-git
installa () {
# Imposto il numero di versione
cd $COMPIZDIR/libcompizconfig
if [ -e VERSION ]; then
VERSION=$(cat VERSION | cut -d "=" -f 2)
fi
# Compilo compiz per primo (è una dipendenza degli altri pacchetti)
cd $COMPIZDIR/compiz
echo -n "Per primo compilo compiz con i seguenti flags: "
echo $ARGS
sleep 2
CFLAGS="$SLKCFLAGS"
CXXFLAGS="$SLKCFLAGS"
./autogen.sh $ARGS
sleep 2
make
if [ "$(echo $?)" == "0" ]; then
make install DESTDIR=$PKG
mkdir -p $PKG/usr/doc/compiz
cp -a AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO $PKG/usr/doc/compiz/
cd $PKG
echo "Inserisci la password di root per creare e installare il pacchetto compiz-$VERSION-$ARCH-$BUILD.tgz"
su -c "makepkg -l y -c n $HERE/compiz-$VERSION-$ARCH-$BUILD.tgz && upgradepkg --install-new --reinstall $HERE/compiz-$VERSION-$ARCH-$BUILD.tgz && rm -Rf $PKG/*"
cd $COMPIZDIR
else
echo
echo "Qualcosa non è andato bene..."
echo "Esco"
echo
exit 1
fi
# Entro in tutte le cartelle
cd $COMPIZDIR
for i in libcompizconfig compizconfig-python bcop plugins-main plugins-extra plugins-unsupported emerald emerald-themes i18n; do
cd $COMPIZDIR/$i
# Imposto il numero di versione
if [ -e VERSION ]; then
VERSION2=$(cat VERSION | cut -d "=" -f 2)
else
VERSION2=$VERSION
fi
# Compilo e installo se trovo "autogen.sh"
if [ -e autogen.sh ]; then
echo
echo "Compilo $i"
CFLAGS="$SLKCFLAGS"
CXXFLAGS="$SLKFLAGS"
./autogen.sh
./configure
make clean
make
if [ "$(echo $?)" == "0" ]; then
make install DESTDIR=$PKG
mkdir -p $PKG/usr/doc/$i
cp -a AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO $PKG/usr/doc/$i
cd $PKG
echo "Inserisci la password di root per creare e installare il pacchetto $i-$VERSION2-$ARCH-$BUILD.tgz"
su -c "makepkg -l y -c n $HERE/$i-$VERSION2-$ARCH-$BUILD.tgz && upgradepkg --install-new --reinstall $HERE/$i-$VERSION2-$ARCH-$BUILD.tgz && rm -Rf $PKG/*"
cd $COMPIZDIR
if [ "$i" == "bcop" ] && [ ! -e /usr/local/lib/pkgconfig/bcop.pc ]; then
echo "Reinserisci la password di root"
su -c "ln -s /usr/local/share/pkgconfig/bcop.pc /usr/local/lib/pkgconfig/"
fi
else
echo
echo "Non sono riuscito ad installare $i"
echo "Mi fermo"
echo
cd ../
exit 1
fi
fi
done
# Adesso compilo CCSM perchè devo usare python
cd $COMPIZDIR
cd ccsm
if [ -e VERSION ]; then
VERSION2=$(cat VERSION | cut -d "=" -f 2)
else
VERSION2=$VERSION
fi
python setup.py clean
python setup.py build
if [ "$(echo $?)" == "0" ]; then
python setup.py --prefix=$PKG/
mkdir -p $PKG/usr/doc/ccsm/
cp -a AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO $PKG/usr/doc/ccsm/
cd $PKG
echo "Inserisci la password di root per creare e installare il pacchetto ccsm-$VERSION2-$ARCH-$BUILD.tgz"
su -c "makepkg -l y -c n $HERE/ccsm-$VERSION2-$ARCH-$BUILD.tgz && upgradepkg --install-new --reinstall $HERE/ccsm-$VERSION2-$ARCH-$BUILD.tgz && rm -Rf $PKG/*"
cd ../
echo "Reinserisci la password di root"
su -c "ln -sf /usr/local/lib/python2.5/site-packages/c* /usr/lib/python2.5/site-packages/"
else
echo
echo "Non sono riuscito ad installare ccsm"
echo "Mi fermo"
echo
cd ../
exit 1
fi
# Chiedo se vuoi anche la fusion-icon
echo -n "Vuoi anche installare la fusion-icon? (s/n) "
read icon
if [ "$icon" == "" ]; then
icon="n"
fi
if [ "$icon" == "s" ]; then
cd $COMPIZDIR/fusion-icon
if [ "$(echo $?)" == "0" ]; then
if [ -e VERSION ]; then
VERSION2=$(cat VERSION | cut -d "=" -f 2)
else
VERSION2=$VERSION
fi
python setup.py clean
python setup.py build
python setup.py install --prefix=$PKG/
mkdir -p $PKG/usr/doc/fusion-icon/
cp -a AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO $PKG/usr/doc/fusion-icon/
echo "Inserisci la password di root per creare e installare il pacchetto fusion-icon-$VERSION2-$ARCH-$BUILD.tgz"
su -c "makepkg -l y -c n $HERE/fusion-icon-$VERSION2-$ARCH-$BUILD.tgz && upgradepkg --install-new --reinstall $HERE/fusion-icon-$VERSION2-$ARCH-$BUILD.tgz && rm -Rf $PKG/* "
cd ../
else
echo
echo "Non sono riuscito ad installare fusion-icon"
echo "Mi fermo"
echo
cd ../
exit 1
fi
fi
echo
echo
echo "Congratulazioni!"
echo "Ora hai installato l'ultima versione di compiz-fusion (GIT) sul tuo PC!"
echo
echo "Have a lot of fun :-)"
}
# Funzione per disinstallare compiz-git
uninstall () {
# Cerco se ci sono pacchetti installati
if ls /var/log/packages/ | grep compiz &> /dev/null; then
echo "Ho trovato questi pacchetti installati che assomigliano a compiz:"
ls /var/log/packages/ | grep compiz
ls /var/log/packages/ | grep emerald
ls /var/log/packages/ | grep ccsm
ls /var/log/packages/ | grep fusion-icon
ls /var/log/packages/ | grep bcop
ls /var/log/packages/ | grep plugins
echo "Quali devo rimuovere?"
echo -n "(Lista di pacchetti separati da UNO SPAZIO) "
read canc
if [ ! "$canc" == "" ]; then
echo "Inserisci la password di root per eliminare i pacchetti $canc"
su -c "removepkg $canc"
fi
else
echo "Non ho trovato pacchetti installati che assomigliano a compiz."
echo
# Path contenente i sorgenti
echo "Dove si trova la cartella contenente i sorgenti? (usare un path assoluto, non relativo!!)"
echo -n "($HERE) "
read dir
if [ "$dir" == "" ]; then
dir=$HERE
fi
if [ ! -d $dir ]; then
echo "La cartella $dir non esiste!"
echo
exit 1
fi
cd $dir
for i in compiz bcop plugins-main plugins-extra plugins-unsupported emerald emerald-themes libcompizconfig compizconfig-python i18n; do
if [ -d $i ]; then
cd $i
echo "Inserisci la password di root per rimuovere $i"
su -c "make uninstall"
cd ../
fi
done
# Adesso rimuovo CCSM perchè devo usare python
cd $dir/ccsm/
echo "Inserisci la password di root per rimuovere ccsm"
su -c "python setup.py uninstall"
# Chiedo se devo rimuovere anche la fusion-icon
echo -n "Devo rimuovere anche la fusion-icon? (s/n) "
read risp
if [ "$risp" == "" ] || [ "$risp" == "s" ]; then
cd $dir/fusion-icon/
echo "Inserisci la password di root per rimuovere fusion-icon"
su -c "python setup.py uninstall"
cd ../
fi
# Rimuovo anche tutti i sorgenti di compiz-git
cd $dir
cd ../
echo "Inserisci la password di root per rimuovere la cartella dei sorgenti"
su -c "echo -n 'Sto eliminando i sorgenti di compiz-git...' && rm -Rf compiz-git/ && echo 'Fatto'"
echo
fi
}
# Controllo il parametro passato allo script
case "$1" in
download)
download
exit 0
;;
install)
download
installa
exit 0
;;
only_install)
echo
echo "Dov'è la cartella contenente i sorgenti? (usare un path assoluto, non relativo!!)"
echo -n "($HERE) "
read COMPIZDIR
if [ "$COMPIZDIR" == "" ]; then
COMPIZDIR=$HERE
fi
cd $COMPIZDIR
for i in compiz bcop plugins-main plugins-extra plugins-unsupported emerald emerald-themes libcompizconfig compizconfig-python i18n fusion-icon; do
if [ ! -d $i ]; then
echo
echo "Il percorso $COMPIZDIR non è corretto o non contiene tutti i rami del progetto!"
echo "Prova con '$0 install'..."
echo "Mi fermo"
echo
exit 1
fi
done
installa
exit 0
;;
uninstall)
uninstall
exit 0
;;
*)
echo
echo "Opzioni valide:"
echo "$0 download --> per scaricare/aggiornare compiz-git"
echo "$0 install --> per scricare/aggiornare e installare compiz-git"
echo "$0 only_install --> per installare compiz-git se i sorgenti sono già stati scaricati"
echo "$0 uninstall --> per rimuovere una versione di compiz-git precedentemente installata"
echo
echo "Versione 4.0"
echo "By Ansa89 (ansa89@slacky.it)"
echo
exit 1
;;
esac
#EOF
- Autore: Ansa89
Changelog
Inizio una sezione "changelog" per spiegare le migliorie che cerco di introdurre nelle nuove versioni:
- V 1.0 --> Prima versione...con un sacco di bug (eh oh)
- V 2.0 --> Dopo un bel periodo di prove ho capito come evitare alcuni problemi durante la compilazione dei vari componenti
- V 2.1 --> Ehm...avevo sbagliato a scrivere alcune linee di codice e mentre le correggevo mi è venuto in mente di aggiungere qualcosina: finalmente possiamo avere la fusion-icon!! :-D
- V 2.2 --> "plugins-main" non trovava "bcop" durante la configurazione a causa di un path errato (spiegazione). Un ringraziamento a JohnnyMnemonic :-)
- V 3.0 --> Adesso si può scegliere se installare/aggiornare compiz o semplicemente rimuoverlo :-D
- V 3.1b --> Versione BETA: adesso crea un pacchetto .tgz (per ogni componente) e lo installa; inoltre ho introdotto il "solo download/update", così l'utente può anche scaricare compiz-git senza doverlo installare
- V 3.1b2 --> Ancora BETA: c'erano troppe variabili e richieste: ne ho tolte un po' per snellire lo script
- V 3.1b3 --> Aggiunta la modalità "only_install" che permette di installare compiz-git senza riscaricare/aggiornare tutti i rami del progetto (ovviamente i sorgenti devono essere già presenti sul computer)
- V 3.1 --> Ultime correzioni di bug; lo script sembra completo, pertanto lo sviluppo si ferma (almeno fino a quando non verranno fuori altri problemi)
- V 3.2 --> Bugfix: adesso entra nella cartella "$PKG" prima di creare i pacchetti ".tgz" (errore segnalato da alexxxius). Inoltre la fusion-icon non dà più problemi di compilazione
- V 3.3 --> Altri bugfix (sempre su un errore segnalato da alexxxius). Stavolta non dovrebbero più esserci problemi
- V 4.0 --> Adesso per _OGNI_ ramo del progetto viene creato un pacchetto (prima ccsm e fusion-icon non erano pacchettizzati...) --Ultima release per Slackware 12.0--
- V 5.0 --> Prima release per Slackware 12.1! Fixati alcuni bug che impedivano la compilazione di compiz con la nuova Slack, create nuove funzioni per il check della connessione e delle dipendenze, migliorato l'aspetto dello script. Inoltre la fusion-icon _NON_ viene pacchettizzata perché dà dei problemi quando si cerca di installare il pacchetto creato
Consigli
1) Se per caso qualcuno avrà il coraggio di usare il mio script e decidesse di attivare l'opzione che installa anche fusion-icon, è bene che sappia che basta lanciare il comando "fusion-icon" (posizionato in "/usr/bin"): questo lancerà automaticamente compiz e farà comparire una comoda icona nella tray-bar (la quale ovviamente avrà il simbolo di compiz-fusion); facendo click destro su questa icona si potrà scegliere il window-manager, il window-decorator e aprire il centro di controllo di compiz (ccsm). Inoltre offre altre funzionalità abbastanza comode :-)
2) Compizconfig setting manager, a causa di un errore, non ha le icone delle varie categorie (generale, accessibilità, desktop, ...): per correggere questo bug esiste un workaround che potete trovare qui. Un ringraziamento a mimmoforlug :-D
Feedback
Per commenti e suggerimenti inviatemi una e-mail a
ansa89[AT]slacky[DOT]it
HAVE A LOT OF FUN