Script couteau suisse pour e17

Bonjour tous,
je vous présente un script pour l’installation d’e17 via le svn.
Ce script vous permet :
[ul]
[li]D’installer pour la première fois e17 à partir du svn du projet. [/li]
[li]De mettre à jour e17 (seulement s’il y a une mise à jour de la librairie sur le svn)[/li]
[li]De re-installer e17 (dés-installation et re-installation) [/li]
[li]Dés-installer définitivement e17 [/li]
[li]Installer e17 (sans dés-installation préalable) [/li]
[li] Restaurer e17 depuis la dernière sauvegarde. [/li][/ul]

Le script sauvegarde les sources et le dossier utilisateur avant chaque mise à jours pour une restauration si un bug empêche l’utilisation d’e17.
Il installe e17 de base pour qu’il soit fonctionnel, vous pouvez ajouter les e_modules de votre choix et tout autre programme du svn d’e17.

Le script détecte si vous le lancer en simple utilisateur et vous invite à passer en root.
Le script détecte si e17 est en cours d’exécution et vous demande de passer en tty 1 avant de l’exécuter.
Lors la première utilisation vous le lancer via la commande classique :

Ensuite le script crée un alias dans /root/.bashrc pour le lancer via la commande :

Enregistrez le script sous le nom e17.sh ensuite rendez-le executable :

Avant toute utilisation vous devez renseigner les variable présentes au début du script celons vos choix.

[code]UTILISATEUR=“ici_votre_choix” # Votre nom d’utilisateur.
SRC_E17="/home/$UTILISATEUR/ici_votre_choix" # Dossier d’installation des sources d’e17
#laissez /home/$UTILISATEUR/ (ex src).
SAUVEGARDES="/home/$UTILISATEUR/ici_votre_choix" # Dossier différent de celui des sources

pour la sauvegarde,laissez /home/$UTILISATEUR/ (ex sauvegardes).

OPTI_GCC=“2” # Optimisation croissante choisir entre 0, 1 et 2 pour gcc.
LOG_PATH=“ici_votre_choix” # Emplacement des log, garder le / (ex /var/log/e17).[/code]

Voici le script en version 1.4 :

[code]#!/bin/bash
##########################################################################################

Crée par pitcat le 6 mai 2012.

Ce script vous permet :

- D’installer e17 à partir du svn du projet.

- De mettre à jour e17 (seulement s’il y a une mise à jour de la librairie sur le svn)

- De ré-installer e17 (dés-installation et re-installation)

- Dés-installer définitivement e17

- Installer e17 (sans dés-installation préalable)

- Restaurer e17 depuis la dernière sauvegarde.

Pour tout info boiteacourriels@orange.fr

##########################################################################################

Change log :

Version 1.4 du script :

Ajout de la détection de la version debian pour les dépendances

Correction du bug des dépendances de stable avec testing/sid

Version 1.3 du script :

Amélioration de la sauvegarde, seules les librairies mise à jour sont sauvegardées

Version 1.2 du script :

correction de bug avec squeeze et modification des dépendances.

Version 1.1 du script :

Ajout de la détection du nombre de cpu pour choisir le profil d’e17

Version 1 du script :

Correction de bug mineurs

Version 0.9 du script :

Ajout de l’alias avec log dans /root/.bashrc

Version 0.8 du script :

Ajout de la détection de root.

Ajout des variables configurables.

Version 0.7 du script :

Ajout de la détection d’utilisation d’17 pour exécuter le script en tty sans X.

Ajout de la barre de décompte avant bascule en tty 1

Version 0.6 du script :

Correction et optimisation du code.

Version 0.5 du script :

Ajout de la configuration spécifique pour certaines librairies.

Version 0.4 du script :

Ajout de la restauration d’e17.

Mise en place de la sauvegarde des sources locales d’e17

Version 0.3 du script :

Ajout de la compilation simple d’e17.

Version 0.2 du script :

Ajout de la ré-installation d’e17.

Version 0.1 du script :

fusion de mes 3 scripts, installation, mise à jour et dés-installation pour e17.

Création du menu

################################# Configuration des variables.############################
set -e # Arrête le script en cas d’erreur.
################################# Définir celons votre choix.##############################
################################# Remplacez ici_votre_choix par vos dossiers.##############
UTILISATEUR=“ici_votre_choix” # Votre nom d’utilisateur.
SRC_E17="/home/$UTILISATEUR/ici_votre_choix" # Dossier d’installation des sources d’e17
#laissez /home/$UTILISATEUR/ (ex src).
SAUVEGARDES="/home/$UTILISATEUR/ici_votre_choix" # Dossier différent de celui des sources

pour la sauvegarde,laissez /home/$UTILISATEUR/ (ex sauvegardes).

