Translate

Wednesday, June 26, 2013

Installing/Upgrading E17 on Debian 7.0 (Stable) - Updated 07/18/2013

Hi everyone.

I just installed E17 on my Wheezy box at work, and it works very well.
Box specs we are interested in are:
* Debian version: Wheezy (amd64)
* Custom kernel: Linux optimus 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2+deb7u2 x86_64 GNU/Linux
* CPU: AMD Phenom(tm) II X2 B55 Processor
* RAM: 8 GB
* Video: ATI RV730 PRO [Radeon HD 4650]

All you have to do is to read the documentation on E17's official page. It also includes commands for installing E17 on Ubuntu 12.04. Well, to make things easier, I just adapted the procedures and made a very simple script, following the instructions.

This is the upgraded and improved version of the script.
I used it to install E17 on my home computer and to upgrade E17 on my laptop computer.
Box specs we are interested in are:
* Debian version: Wheezy (amd64)
* Custom kernel: Linux blackstar 3.8.6-blackstar-x6 #2 SMP PREEMPT x86_64 GNU/Linux
* CPU: AMD Phenom(tm) II X6 1090T Processor
* RAM: 16 GB
* Video: NVIDIA Corporation GF114 [GeForce GTX 560]

I hope it helps.


Warning: as this will modify your box, use it at your own risk!

#!/bin/bash
#
# This script will install E17 on a computer
# 
# You can use it to upgrade E17 whenever a new version comes out.
# (I used it from 0.17.0 to 0.17.3 without problems)
#
# For every successful build/install it creates a file_OK 
# and a file_ERROR is created for every failure.
#
#
#
# All info and credits: http://www.enlightenment.org/p.php?p=about/e17&l=en
#
# Gabriel Marques - snortt@gmail.com
#

# VERSION - Change whenever you want to upgrade E17 and its EFL
LIBS_VERSION="1.7.7"
E17_VERSION="0.17.3"
CONNMAN_VER="1.16"

# Where to get it 
E17_PKG_HOST="http://download.enlightenment.org/releases"
CONNMAN_SRC_URL="http://www.kernel.org/pub/linux/network/connman"

# Which format to get
LIBS_FILE_EXT="tar.gz"
E17_SRC_FILE_EXT="tar.gz"
CONNMAN_SRC_FILE_EXT="tar.gz"

# What to get 
E17_LIBS="eina eet evas embryo ecore eio edje efreet e_dbus evas_generic_loaders ethumb eeze emotion elementary"
E17_SRC_FILE="enlightenment-${E17_VERSION}.${E17_SRC_FILE_EXT}"
CONNMAN_SRC_FILE="connman-${CONNMAN_VER}.${CONNMAN_SRC_FILE_EXT}"

# ----------------------------------------
# You don't need to change anything ahead
# ----------------------------------------------------------------------------
SYS_DEPS="gcc doxygen libc6-dev make gdb wget libpam0g-dev libfreetype6-dev libpng-dev 
libjpeg-dev zlib1g-dev libdbus-1-dev libtiff-dev librsvg2-dev libgif-dev 
libcurl4-openssl-dev libasound2-dev libudev-dev libspectre-dev libpoppler-dev 
libraw-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libfribidi-dev 
libexif-dev liblua5.1-0-dev libx11-dev libxcursor-dev libxrender-dev libxrandr-dev 
libxfixes-dev libxdamage-dev libxcomposite-dev libxss-dev libxp-dev libxext-dev 
libxinerama-dev libxkbfile-dev libxtst-dev libxcb-shape0-dev libxcb-keysyms1-dev 
mesa-common-dev iptables-dev zlib1g-dev libfreetype6-dev fontconfig libfribidi-dev 
libpng12-dev  libpng++-dev libpnglite-dev libgif-dev libgiftiio-dev librsvg2-dev  
libx11-dev libxext-dev libxrender-dev libxcomposite-dev libxdamage-dev 
libxfixes-dev libxrandr-dev libxinerama-dev libxss-dev libxp-dev 
libxpm-dev libxcb-dpms0-dev libxext-dev libxcb-xtest0-dev 
libxdo-dev libxcursor-dev x11proto-print-dev libxp-dev libxkbfile-dev libxcb1-dev 
libxcb-composite0-dev libxcb-glx0-dev libxcb-render0-dev libxcb-screensaver0-dev 
libxcb-sync0-dev libxcb-xinerama0-dev libxcb-xprint0-dev libxcb-util0-dev 
libxcb-image0-dev libxcb-render-util0-dev libxcb-keysyms1-dev libxcb-shape0-dev 
libudev-dev  libdbus-1-dev libasound2-dev libpoppler-dev libraw-dev libspectre-dev 
libgstreamer0.10-dev libxine2-dev libvlc-dev libvlccore-dev  liblua5.2-dev 
libwebp-dev libbulletml-dev libmount-dev libssl-dev libdbus-c++-dev 
libdbus-glib-1-dev libdbusmenu-glib-dev libpulse-dev libblkid libblkid1-dev"

