Compiz-git: differenze tra le versioni
(→Script) |
(Aggiornati i link interni) |
||
| (37 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 = |
+ | |
| − | http://www.slacky.eu/wikislack/script/get-compiz-v3.3.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 dello script. |
+ | Di seguito è riportato il codice degli script. |
| − | Versione 4.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 324: | Riga 324: | ||
ls /var/log/packages/ | grep ccsm |
ls /var/log/packages/ | grep ccsm |
||
ls /var/log/packages/ | grep fusion-icon |
ls /var/log/packages/ | grep fusion-icon |
||
| + | ls /var/log/packages/ | grep bcop |
||
| + | ls /var/log/packages/ | grep plugins |
||
echo "Quali devo rimuovere?" |
echo "Quali devo rimuovere?" |
||
echo -n "(Lista di pacchetti separati da UNO SPAZIO) " |
echo -n "(Lista di pacchetti separati da UNO SPAZIO) " |
||
| Riga 437: | Riga 439: | ||
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 464: | Riga 466: | ||
- V 3.3 --> Altri bugfix ([http://www.slacky.eu/forum/viewtopic.php?f=12&t=22069&start=30 sempre su un errore segnalato da alexxxius]). Stavolta non dovrebbero più esserci problemi |
- V 3.3 --> Altri bugfix ([http://www.slacky.eu/forum/viewtopic.php?f=12&t=22069&start=30 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 = |
= Consigli = |
||
Versione attuale delle 18: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)
[modifica] Download (Slackware 12.0)
[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
- Autore: Ansa89
[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