OPTI_GCC=“2” # Optimisation croissante choisir entre 0, 1 et 2 pour gcc.
LOG_PATH=“ici_votre_choix” # Emplacement des log, garder le / (ex /var/log/e17).
################################# Variables pour le script.###############################
################################# Ne rien modifier à partir d’ici.########################
VIDE=“ici_votre_choix"
MESG=“Veuillez renseigner toutes les variables du script”
################################# Couleurs.###############################################
CYAN=”\033[36m" # sauvegardes
BLEU="\033[34m" # svn up
ORANGE="\033[33m" # make uninstall et make clean distclean
VERT="\033[32m" # Vérification des variables
ROUGE="\033[31m" # make et make install
JAUNE="\033[1;33m" # configuration des librairies
################################# Export des variables d’environement pour la compilation.###
export LD_LIBRARY_PATH="/usr/local/lib"
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
export CFLAGS="-g -march=native -O$OPTI_GCC -pipe -mtune=native -fvisibility=hidden -msse4.1"
export CXXFLAGS="-g -march=native -O$OPTI_GCC -pipe -mtune=native -fvisibility=hidden -msse4.1"
export LDFLAGS="-L/usr/local/lib"
export CPPFLAGS="-I/usr/local/include"
export CC=“ccache gcc"
export CXX=“ccache g++“
LOG_DATE=‘e17-$(date +%m-%d-%H-%m)‘
GREP_ALIAS="alias e17=’/home/$UTILISATEUR/e17.sh 2>&1 | tee /var/log/e17/$LOG_DATE.log’“
GREP_LD='grep “/usr/local/lib” /etc/ld.so.conf.d/e17.conf’
U_PATH=”/home/$UTILISATEUR/“
CPU=grep processor /proc/cpuinfo|wc|awk -F " " '{print $1}'
JOBS=grep processor /proc/cpuinfo|wc|awk -F " " '{print $1+1}'
MAKE_CMD=“make -j$JOBS “
FMAKE=find /usr/bin/make
TEMP_E17=”/tmp/e17”
################################## Détection de l’architecture.#############################################
ARCH=dpkg --print-architecture
case “$ARCH” in
amd64 )ARCH=x86_64-linux-gnu ;;
i386 ) ARCH=i486-linux-gnu ;;
* ) ARCH=*-linux-gnu ;;
esac
V_DEBIAN=”cat /etc/debian_version | cut -d/ -f2
################################# Variables d’e17.#############################################
E_PATH=”/usr/local” # Dossier d’installation d’e17
SVN=“svn co https://svn.enlightenment.org/svn/e/trunk"
SVN_UP=“svn up --accept theirs-full"
E17=“eina eet evas evas_generic_loaders ecore eio eeze embryo edje e_dbus efreet e” # Liste des librairies de base d’e17
MODULES=“places engage calendar screenshot forecasts” # Liste des e_modules a installer http://trac.enlightenment.org/e/browser/trunk/E-MODULES-EXTRA
EXTRA=“emprint” # Liste des librairies de votre choix autres que la base d’e17. http://trac.enlightenment.org/e/browser/trunk/
PROTO=”” # voir ici http://trac.enlightenment.org/e/browser/trunk/PROTO
E_SESSION="$SRC_E17/e/data/xsession"
X_SESSION="/usr/share/xsessions"
SRC_EXTRA="$SRC_E17"
SRC_PROTO="$SRC_E17/proto"
SRC_MODULES="$SRC_E17/e_modules"
################################ #Variables pour la configuration :#################################
CONFIGURE="./autogen.sh --prefix=$E_PATH --build=$ARCH --host=$ARCH --target=$ARCH “
CONFIGURE_EINA=”–enable-valgrind --enable-amalgamation --with-internal-maximum-log-level=2 --enable-e17 --enable-tests
–enable-fast-install --with-gnu-ld"
CONFIGURE_EET="–enable-tests --with-gnu-ld --enable-fast-install"
CONFIGURE_EVAS="-with-x --enable-valgrind --enable-cpu-c --enable-buffer --enable-pthreads --enable-pipe-render \
–enable-image-loader-edb --enable-image-loader-eet --enable-image-loader-gif
–enable-image-loader-pmaps --enable-image-loader-png --enable-image-loader-svg --enable-image-loader-tiff
–enable-image-loader-xpm --enable-image-loader-bmp --enable-image-loader-tga --enable-image-loader-wbmp
–enable-image-loader-ico --enable-image-loader-psd --enable-image-loader-generic --enable-pthreads
–enable-async-render --enable-async-events --enable-async-preload --enable-cpu-mmx
–enable-cpu-sse --enable-word-cache --enable-metric-cache --enable-image-loader-jpeg --enable-fast-install"
CONFIGURE_EIO="–with-gnu-ld"
CONFIGURE_ECORE="–with-x --enable-glib-integration-always --with-internal-maximum-log-level=3 --enable-ecore-x --enable-epoll
–enable-thread-safety --enable-ecore-evas-opengl-x11 -enable-ecore-evas-opengl-glew"
CONFIGURE_EEZE="–with-gnu-ld"
CONFIGURE_EMBRYO="–with-gnu-ld"
CONFIGURE_EDJE="–enable-amalgamation --enable-edje-program-cache --enable-edje-calc-cache --enable-fixed-point --enable-tests
–with-gnu-ld"
CONFIGURE_E_DBUS="-with-gnu-ld"
CONFIGURE_EFREET="–with-gnu-ld --enable-tests"
CONFIGURE_E="–enable-mount-eeze --enable-mount-udisks"
################################# Vérification des differentes variables .######################
################################# Variables pour la dés-installation’e17.#######################
RM_LIB=“ecore edje efreet enlightenment evas pkgconfig” # Garder python
RM_ETC="enlightenment xdg"
RM_INC="ecore-1 e_dbus-1 edje-1 eet-1 eeze-1 efreet-1 eina-1 eio-1 embryo-1 enlightenment evas-1"
RM_SHARE=“ecore edje efreet embryo enlightenment xsessions e_dbus eet eina emprint evas locale mime/packages”
################################# Variables pour la sauvegardes.################################
DOSSIERSAUVE=$(date +%d-%m-%H)
#Intégration de la date dans le nom de la sauvegarde.
repertoire=${1:-$DOSSIERSAUVE}
################################# Fin des variables .###########################################
################################# Paquets à installer :#################################
APT_STABLE="autoconf automake autopoint autotools-dev build-essential bzip2 ccache colorgcc comerr-dev doxygen dpkg-dev esound-common g++ g+±4.4 gdb gdbserver gettext git
krb5-multidev libaa1-dev libapr1 libaprutil1 libartsc0 libartsc0-dev libasound2-dev libaudio-dev libaudiofile-dev libaudiofile0 libavahi-client-dev
libavahi-common-dev libc6-dbg libcaca-dev libcroco3 libcurl3 libcurl4-openssl-dev libdbus-1-dev libdirectfb-dev libdirectfb-extra libdpkg-perl liberror-perl
libesd0 libesd0-dev libexpat1-dev libflac-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libfribidi0 libgl1-mesa-dev libglib2.0-dev libglu1-mesa-dev
libgssrpc4 libice-dev libidn11-dev libjpeg62-dev libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkrb5-dev libldap2-dev libltdl-dev liblua5.1-0
liblua5.1-0-dev libmikmod2 libmikmod2-dev libncurses5-dev libneon27-gnutls libogg-dev libpam0g-dev libpng12-dev libpthread-stubs0 libpthread-stubs0-dev
libpulse-browse0 libpulse-dev libreadline-dev libreadline6-dev libsdl-sound1.2 libsdl-sound1.2-dev libsdl1.2-dev libserf-0-0 libslang2-dev libsm-dev
libsmpeg-dev libsmpeg0 libspeex-dev libsqlite3-dev libssh2-1 libssh2-1-dev libssl-dev libstdc++6-4.4-dev libsvga1-dev libsvn1 libsysfs-dev libtag1-dev
libtagc0 libtagc0-dev libtimedate-perl libtool libudev-dev libunistring0 libvorbis-dev libx11-dev libxau-dev libxcb-shape0-dev libxcb1-dev libxcomposite-dev
libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxine-dev libxinerama-dev libxml2-dev libxrandr-dev libxrender-dev libxslt1-dev
libxss-dev libxt-dev m4 mesa-common-dev pkg-config subversion texinfo valgrind x11proto-composite-dev x11proto-core-dev x11proto-damage-dev
x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev x11proto-scrnsaver-dev x11proto-xext-dev x11proto-xinerama-dev
xtrans-dev zlib1g-dev "
APT=“subversion autoconf autopoint automake gettext build-essential ccache
pkg-config libtool autotools-dev zlib1g-dev libfreetype6-dev
libx11-dev libpng12-dev libxext-dev libxrender-dev libxinerama-dev
libxcursor-dev libxrandr-dev libxdamage-dev libxcomposite-dev libpam0g-dev
libxss-dev libssl-dev libdbus-1-dev libcurl4-openssl-dev
libxml2-dev libxslt1-dev libltdl-dev libtag1-dev libtagc0-dev
libxine-dev libsqlite3-dev texinfo libsvga1-dev doxygen valgrind gdb libfribidi-dev
libsdl-sound1.2-dev liblua5.1-0-dev libudev-dev libfontconfig1-dev libxcb-shape0-dev libglib2.0-bin libglib2.0-dev”
################################# Vérification des differentes variables .######################
if [ $USER = root ] # Vérifier si vous êtes root.
then
echo ““
else
echo -e “$ROUGE” “Vous n’avez pas les droits nécessaires pour installer e17, basculez sous le compte admin et relancer le script.”; tput sgr0
exit 0
fi
case $VIDE in # Vérifier si vous avez bien indiqué les variables.
”$UTILISATEUR”)
echo “$MESG “
exit 0
;;
”$OPTI_GCC”)
echo “$MESG “
exit 0
;;
”$SRC_E17”)
echo “$MESG “
exit 0
;;
”$SAUVEGARDES”)
echo “$MESG “
exit 0
;;
”$LOG_PATH”)
echo "$MESG "
exit 0
;;
*)
echo -e “$VERT” “Toutes les variables sont configurées !!”; tput sgr0
;;
esac
if [ -d /home/$UTILISATEUR/ ] # Vérification de la présence du dossier de l’utilisateur défini.
then
echo -e “$VERT” “$UTILISATEUR présent” ; tput sgr0
else
echo -e “$ROUGE” “Vous avez choisie un $UTILISATEUR inexistant pour l’installation d’e17.
Modifié la variable UTILISATEUR”; tput sgr0
exit 0
fi

