Repository 32bit  Forum
Repository 64bit  Wiki

Compiz-git: differenze tra le versioni

Da Slacky.eu.
(News)
(Aggiornati i link interni)
 
(29 revisioni intermedie di 3 utenti non mostrate)
Riga 18: Riga 18:
CONNESSIONE A INTERNET ATTIVA --> per scaricare i vari componenti
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 [http://www.slacky.eu/wikislack/index.php?title=Compiz_e_compiz-fusion_su_Slackware#Introduzione questa guida], la quale contiene anche alcuni consigli utili per avviare compiz e risolvere problemi comuni)
+
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 [[Compiz_e_compiz-fusion_su_Slackware#Introduzione|questa guida]], la quale contiene anche alcuni consigli utili per avviare compiz e risolvere problemi comuni)
= Download (Slack 12.0)=
+
http://www.slacky.eu/wikislack/script/get-compiz-v4.0.sh
+
= Download (Slackware 12.1) =
  +
[[Media:Compiz_git-5.0.sh]]
  +
  +
= Download (Slackware 12.0) =
  +
[[Media:Compiz_git-4.0.sh]]
= Script =
= Script =
Di seguito è riportato il codice degli script.
Di seguito è riportato il codice degli script.
Versione 4.0 (per Slackware 12.0)
+
== Versione 5.0 (per Slackware 12.1) ==
  +
  +
<source lang="bash">
  +
#!/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
  +
</source>
  +
  +
----
  +
----
  +
  +
== Versione 4.0 (per Slackware 12.0) ==
<pre>
+
<source lang="bash">
#!/bin/bash
#!/bin/bash
# Script che scarica, compila e installa compiz-fusion versione git
# Script che scarica, compila e installa compiz-fusion versione git
Riga 440: Riga 440:
esac
esac
#EOF
#EOF
</pre>
+
</source>
* Autore: Ansa89
+
* Autore: [[Utente:Ansa89|Ansa89]]
= News =
+
= Changelog =
Inizio una sezione "news" per spiegare le migliorie che cerco di introdurre nelle nuove versioni:
+
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 1.0 --> Prima versione...con un sacco di bug (eh oh)
Riga 469: Riga 469:
- 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 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 =
= Consigli =

Versione attuale delle 17:44, 15 set 2012

Indice

[modifica] 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.

[modifica] 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)


[modifica] Download (Slackware 12.1)

Media:Compiz_git-5.0.sh

[modifica] Download (Slackware 12.0)

Media:Compiz_git-4.0.sh

[modifica] Script

Di seguito è riportato il codice degli script.

[modifica] 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


[modifica] 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

[modifica] 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

[modifica] 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

[modifica] Feedback

Per commenti e suggerimenti inviatemi una e-mail a

ansa89[AT]slacky[DOT]it


HAVE A LOT OF FUN

Strumenti personali
Namespace

Varianti