OPENGL_DEPS="libgl1-mesa-dev"

SLEEP_TIME="2"

if [ "$(id -u)" -ne "0" ]; then
    echo -e "You need to be root"
    exit 201
fi

echo -e "Updating system packages lists..."
apt-get update && apt-get dist-upgrade

echo -e "Installing system packages..."
apt-get install ${SYS_DEPS}

echo -e "Installing OpenGL packages..."
apt-get install ${OPENGL_DEPS}

echo -e " "
echo -e "Getting EFL"
for lib in ${E17_LIBS}
do
  if [ -f ${lib}-${LIBS_VERSION}.${LIBS_FILE_EXT} ]; then
    echo -e "File already exists: ${lib}-${LIBS_VERSION}.${LIBS_FILE_EXT}"
  else
    echo -e "Getting file: ${lib}-${LIBS_VERSION}.${LIBS_FILE_EXT}"
    touch ${lib}-${LIBS_VERSION}.${LIBS_FILE_EXT}_incomplete_download 
    wget ${E17_PKG_HOST}/${lib}-${LIBS_VERSION}.${LIBS_FILE_EXT} && \
      rm ${lib}-${LIBS_VERSION}.${LIBS_FILE_EXT}_incomplete_download 2> /dev/null 
  fi
done

echo -e " "
echo -e "Getting E17..."
if [ -f ${E17_SRC_FILE} ]; then
  echo -e "File already exists: ${E17_SRC_FILE}"
else
  echo -e "Getting file: ${E17_SRC_FILE}"
  touch ${E17_SRC_FILE}_incomplete_download 
  wget ${E17_PKG_HOST}/${E17_SRC_FILE} && \ 
    rm ${E17_SRC_FILE}_incomplete_download 2> /dev/null 
fi

# Now it's time to compile everything
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export CFLAGS="-O3 -fvisibility=hidden -ffast-math"

echo -e " "
echo -e "Building EFL..."
for lib in ${E17_LIBS}
do
  if [ "$lib" == "evas_generic_loaders" ]; then
    configure_opts="--disable-gnutls --disable-poppler"
  else
    configure_opts="--disable-gnutls"
  fi 

  # See if its already built/installed
  if [ -f ${lib}-${LIBS_VERSION}_OK ]; then
    echo -e "*** ${lib}-${LIBS_VERSION} is already built/installed ***"
    echo -e "\tRemove ${lib}-${LIBS_VERSION}_OK before rebuilding/reinstalling"
    echo -e "\tContinuing in $SLEEP_TIME seconds..."; sleep $SLEEP_TIME
    echo -e " "
  else
    tar zxf ${lib}-${LIBS_VERSION}.${LIBS_FILE_EXT}
    cd ${lib}-${LIBS_VERSION}
    ./configure ${configure_opts} && make && sudo make install && cd .. && \
      rm -rf ${lib}-${LIBS_VERSION} && touch ${lib}-${LIBS_VERSION}_OK || \
      touch ${lib}-${LIBS_VERSION}_ERROR

    # See if it worked or stop!
    if [ -f ${lib}-${LIBS_VERSION}_ERROR} ]; then
      exit
    fi 
  fi 
done

echo -e " "
echo -e "Configuring libraries dependencies..."
ldconfig