if [ -d $SRC_E17 ] # Vérification de la présence du dossier pour les sources d’e17.
then
echo -e “$VERT” " Le dossier $SRC_E17 existe !!!" ; tput sgr0
else
echo -e “$ROUGE” “Vous avez choisie un dossier $SRC_E17 inexistant pour l’installation d’e17”; tput sgr0
echo -e “$VERT” “Je vais donc créer le dossier $SRC_E17”; tput sgr0
mkdir -p $SRC_E17
fi

if [ -d $SRC_MODULES ] # Vérification de la présence du dossier pour les sources des e_modules.
then
echo -e “$VERT” " Le dossier $SRC_MODULES existe !!!" ; tput sgr0
else
echo -e “$ROUGE” “Vous avez choisie un dossier $SRC_MODULES inexistant pour l’installation d’e17”; tput sgr0
echo -e “$VERT” “Je vais donc créer le dossier $SRC_MODULES”; tput sgr0
mkdir -p $SRC_MODULES
fi

if [ -d $SRC_PROTO ] # Vérification de la présence du dossier pour les sources des e_modules.
then
echo -e “$VERT” " Le dossier $SRC_PROTO existe !!!" ; tput sgr0
else
echo -e “$ROUGE” “Vous avez choisie un dossier $SRC_PROTO inexistant pour l’installation d’e17”; tput sgr0
echo -e “$VERT” “Je vais donc créer le dossier $SRC_PROTO”; tput sgr0
mkdir -p $SRC_PROTO
fi

if [ -d $LOG_PATH ] # Vérification de la présence du dossier pour les log.
then
echo -e “$VERT” " Le dossier $LOG_PATH existe !!!" ; tput sgr0
else
echo -e “$ROUGE” “Vous avez choisie un dossier $LOG_PATH inexistant pour l’installation d’e17”; tput sgr0
echo -e “$VERT” “Je vais donc créer le dossier $LOG_PATH”; tput sgr0
mkdir -p $LOG_PATH
fi

if [ -d $SAUVEGARDES ] # Vérification de la présence du dossier pour la sauvegarde.
then
echo -e “$VERT” " Le dossier $SAUVEGARDES existe !!!" ; tput sgr0
else
echo -e “$ROUGE” “Vous avez choisie un dossier $SAUVEGARDES inexistant pour l’installation d’e17”; tput sgr0
echo -e “$VERT” “Je vais donc créer le dossier $SAUVEGARDES”; tput sgr0
mkdir -p $SAUVEGARDES
fi

if grep -q “$GREP_ALIAS” /root/.bashrc # Vérification de la présence de la ligne alias e17 dans /root/.bashrc.
then
echo -e “$VERT” “Alias présent”; tput sgr0
else
echo -e “$VERT” "Création de l’alias e17 dans /root/.bashrc"
echo -e “alias e17=’/home/$UTILISATEUR/e17.sh 2>&1 | tee /var/log/e17/$LOG_DATE.log’” >> /root/.bashrc; tput sgr0
fi

if [ -e /etc/ld.so.conf.d/e17.conf ] # Vérification de la présence du fichier pour ldconfig.
then
echo -e “$VERT” “Le fichier /etc/ld.so.conf.d/e17.conf existe”; tput sgr0
else
echo -e “$VERT” “Le fichier e17.conf n’existe pas donc je le crée”; tput sgr0
echo “/usr/local/lib” >> /etc/ld.so.conf.d/e17.conf
fi

if [ “$(grep /usr/local/lib /etc/ld.so.conf.d/e17.conf | wc -l)” = 0 ] # Vérification de la présence de la ligne /usr/local/lib pour ldconfig.
then
echo “/usr/local/lib” >> /etc/ld.so.conf.d/e17.conf
else
echo -e “$VERT” "/usr/local/lib présent dans /etc/ld.so.conf.d/e17.conf "; tput sgr0

fi
/sbin/ldconfig
########################## Fin de la vérification des différentes variables.##################
########################## Quel cpu pour quel profil ?####################################
case “$CPU” in
1 ) E_PC=“SLOW_PC” ;;
2 ) E_PC=“MEDIUM_PC” ;;
* ) E_PC=“FAST_PC” ;;
esac
################################# Détection de l’exécution d’e17.#################################
if [ “$(ps -e | grep enlightenment | wc -l)” -ge 1 ]
then
echo -e “$ROUGE” "E17 est en cours d’exécution"
echo "E17 et le serveur X vont être arrêtés "
echo "Vous allez revenir à l’écran de votre gestionnaire de connexion"
echo "Veuillez ensuite utiliser la combinaison des touches crt+alt+F1 pour aller dans une console"
echo “Veuillez ensuite relancer le script en tapant e17”; tput sgr0
echo -n -e "Voulez-vous continuer l’exécution du ‘script’ ?
taper oui pour l’exécuter ou non pour l’arrêter: "
read script

if [ “$script” == “oui” ]
then
echo -e “$ROUGE” "- 1"
sleep 1
echo "-- 2"
sleep 1
echo "— 3"
sleep 1
echo "---- 4"
sleep 1
echo "----- 5"
sleep 1
echo "------ 6"
sleep 1
echo "------- 7"
sleep 1
echo "-------- 8"
sleep 1
echo "--------- 9"
sleep 1
echo "---------- 10"
sleep 1

killall -9 enlightenment
/etc/init.d/x11-common stop
else
echo -e “Exécution du script arrêté”; tput sgr0
exit 0
fi
fi
if [ “$(ps -e | grep enlightenment | wc -l)” == 0 ]
then
echo -e “$VERT” “e17 n’est pas en cours d’exécution, vous pouvez lancer le script”; tput sgr0
fi

################################# Menu du script.################################################
PS3='Que voulez-vous faire pour e17 ? ’

echo

choix_entre()
{
select action
do
echo
echo "Votre action : $action."
echo
break
done
}