echo -e " "
echo -e "Building E17..."
if [ -f ${E17_SRC_FILE%.*.*}_OK ]; then
  echo -e "*** ${E17_SRC_FILE%.*.*} is already built/installed ***"
  echo -e "\tRemove ${E17_SRC_FILE%.*.*}_OK before rebuilding/reinstalling"
  echo -e "\tContinuing in $SLEEP_TIME seconds..."; sleep $SLEEP_TIME
  echo -e " "
else
  tar zxf ${E17_SRC_FILE}
  cd ${E17_SRC_FILE%.*.*}
  ./configure && make && sudo make install && cd .. && \
    rm -rf ${E17_SRC_FILE%.*.*} && touch ${E17_SRC_FILE%.*.*}_OK || \
    touch ${E17_SRC_FILE%.*.*}_ERROR

  # See if it worked or stop!
  if [ -f ${E17_SRC_FILE%.*.*}_ERROR ]; then
    exit
  fi 

  echo -e " "  
  echo -e "Inserting E17 on xsessions list..."
  if [ -f /usr/share/xsessions/enlightenment.desktop ]; then
    echo -e "Already there"
  else
    echo -e "Enlightenment is now on xsessions list"
    ln -s /usr/local/share/xsessions/enlightenment.desktop /usr/share/xsessions/enlightenment.desktop
  fi
fi 

echo -e " "
echo -e "Getting ConnMan..."
if [ -f ${CONNMAN_SRC_FILE} ]; then
  echo -e "File ${CONNMAN_SRC_FILE} already exists"
else
  echo -e "Getting file ${CONNMAN_SRC_FILE}" 
  touch ${CONNMAN_SRC_FILE}_incomplete_download 
  wget ${CONNMAN_SRC_URL}/${CONNMAN_SRC_FILE} && \
    rm ${CONNMAN_SRC_FILE}_incomplete_download 2> /dev/null 
fi 

echo -e " "
echo -e "Building ConnMan..."
if [ -f ${CONNMAN_SRC_FILE%.*.*}_OK ]; then
  echo -e "*** ${CONNMAN_SRC_FILE%.*.*} is already built/installed ***"
  echo -e "\tRemove ${CONNMAN_SRC_FILE%.*.*}_OK before rebuilding/reinstalling"
  echo -e "\tContinuing in $SLEEP_TIME seconds..."; sleep $SLEEP_TIME
  echo -e " "
else
  tar zxf ${CONNMAN_SRC_FILE}
  cd ${CONNMAN_SRC_FILE%.*.*}
  ./configure && make && sudo make install && cd .. && \
    rm -rf ${CONNMAN_SRC_FILE%.*.*} && touch ${CONNMAN_SRC_FILE%.*.*}_OK || \
    touch ${CONNMAN_SRC_FILE%.*.*}_ERROR

  # See if it worked or stop!
  if [ -f ${CONNMAN_SRC_FILE%.*.*}_ERROR ]; then
    exit
  fi 

  echo -e "Trying connman..."
  service network-manager stop
  /usr/local/sbin/connmand &

  echo -e "Adding ConnMan to system startup..."
  if grep '/usr/local/sbin/connmand' /etc/rc.local > /dev/null 2>&1; then
    echo -e "Already there"
  else
    echo -e "Adding ConnMan to /etc/rc.local"
    sed 's:exit 0:(sleep 9;/usr/local/sbin/connmand) \&\nexit 0:g' /etc/rc.local > /tmp/temp.$$
    cp /tmp/temp.$$ /etc/rc.local && rm /tmp/temp.$$
  fi
  
  echo -e "Disabling Network Manager"
  update-rc.d network-manager disable
fi 

echo -e "Have Fun! ;-)"

This is what you should get at the end of the process.



2 comments:

  1. Enlightenment is not only one desktop environment for Linux, but it has an entirely libraries to assist you to produce gorgeous end user interfaces together with a lesser amount of computer resource as compared to doing it the particular traditional way, it also helping together with classic toolkits, not forgetting an old-fashioned window manager.

    http://namhuy.net/1085/install-gui-on-debian-7-wheezy.html

    $ wget -c www.debe17.com/debian/debe17-svn_1.1.1-0_all.deb

    # dpkg -i debe17-svn_1.1.1-0_all.deb

    ReplyDelete