choix_entre installer “mettre à jour” ré-installer dés-installer e17 restaurer annuler
if [ “$action” == “installer” ] # Choix d’installer.
then
echo -e “$VERT” “J’ai choisi le script d’installation d’e17”; tput sgr0
fi
if [ “$action” == “mettre à jour” ] # Choix de mettre à jour.
then
echo -e “$VERT” “J’ai choisi le script de mise à jour d’e17”; tput sgr0
fi
if [ “$action” == “ré-installer” ] # Choix de ré-installer.
then
echo -e “$VERT” “J’ai choisi le script de re-installation d’e17”; tput sgr0
fi
if [ “$action” == “dés-installer” ] # Choix de dés-installer.
then
echo -e “$VERT” “J’ai choisi le script de dés-installation d’e17”; tput sgr0
fi
if [ “$action” == “e17” ] # Choix d’installer que les librairies.
then
echo -e “$VERT” “J’ai choisi le script e17”; tput sgr0
fi
if [ “$action” == “restaurer” ] # Choix de restaurer e17 suite à une mise à jours qui fonctionne pas ou mal.
then
echo -e “$VERT” “J’ai choisi le script de restauration à la version antérieure d’e17”; tput sgr0
fi
if [ “$action” == “annuler” ] # Choix d’annuler.
then
echo -e “$ROUGE” “J’ai choisi d’annuler”; tput sgr0
exit 0
fi
################################# Fin du menu du script.#################################
################################## Action entreprises pour l’installation.#################
if [ “$action” == “installer” ] # Apt et dossiers pour le svn d’e17.
then
apt-get update

Installation des paquets pour la compilation suivant la version de debian.

echo -e “$VERT” “Votre version de debian est $V_DEBIAN” ; tput sgr0
case “$V_DEBIAN” in
sid) apt-get --no-install-recommends install -y $APT
echo -e “$VERT” “Installation des dépendances pour $V_DEBIAN” ;;
* ) apt-get --no-install-recommends install -y $APT_STABLE
echo -e “$VERT” “Installation des dépendances pour stable” ;;
esac
case “$FMAKE” in
/usr/bin/make ) echo -e “$VERT” “make présent”; tput sgr0 ;;
* ) apt-get install make ;;
esac
apt-get clean

Téléchargement du svn.

cd $SRC_E17
for I in $E17 ; do
echo -e “$BLEU” " Téléchargement du svn pour la librairie $I"
svn co https://svn.enlightenment.org/svn/e/trunk/$I; tput sgr0
done
cd …

cd $SRC_EXTRA
for I in $EXTRA ; do
echo -e “$BLEU” " Téléchargement du svn pour la librairie $I"
svn co https://svn.enlightenment.org/svn/e/trunk/$I; tput sgr0
done
cd …

cd $SRC_PROTO
for I in $PROTO ; do
echo -e “$BLEU” " Téléchargement du svn pour la librairie $I"
svn co https://svn.enlightenment.org/svn/e/trunk/PROTO/$I; tput sgr0
done
cd …

cd $SRC_MODULES
for I in $MODULES ; do
echo -e “$BLEU” " Téléchargement du svn pour le e_modules $I"
svn co https://svn.enlightenment.org/svn/e/trunk/E-MODULES-EXTRA/$I; tput sgr0
done
cd …
fi

################################## Fin des actions entreprises pour l’installation.#################
################################## Actions entreprises pour la mise à jouret la la restauration.#################
if [ “$action” == “mettre à jour” -o “$action” == “restaurer” ] # Choix de restaurer e17 suite à une mise à jours qui fonctionne pas ou mal.
then
if [ls $TEMP_E17 ]
then
rm -r $TEMP_E17
mkdir $TEMP_E17
echo " Dossier $TEMP_E17 crée"
fi
fi

if [ “$action” == “restaurer” ]
then
cd $TEMP_E17
for FILE in ls $SAUVEGARDES | tail -1 ; do nice -20 tar -jxvf $SAUVEGARDES/"${FILE%}"; done
nice -20 cp -rvp --remove-destination $TEMP_E17/* $U_PATH
nice -20 cp -rvp --remove-destination $TEMP_E17/e17/.e $U_PATH
sleep 10
rm -r $TEMP_E17
fi
################################## Fin des actions entreprises pour la restauration.#################
################################## Début de la compilation des librairies .#################
for I in $E17 ; do
pushd $SRC_E17/$I

if [ “$action” == “mettre à jour” ]
then
if [ svn --xml info | grep revision=\" | tail -1 | cut -d\" -f2 -lt svn --xml info https://svn.enlightenment.org/svn/e/trunk/$I | grep revision=\" | tail -1 | cut -d\" -f2 ]
then
echo “1” >> $TEMP_E17/svn_$I

 nice -20 cp -rvp $SRC_E17/$I $TEMP_E17/$I
    $SVN_UP

echo -e “$BLEU” "-------------------"
svn st
svn cleanup
echo " -------- up terminer--------- "; tput sgr0
else
echo -e “$BLEU” “svn $I à jours, rien à compiler"
echo " -------- up terminé----------------” ; tput sgr0
fi
fi
if [ “$action” == “ré-installer” -o -f $TEMP_E17/svn_$I -o “$action” == “dés-installer” -o “$action” == “restaurer” ]
then
echo -e “$ORANGE” " ---------Début de la dés-installation de la librairie $I --------- "
nice -20 $MAKE_CMD uninstall
nice -20 $MAKE_CMD clean distclean && /sbin/ldconfig
echo " ---------Dés-installation de la librairie $I términée --------- "; tput sgr0
fi

if [ “$action” == “installer” -o “$action” == “ré-installer” -o -f $TEMP_E17/svn_$I -o “$action” == “e17” -o “$action” == “restaurer” ]
then
echo -e “$JAUNE” " ---------Configuration de la librairie $I--------- "

case “$I” in # Configuration spécifique à certaine librairie
eina ) $CONFIGURE $CONFIGURE_EINA ;;
eet ) $CONFIGURE $CONFIGURE_EET ;;
evas ) $CONFIGURE $CONFIGURE_EVAS ;;
ecore ) $CONFIGURE $CONFIGURE_ECORE ;;
eio ) $CONFIGURE $CONFIGURE_EIO ;;
edje ) $CONFIGURE $CONFIGURE_EDJE ;;
e_dbus) $CONFIGURE $CONFIGURE_E_DBUS ;;
e ) $CONFIGURE $CONFIGURE_E --with-profile=$E_PC ;;

  • ) $CONFIGURE ;;
    esac
    echo " ---------Configuration de la librairie $I terminée--------- "; tput sgr0
    echo -e “$ROUGE” " ---------Compilation de la librairie $I--------- "

nice -20 $MAKE_CMD check
nice -20 $MAKE_CMD install && /sbin/ldconfig
rm -f $TEMP_E17/svn_$I
echo " ---------Compilation de la librairie $I términée--------- "; tput sgr0
fi
popd
done
################################## Fin de la compilation des librairies.#################
################################## Début de la compilation des autres librairies .#################
for I in $EXTRA ; do
pushd $SRC_E17/$I

if [ “$action” == “mettre à jour” ]
then
if [ svn --xml info | grep revision=\" | tail -1 | cut -d\" -f2 -lt svn --xml info https://svn.enlightenment.org/svn/e/trunk/$I | grep revision=\" | tail -1 | cut -d\" -f2 ]
then
echo “1” >> $TEMP_E17/svn_$I
nice -20 cp -rvp $SRC_E17/$I $TEMP_E17/$I
$SVN_UP
echo -e “$BLEU” "-------------------"
svn st
svn cleanup
echo " -------- up terminer--------- "; tput sgr0
else
echo -e “$BLEU” “svn $I à jours, rien à compiler"
echo " -------- up terminé----------------” ; tput sgr0
fi
fi
if [ “$action” == “ré-installer” -o -f $TEMP_E17/svn_$I -o “$action” == “dés-installer” -o “$action” == “restaurer” ]
then
echo -e “$ORANGE” " ---------Début de la dés-installation de la librairie $I --------- "
nice -20 $MAKE_CMD uninstall
nice -20 $MAKE_CMD clean distclean && /sbin/ldconfig
echo " ---------Dés-installation de la librairie $I términée --------- "; tput sgr0
fi

if [ “$action” == “installer” -o “$action” == “ré-installer” -o -f $TEMP_E17/svn_$I -o “$action” == “e17” -o “$action” == “restaurer” ]
then
echo -e “$JAUNE” " ---------Configuration de la librairie $I--------- "

$CONFIGURE

echo " ---------Configuration de la librairie $I terminée--------- "; tput sgr0
echo -e “$ROUGE” " ---------Compilation de la librairie $I--------- "

nice -20 $MAKE_CMD check
nice -20 $MAKE_CMD install && /sbin/ldconfig
rm -f $TEMP_E17/svn_$I
echo " ---------Compilation de la librairie $I términée--------- "; tput sgr0
fi
popd
done
################################## Fin de la compilation des autres librairies.#################

################################## Début de la compilation des librairies PROTO.#################
for I in $PROTO ; do
pushd $SRC_PROTO/$I

if [ “$action” == “mettre à jour” ]
then
if [ svn --xml info | grep revision=\" | tail -1 | cut -d\" -f2 -lt svn --xml info https://svn.enlightenment.org/svn/e/trunk/PROTO/$I | grep revision=\" | tail -1 | cut -d\" -f2 ]
then
echo “1” >> $TEMP_E17/svn_$I
nice -20 cp -rvp $SRC_E17/$I $TEMP_E17/$I
$SVN_UP
echo -e “$BLEU” "-------------------"
svn st
svn cleanup
echo " -------- up terminer--------- "; tput sgr0
else
echo -e “$BLEU” “svn $I à jours, rien à compiler"
echo " -------- up terminé----------------” ; tput sgr0
fi
fi
if [ “$action” == “ré-installer” -o -f $TEMP_E17/svn_$I -o “$action” == “dés-installer” -o “$action” == “restaurer” ]
then
echo -e “$ORANGE” " ---------Début de la dés-installation de la librairie $I --------- "
nice -20 $MAKE_CMD uninstall
nice -20 $MAKE_CMD clean distclean && /sbin/ldconfig
echo " ---------Dés-installation de la librairie $I términée --------- "; tput sgr0
fi

if [ “$action” == “installer” -o “$action” == “ré-installer” -o -f $TEMP_E17/svn_$I -o “$action” == “e17” -o “$action” == “restaurer” ]
then
echo -e “$JAUNE” " ---------Configuration de la librairie $I--------- "

$CONFIGURE

echo " ---------Configuration de la librairie $I terminée--------- "; tput sgr0
echo -e “$ROUGE” " ---------Compilation de la librairie $I--------- "

nice -20 $MAKE_CMD check
nice -20 $MAKE_CMD install && /sbin/ldconfig
rm -f $TEMP_E17/svn_$I
echo " ---------Compilation de la librairie $I términée--------- "; tput sgr0
fi
popd
done
################################## Fin de la compilation des librairies PROTO.#################
################################## Début de la compilation des e_modules.#################
for I in $MODULES ; do
pushd $SRC_MODULES/$I

if [ “$action” == “mettre à jour” ] # Choix de mettre à jour.
then
if [ svn --xml info | grep revision=\" | tail -1 | cut -d\" -f2 -lt svn --xml info https://svn.enlightenment.org/svn/e/trunk/E-MODULES-EXTRA/$I | grep revision=\" | tail -1 | cut -d\" -f2 ]
then
echo “1” >> $TEMP_E17/svn_$I
nice -20 cp -rvp $SRC_MODULES/$I $TEMP_E17/$I
$SVN_UP
echo -e “$BLEU” "-------------------"
svn st
svn cleanup
echo " -------- up terminer--------- "; tput sgr0
else
echo -e “$BLEU” “svn $I à jours, rien à compiler"
echo " -------- up terminé----------------” ; tput sgr0
fi
fi

if [ “$action” == “ré-installer” -o -f $TEMP_E17/svn_$I -o “$action” == “dés-installer” -o “$action” == “restaurer” ]
then
echo -e “$ORANGE” " ---------Début de la dés-installation du module $I --------- "
nice -20 $MAKE_CMD uninstall
nice -20 $MAKE_CMD clean distclean && /sbin/ldconfig
echo " ---------Dés-installation du module $I términée --------- "; tput sgr0
fi

if [ “$action” == “installer” -o “$action” == “ré-installer” -o -f $TEMP_E17/svn_$I -o “$action” == “e17” -o “$action” == “restaurer” ]
then
echo -e “$JAUNE” " ---------Configuration du module $I--------- "

  $CONFIGURE 

echo " ---------Configuration du module $I terminée--------- "; tput sgr0
echo -e “$ROUGE” " ---------Compilation du module $I--------- "
nice -20 $MAKE_CMD check
nice -20 $MAKE_CMD install && /sbin/ldconfig
rm -f $TEMP_E17/svn_$I
echo " ---------Compilation du module $I terminée--------- "; tput sgr0
fi
popd
done
################################## Fin de la compilation des e_modules.#################
################# Actions entreprises pour la sauvegarde.##############################################
if [ “$action” == “mettre à jour” ]
then
if [ ls $TEMP_E17 ]
then
nice -20 cp -rvp $U_PATH.e $TEMP_E17
cd /tmp
nice -20 tar -jcf $SAUVEGARDES/$repertoire.tar.bz2 e17
echo -e “$CYAN” “Répertoire sauvegardé dans un fichier archive “$SAUVEGARDES/$repertoire.tar.bz2”.”; tput sgr0
else
echo -e “$CYAN” “Pas de mise à jour, rien à sauvegarder”; tput sgr0
fi
fi
################################## Fin des actions entreprises pour la sauvegarde.#################
################################## Mise en place du fichier pour la connexion.##########
if [ “$action” == “installer” -o “$action” == “ré-installer” -o -f $TEMP_E17/svn_$I -o “$action” == “e17” -o “$action” == “restaurer” ]
then
if [ -e $X_SESSION/enlightenment.desktop ]
then
echo -e “$VERT” "enlightenment.desktop présent dans $X_SESSION"
rm -r /usr/share/xsessions/enlightenment.desktop
cp -rvp $E_SESSION/enlightenment.desktop $X_SESSION
echo "enlightenment.desktop remplacé"
else
cp -rvp $E_SESSION/enlightenment.desktop $X_SESSION
echo "enlightenment.desktop remplacé"
echo "e17 est fonctionnel, pour l’exécuter utilisez la combinaison des touches crt+alt+F7 pour revenir à votre gestionnaire d’affichage "
echo “Choisissez enlightenment dans son menu.”; tput sgr0
chown -R $UTILISATEUR:$UTILISATEUR $SRC_E17/ $SAUVEGARDES/ $TEMP_E17
find $LOG_PATH -type f -mtime +7 -exec rm -f {} ;
fi
fi
###################### Fin de la mise en place du fichier pour la connexion.##########
###################### Suppression complète d’e17.#####################################
if [ “$action” == “dés-installer” ]
then
echo -e “$ROUGE” "Vous allez dés-installer complètement e17.
Vous allez supprimer complètement les sources ainsi que le dossier $U_PATH.e de configuration.
Vous allez dés-installer aussi les paquets necessaire à la compilation."
echo -n "Êtes-vous d’“accord” ?"
echo “Taper oui pour les supprimer ou non pour les conserver”; tput sgr0
read accord
if [ “$accord” == “non” ]
then
echo -e “$ROUGE” “Dés-installation d’e17 arrêté”; tput sgr0
exit 0
else
cd $E_PATH/lib
rm -r $RM_LIB
cd $E_PATH/etc
rm -r $RM_ETC
cd $E_PATH/include
rm -r $RM_INC
cd $E_PATH/share
rm -r $RM_SHARE
cd $U_PATH
rm -r .cache/efreet Bureau
rm -rf /etc/ld.so.conf.d/e17.conf
rm -r $SRC_E17
rm -r $U_PATH.e
case “$V_DEBIAN” in
sid) apt-get remove --purge $APT ;;
* ) apt-get remove --purge $APT_STABLE ;;
esac

echo -n -e “$ROUGE” "Voulez-vous supprimer aussi les ‘sauvegardes’ d’e17 ?
taper oui pour les supprimer ou non pour les conserver: "
read sauvegardes
if [ “$sauvegardes” == “non” ]
then
echo “Sauvegardes d’e17 conservées dans votre dossiers $SAUVEGARDES”; tput sgr0
else
rm -r $SAUVEGARDES
echo -e “$VERT” "e17 est dés-installé, utilisez la combinaison des touches crt+alt+F7 pour revenir à votre gestionnaire d’affichage "
echo “Choisissez votre gestionnaire de fenêtre habituel dans son menu.”; tput sgr0
fi
fi
fi
################# Fin de la suppression complète d’e17.###################################
exit 0[/code]

Hey, enfin une bonne excuse pour tester e17 sur ma machine !
Ce script permet-il d’installer la dernière version d’e17 sur une Squeeze, ou celui-ci a-t-il des dépendances qui ne se trouvent qu’en Sid ?

Lu vv222,
en principe c’est bon mais on est jamais sur de rien :mrgreen:

en fait il y a un souci sur stable avec la commande :

dpkg-architecture 

je cherche une solution

Okay !
Je teste ça demain et je te répète ce que m’en dit ma Squeeze…

j’ai trouve une parade pour l’architecture pour stable, je bosse sur les dépendances de stable.

Voilà script mis à jour et fonctionnel aussi sur stable

Hmm…
Ça ne marche pas chez moi :

[code]legoth@Janus:/$ sudo sh ~/bin/e17.sh

-e Toutes les variables sont configurées !!

-e Vous avez choisie un dossier src/e17 inexistant pour l’installation d’e17
-e Je vais donc créer le dossier /home/legoth/src/e17
-e Vous avez choisie un dossier /src/e17/e_modules inexistant pour l’installation d’e17
-e Je vais donc créer le dossier /home/legoth/src/e17/src/e17/e_modules

-e Les dossiers existent, le script est prêt pour l’installation d’e17 !!
-e Alias présent
-e Le fichier /etc/ld.so.conf.d/e17.conf existe
-e /usr/local/lib présent dans /etc/ld.so.conf.d/e17.conf
[: 300: 0: unexpected operator

/home/legoth/bin/e17.sh: 310: Syntax error: “do” unexpected (expecting “}”)[/code]

copie/colle le début pour voir les variables de conf.
tu peut le lancer avec bash ?
car visiblement sh n’aime pas mon codage

cd ~/bin/ ./e17.sh

bonjour,

J’ai tenté d’utiliser ce script, merci du travail au passage!
J’ai un souci à la compilation de ‘evas’.
Voici la sortie de make:

---------Compilation de la librairie evas--------- Making check in src make[1]: entrant dans le répertoire « /home/<user>/E17/e17_src/evas/src » Making check in static_deps make[2]: entrant dans le répertoire « /home/<user>/E17/e17_src/evas/src/static_deps » Making check in liblinebreak make[3]: entrant dans le répertoire « /home/<user>/E17/e17_src/evas/src/static_deps/liblinebreak » CC linebreak.lo CC linebreakdata.lo CC linebreakdef.lo CC wordbreak.lo CCLD liblinebreak.la make[3]: quittant le répertoire « /home/<user>/E17/e17_src/evas/src/static_deps/liblinebreak » make[3]: entrant dans le répertoire « /home/<user>/E17/e17_src/evas/src/static_deps » make[3]: Rien à faire pour « check-am ». make[3]: quittant le répertoire « /home/<user>/E17/e17_src/evas/src/static_deps » make[2]: quittant le répertoire « /home/<user>/E17/e17_src/evas/src/static_deps » Making check in lib make[2]: entrant dans le répertoire « /home/<user>/E17/e17_src/evas/src/lib » Making check in canvas make[3]: entrant dans le répertoire « /home/<user>/E17/e17_src/evas/src/lib/canvas » CC common_interfaces.lo CC evas_callbacks.lo In file included from ../../../src/lib/Evas.h:325:0, from ../../../src/lib/include/evas_common.h:68, from evas_callbacks.c:1: /usr/include/eo/Eo.h:30:49: fatal error: stdexcept: No such file or directory compilation terminated. In file included from ../../../src/lib/Evas.h:325:0, from ../../../src/lib/include/evas_common.h:68, from common_interfaces.c:1: /usr/include/eo/Eo.h:30:49: fatal error: stdexcept: No such file or directory compilation terminated. make[3]: *** [evas_callbacks.lo] Erreur 1 make[3]: *** Attente des tâches non terminées.... make[3]: *** [common_interfaces.lo] Erreur 1 make[3]: quittant le répertoire « /home/<user>/E17/e17_src/evas/src/lib/canvas » make[2]: *** [check-recursive] Erreur 1 make[2]: quittant le répertoire « /home/<user>/E17/e17_src/evas/src/lib » make[1]: *** [check-recursive] Erreur 1 make[1]: quittant le répertoire « /home/<user>/E17/e17_src/evas/src » make: *** [check-recursive] Erreur 1
Eo.h est un lien symbolique de EO.h, ça peut y être pour quelque chose?
Je suis preneur d’une piste de dépannage, si quelqu’un avait une idée…

Merci.

lu
il te faut la lib trunk/PROTO/eobj qu’il faut compiler après eina et avant le reste
trac.enlightenment.org/e/browser … PROTO/eobj
je dois mettre à jour mon script pour cela

merci, je teste ça!


edit:

Bon, ça a l’air de marcher. Je fais part de ma bidouille, en attendant tes modifs:

dans la section “variables d’e17”, on a

J’ai rajouté “eobj”.
Puis j’ai remonté la section

################################## Début de la compilation des librairies PROTO.################# ... ... ################################## Fin de la compilation des librairies PROTO.#################

juste au dessus de

Comme ça les PROTO sont compilées avant. Ça marche pour eobj, mais peut-être que pour d’autres librairies PROTO il faut qu’elles soient compilées en dernier, auquel cas ma modif ne sera pas pérenne…