Page 3 of 98 FirstFirst 123451353 ... LastLast
Results 21 to 30 of 975

Thread: HOWTO: installation of E17 from CVS (UPDATED)

  1. #21
    Join Date
    Oct 2005
    Location
    Portland, Oregon USA
    Beans
    4,022

    Red face Re: HOWTO: installation of E17 from CVS (UPDATED)

    here's what I get, trying again on Xubuntu:

    Code:
    - imlib2 ..................... ok          
    - edb ........................ ok          
    - eet ........................ ok          
    - evas ....................... ok          
    - ecore ...................... ok          
    - efreet ..................... ok          
    - epeg ....................... ok          
    - embryo ..................... ok          
    - edje ....................... ok          
    - epsilon .................... ok          
    - esmart ..................... ok          
    - emotion .................... ok          
    - engrave .................... ok          
    - etk ........................ ok          
    - etk_extra .................. ok          
    - evolve ..................... ERROR!      
    --------------------------------------------------------------------------------
    
    ----------------------------------- Last loglines ------------------------------
    mkdir .libs
     gcc -DHAVE_CONFIG_H -I. -I. -I../../src -I/opt/e17/include -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include -I/opt/e17/include -Wall -MT libevolve_la-evolve_lib.lo -MD -MP -MF .deps/libevolve_la-evolve_lib.Tpo -c evolve_lib.c  -fPIC -DPIC -o .libs/libevolve_la-evolve_lib.o
    evolve_lib.c: In function 'evolve_init':
    evolve_lib.c:91: error: 'Etk_Property_Value_Value' undeclared (first use in this function)
    evolve_lib.c:91: error: (Each undeclared identifier is reported only once
    evolve_lib.c:91: error: for each function it appears in.)
    evolve_lib.c:92: error: expected ';' before '___ett'
    evolve_lib.c:92: error: '___ett' undeclared (first use in this function)
    evolve_lib.c:93: error: expected ';' before '___ett'
    evolve_lib.c:94: error: expected ';' before '___ett'
    evolve_lib.c:95: error: expected ';' before '___ett'
    evolve_lib.c:96: error: expected ';' before '___ett'
    evolve_lib.c:97: error: expected ';' before '___ett'
    evolve_lib.c:98: error: expected ';' before '___ett'
    evolve_lib.c:99: error: expected ';' before '___ett'
     gcc -DHAVE_CONFIG_H -I. -I. -I../../src -I/opt/e17/include -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include -I/opt/e17/include -Wall -MT libevolve_la-evolve_constructor.lo -MD -MP -MF .deps/libevolve_la-evolve_constructor.Tpo -c evolve_constructor.c  -fPIC -DPIC -o .libs/libevolve_la-evolve_constructor.o
    make[3]: *** [libevolve_la-evolve_lib.lo] Error 1
    make[3]: *** Waiting for unfinished jobs....
     gcc -DHAVE_CONFIG_H -I. -I. -I../../src -I/opt/e17/include -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include -I/opt/e17/include -Wall -MT libevolve_la-evolve_constructor.lo -MD -MP -MF .deps/libevolve_la-evolve_constructor.Tpo -c evolve_constructor.c -o libevolve_la-evolve_constructor.o >/dev/null 2>&1
    make[3]: Leaving directory `/home/ravtux/e17_cvs/e17/libs/evolve/src/lib'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/ravtux/e17_cvs/e17/libs/evolve/src'
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/home/ravtux/e17_cvs/e17/libs/evolve/src'
    make: *** [all-recursive] Error 1
    --------------------------------------------------------------------------------
    
    -> Get more informations by checking the log file '/tmp/easy_e17/install_logs/evolve.log'!
    errors

    __________________

    Last edited by RAV TUX; October 14th, 2007 at 06:44 PM.

  2. #22
    Join Date
    Oct 2005
    Location
    Portland, Oregon USA
    Beans
    4,022

    Red face Re: HOWTO: installation of E17 from CVS (UPDATED)

    Quote Originally Posted by RAV TUX View Post
    here's what I get, trying again on Xubuntu:

    Code:
    - imlib2 ..................... ok          
    - edb ........................ ok          
    - eet ........................ ok          
    - evas ....................... ok          
    - ecore ...................... ok          
    - efreet ..................... ok          
    - epeg ....................... ok          
    - embryo ..................... ok          
    - edje ....................... ok          
    - epsilon .................... ok          
    - esmart ..................... ok          
    - emotion .................... ok          
    - engrave .................... ok          
    - etk ........................ ok          
    - etk_extra .................. ok          
    - evolve ..................... ERROR!      
    --------------------------------------------------------------------------------
    
    ----------------------------------- Last loglines ------------------------------
    mkdir .libs
     gcc -DHAVE_CONFIG_H -I. -I. -I../../src -I/opt/e17/include -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include -I/opt/e17/include -Wall -MT libevolve_la-evolve_lib.lo -MD -MP -MF .deps/libevolve_la-evolve_lib.Tpo -c evolve_lib.c  -fPIC -DPIC -o .libs/libevolve_la-evolve_lib.o
    evolve_lib.c: In function 'evolve_init':
    evolve_lib.c:91: error: 'Etk_Property_Value_Value' undeclared (first use in this function)
    evolve_lib.c:91: error: (Each undeclared identifier is reported only once
    evolve_lib.c:91: error: for each function it appears in.)
    evolve_lib.c:92: error: expected ';' before '___ett'
    evolve_lib.c:92: error: '___ett' undeclared (first use in this function)
    evolve_lib.c:93: error: expected ';' before '___ett'
    evolve_lib.c:94: error: expected ';' before '___ett'
    evolve_lib.c:95: error: expected ';' before '___ett'
    evolve_lib.c:96: error: expected ';' before '___ett'
    evolve_lib.c:97: error: expected ';' before '___ett'
    evolve_lib.c:98: error: expected ';' before '___ett'
    evolve_lib.c:99: error: expected ';' before '___ett'
     gcc -DHAVE_CONFIG_H -I. -I. -I../../src -I/opt/e17/include -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include -I/opt/e17/include -Wall -MT libevolve_la-evolve_constructor.lo -MD -MP -MF .deps/libevolve_la-evolve_constructor.Tpo -c evolve_constructor.c  -fPIC -DPIC -o .libs/libevolve_la-evolve_constructor.o
    make[3]: *** [libevolve_la-evolve_lib.lo] Error 1
    make[3]: *** Waiting for unfinished jobs....
     gcc -DHAVE_CONFIG_H -I. -I. -I../../src -I/opt/e17/include -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include -I/opt/e17/include -Wall -MT libevolve_la-evolve_constructor.lo -MD -MP -MF .deps/libevolve_la-evolve_constructor.Tpo -c evolve_constructor.c -o libevolve_la-evolve_constructor.o >/dev/null 2>&1
    make[3]: Leaving directory `/home/ravtux/e17_cvs/e17/libs/evolve/src/lib'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/ravtux/e17_cvs/e17/libs/evolve/src'
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/home/ravtux/e17_cvs/e17/libs/evolve/src'
    make: *** [all-recursive] Error 1
    --------------------------------------------------------------------------------
    
    -> Get more informations by checking the log file '/tmp/easy_e17/install_logs/evolve.log'!
    errors
    when trying to log into the enlightenment session I get this message:
    Code:
    No Exec line in the session file: enlightenment. Running the GNOME fail safe session instead.
    __________________

    Last edited by RAV TUX; October 14th, 2007 at 06:44 PM.

  3. #23
    Join Date
    Oct 2005
    Location
    Portland, Oregon USA
    Beans
    4,022

    Red face Re: HOWTO: installation of E17 from CVS (UPDATED)

    do I need to edit something here?
    Code:
    #!/usr/bin/env bash
    
    #############################################################################
    # This script is based on the very good prework from trickster.             #
    # It is a result of the work from the people from #e.de (irc.freenode.net). #
    # It will checkout the cvs and compile e17.                                 #
    #                                                                           #
    # License: BSD licence                                                      #
    # Get the latest version at http://omicron.homeip.net/projects/#easy_e17.sh #
    # Rewrite by morlenxus (morlenxus@gmx.net)                                  #
    #                                                                           #
    last_changes="2007-08-09"                                                   #
    version="1.1.4"                                                             #
    #############################################################################
    
    
    # Edit these variables if you like:
    install_path="/opt/e17"
    cvs_path="$HOME/e17_cvs"
    tmp_path="/tmp/easy_e17"
    logs_path="$tmp_path/install_logs"
    cvs_srv=":pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e";
    conf_file="$HOME/.easy_e17.conf"
    
    efl="imlib2 edb eet evas ecore efreet epeg embryo edje epsilon esmart emotion engrave etk etk_extra evolve ewl exml enhance e_dbus"
    apps="e entrance eclair evfs edje_viewer edje_editor elicit elitaire emphasis empower engycad entrance_edit_gui entropy ephoto estickies exhibit expedite extrackt"
    apps_misc="engage enthrall rage scrot"
    e17_modules="alarm bling cpu deskshow emu flame forecasts language mail mem mixer moon net news photo rain screenshot slideshow snow taskbar tclock uptime weather winselector wlan"
    
    autogen_args=""        # evas:--enable-gl-x11
    linux_distri=""        # if your distribution is wrongly detected, define it here
    max_backoff=360        # Actual maximum backoff time is roughly this number in seconds.
    nice_level=0        # nice level (19 == low, -20 == high)
    os=$(uname)            # operating system
    threads=2            # make -j <threads>
    
    # URL of latest stable release
    online_source="http://omicron.homeip.net/projects/easy_e17/easy_e17.sh"
    
    
    #############################################################################
    function logo ()
    {
        clear
        echo -e "\033[1m-------------------------------\033[7m Easy_e17.sh $version \033[0m\033[1m------------------------------\033[0m"
        echo -e "\033[1m  Developers:\033[0m      Brian 'morlenxus' Miculcy"
        echo -e "                   David 'onefang' Seikel"
        echo -e "\033[1m  Contributors:\033[0m    Tim 'wtfoo' Zebulla"
        echo -e "                   Daniel G. '_ke' Siegel"
        echo -e "                   Stefan 'slax' Langner"
        echo -e "                   Massimiliano 'Massi' Calamelli"
        echo -e "                   Thomas 'thomasg' Gstaedtner"
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo -e "\033[1m  Updates:\033[0m         http://omicron.homeip.net/projects/#easy_e17.sh"
        echo -e "\033[1m  Support:\033[0m         #e.de, #get-e (irc.freenode.net)"
        echo -e "                   morlenxus@gmx.net"
        echo -e "\033[1m  Patches:\033[0m         Generally accepted, please contact me!"
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo 
        echo
        echo -e "\033[1m-----------------------------\033[7m Current Configuration \033[0m\033[1m----------------------------\033[0m"
        echo "  Install path:    $install_path"
        echo "  CVS path:        $cvs_path"
        echo "  CVS server:      $cvs_srv"
        echo "  Logs path:       $logs_path"
        if [ "$linux_distri" ]; then
            echo "  OS:              $os (Distribution: $linux_distri)"
        else
            echo "  OS:              $os"
        fi
        echo
        echo "  Libraries:       $efl"
        echo "  Applications:    $apps"
        echo "  Miscellaneous:   $apps_misc"
        echo "  Modules:         $e17_modules"
        if [ "$skip" ]; then
            echo "  Skipping:        $skip"
        fi
        if [ "$only" ]; then
            echo "  Only:            $only"
        fi
        echo
        if [ "$fullcvs" ]; then
            echo "  Full cvs:        yes"
        fi    
        if [ "$skip_cvsupdate" ]; then
            echo "  Skip cvs update: yes"
        fi
        if [[ clean -eq 1 ]] ; then
            echo "  Run clean:       yes"
        fi
        if [[ clean -eq 2 ]] ; then
            echo "  Run distclean:   yes"
        fi
        if [[ clean -ge 3 ]] ; then
            echo "  Run uninstall:   yes"
        fi
        if [ "$skip_errors" ]; then
            echo "  Skip errors:     yes"
        fi
        if [ "$gen_docs" ]; then
            echo "  Generate docs:   yes"
        fi
        if [ "$easy_e17_post_script" ]; then
            echo "  Post install:    $easy_e17_post_script"
        fi
        if [ "$autogen_args" ]; then
            echo "  Autogen args:    $autogen_args"
        fi
        if [ "$wait" ]; then
            echo "  Wait on exit:    yes"
        fi        
        if [ "$keep" ]; then
            echo "  Keep tempdir:    yes"
        fi
        if [ "$accache" ]; then
            echo "  Use caches:      yes"
        fi
        if [ "$threads" -ne 2 ]; then
            echo "  Threads:         $threads"
        fi
        if [ "$nice_level" -ne 0 ]; then
            echo "  Nice level:      $nice_level"
        fi    
        if [ -z "$action" ]; then
            action="MISSING!"
        fi
        echo "  Script action:   $action"
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo
        
        if [ "$action" == "script" ]; then
            return
        fi    
    
        if [ $1 == 0 ]; then
            if [ "$2" ]; then
                echo -e "\033[1m-------------------------------\033[7m Bad script argument \033[0m\033[1m----------------------------\033[0m"
                echo -e "  \033[1m$2\033[0m"
            fi
        else
            echo -e "\033[1m--------------------------------\033[7m Build phase $1/3 \033[0m\033[1m-------------------------------\033[0m"
        fi
    
        if [ -z "$2" ]; then
            case $1 in
                0)
                    if [ "$os" == "not supported" ]; then
                        echo -e "\033[1m-------------------------------\033[7m Not supported OS \033[0m\033[1m------------------------------\033[0m"
                          echo "  Your operating system '$(uname)' is not supported by this script."
                        echo "  If possible please provide a patch."
                    else if [ -z "$fullhelp" ]; then
                        echo -e "\033[1m-----------------\033[7m Short help 'easy_e17.sh <ACTION> <OPTIONS...>' \033[0m\033[1m---------------\033[0m"
                        echo "  -i, --install    = action: compile and install ALL of e17"
                        echo "  -u, --update     = action: update your installed e17"
                        echo "      --help       = full help"
                    else
                        echo -e "\033[1m-----------------\033[7m Full help 'easy_e17.sh <ACTION> <OPTIONS...>' \033[0m\033[1m----------------\033[0m"
                        echo -e "  \033[1mACTION (ONLY ONE SELECTION POSSIBLE):\033[0m"
                        echo "  -i, --install                       = action: compile and install ALL of e17"
                        echo "  -u, --update                        = action: update your installed e17"
                        echo "  -c, --clean                         = action: clean the sources"
                        echo "                                        (more --cleans means more cleaning, up"
                        echo "                                        to a maximum of three, which will"
                        echo "                                        uninstall e17."
                        echo "                                        If used with one of the other actions,"
                        echo "                                        this will clean first.)"
                        echo "      --only=<name1>,<name2>,...      = action: checkout and compile ONLY the"
                        echo "                                        named libs/apps"
                        echo "      --cvsupdate                     = update only the cvs tree"
                        echo "  -v, --check-script-version          = check for a newer release of easy_e17"
                        echo "      --help                          = this help"
                        echo
                        echo -e "  \033[1mOPTIONS:\033[0m"
                        echo "      --conf=<file>                   = use an alternate configuration file"
                        echo "      --instpath=<path>               = change the default install path"
                        echo "      --cvspath=<path>                = change the default cvs path"
                        echo "      --cvssrv=<server>               = change the default cvs server"
                        echo "      --asuser                        = do everything as the user, not as root"
                        echo "      --fullcvs                       = checkout optional cvs repositories:"
                        echo "                                        - devs"
                        echo "                                        - web"
                        echo "  -s, --skip-cvsupdate                = no update for your local cvs copy"
                        echo "  -f, --fix-cvs-conflicts             = deletes conflicting cvs files"
                        echo "      --skip=<name1>,<name2>,...      = this will skip installing the named"
                        echo "                                        libs/apps"
                        echo "  -d, --docs                          = generate programmers documentation"
                        echo "      --postscript=<name>             = full path to a script to run as root"
                        echo "                                        after installation"
                        echo "  -e, --skip-errors                   = continue compiling even if there is"
                        echo "                                        an error"
                        echo "  -w, --wait                          = don't exit the script after finishing,"
                        echo "                                        this allows 'xterm -e ./easy_e17.sh -i'"
                        echo "                                        without closing the xterm"
                        echo "  -k, --keep                          = don't delete the temporary dir"
                        echo
                        echo "  -l, --low                           = use lowest nice level (19, slowest,"
                        echo "                                        takes more time to compile, select"
                        echo "                                        this if you need to work on the pc"
                        echo "                                        while compiling)"
                        echo "      --normal                        = default nice level ($nice_level),"
                        echo "                                        will be automatically used"
                        echo "  -h, --high                          = use highest nice level (-20, fastest,"
                        echo "                                        slows down the pc)"
                        echo "      --cache                         = Use a common configure cache and"
                        echo "                                        ccache if available"
                        echo "      --threads=<int>                 = make can use threads, recommended on smp"
                        echo "                                        systems (default: 2 threads)"
                        echo
                        echo "      --efl=<name1>,<name2>,...       = compile libraries in this order"
                        echo "      --apps=<name1>,...              = compile e17 applications in this order"
                        echo "      --apps_misc=<name1>,...         = compile e17 misc in this order"
                        echo "      --e17_modules=<name1>,...       = compile e17 modules in this order"
                        echo "      --autogen_args=<n1>:<o1>+<o2>,. = pass some options to autogen:"
                        echo "                                        <name1>:<opt1>+<opt2>,<name2>:<opt1>+..."
                        echo "      --cflags=<flag1>,<flag2>,...    = pass cflags to the gcc"
                        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
                        echo
                        echo -e "\033[1m----------------------\033[7m Configurationfile '~/.easy_e17.conf' \033[0m\033[1m--------------------\033[0m"
                        echo "  Just create this file and save your favourite arguments."
                        echo "  Example: If you use a diffent cvs path, add this line:"
                        echo "           --cvspath=/home/brian.miculcy/enlightenment/e17_cvs"
                    fi fi
                    ;;
                1)
                    echo "- running some basic system checks"
                    echo "- pre cleaning"
                    echo "- cvs checkout/update"
                    ;;
                2)
                    echo "- lib-compilation and installation"
                    echo "- apps-compilation and installation"
                    ;;
                3)
                    echo "- cleaning"
                    echo "- install notes"
                    ;;
            esac
        fi
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo
        echo
    }
    
    function define_os_vars ()
    {
        case $os in
            SunOS)
                ldconfig="$(which crle) -u"    # there is no command like ldconfig on solaris! "crle" does nearly the same.
                make="make"
                export CFLAGS="$CFLAGS"
            ;;
            Linux)
                ldconfig="/sbin/ldconfig"
                make="make"
                export CFLAGS="$CFLAGS"
    
                if [ -z "$linux_distri" ]; then
                    if [ -e "/etc/debian_version" ];    then linux_distri="debian";    fi
                    if [ -e "/etc/gentoo-release" ];    then linux_distri="gentoo";    fi
                    if [ -e "/etc/redhat-release" ];    then linux_distri="redhat";    fi
                    if [ -e "/etc/SuSE-release" ];        then linux_distri="suse";    fi
                fi
            ;;
            FreeBSD)
                ldconfig="/sbin/ldconfig"
                make="gmake"
                export PATH=/usr/local/gnu-autotools/bin:$PATH
                export ACLOCAL_FLAGS=" -I /usr/local/share/aclocal"
                export CFLAGS="$CFLAGS -lintl -liconv -L/usr/local/lib -L/usr/X11R6/lib -I/usr/local/include -I/usr/X11R6/include"
                export CPPFLAGS="$CPPFLAGS -I/usr/local/include"
            ;;
            *)
                os="not supported"
                logo 0
                exit
                ;;
        esac
    }
    
    function find_path ()
    {
        basedir="$cvs_path/$1"
        name=$2
        path=""
        for dir in `find "$basedir" -type d -name "$name" | awk -F "$cvs_path/" '{print $2}' | egrep -v -i "/bin/|/cvs/|/data/|/docs/|/oe/|/src/|/test/"`; do
            if [ "${#dir}" -lt "${#path}" ] || [ -z "$path" ]; then
                path=$dir
            fi
        done
        echo "$cvs_path/$path"
    }
    
    function backoff_loop
    {
        cvscommand=$1
    
        backoff=$(( 4 + (RANDOM % 5) ))
        attempt=1;
    
        while [ 1 ]; do
            $cvscommand | tee -a "$tmp_path/cvs_update.log"
            if [ "${PIPESTATUS[0]}" -gt 0 ]; then
                if [ "$fix_cvs_conflicts" ]; then
                    for cfile in `egrep "^[C] " "$tmp_path/cvs_update.log" | cut -d' ' -f2`; do
                        echo "- fixing cvs conflict: $cfile"
                        if [ -e "$cfile" ]; then
                            rm "$cfile"
                        fi
                    done
                fi
    
                attempt=$(($attempt + 1))
                for (( i = $backoff / 2; i > 0; i-- )) do
                    set_title "Checkout FAILED! Next attempt $attempt in $i seconds"
                    echo -n -e "\rFAILED! Next attempt $attempt in \033[1m$i\033[0m seconds"
                    sleep 1
                done
                echo -n -e "\r                                                            \r"
                if [[ backoff -le max_backoff ]] ; then
                    backoff=$(( ($backoff * 2) + (RANDOM % 5) ))
                fi
            else
                break
            fi
        done
    }
    
    function get_cvs ()
    {
        repo=$1
    
        cd $cvs_path
        if [ -d "$repo" ]; then
            if [ -n "$only" ]; then
                set_title "Updating source of '$repo' ($pkg_pos/$pkg_total)"
                echo "- updating source of '`basename "$repo"`' (please wait, this won't output much) ..."
            else
                set_title "Updating source of repo '$repo'"
                echo "- updating source of repo '$repo' (please wait, this won't output much) ..."
            fi
            cd "$repo"
            backoff_loop "cvs -z3 -q update -dP" 
        else
            if [ -n "$only" ]; then
                set_title "Checkout source of '$repo' ($pkg_pos/$pkg_total)"
                echo "- checkout source of '`basename "$repo"`' ..."
            else
                set_title "Checkout source of repo '$repo'"
                echo "- checkout source of repo '$repo' ..."
            fi
            backoff_loop "cvs -z3 -q -d $cvs_srv co $repo"
        fi
        echo
    }
    
    function build_each ()
    {
        repo="$1"
        array=$2
        
        for name in $array
        do
            path=`find_path $repo $name`
            compile "$name" "$path"
        done
    }
    
    function run_command ()
    {
        name=$1
        path=$2
        title=$3
        log_title=$4
        mode_needed=$5
        cmd=$6
    
        set_title "$name: $title ($pkg_pos/$pkg_total)"
        echo -n "$log_title"
        logfile_banner "$cmd" "$logs_path/$name.log"
    
        if [ $mode_needed == "rootonly" ]; then
            mode_needed=$mode
        else
            if [ $nice_level -ge 0 ]; then
                mode_needed="user"
            fi
        fi
        rm -f $tmp_path/$name.noerrors
        case "$mode_needed" in
            "sudo")
                echo "$sudopwd" | sudo -S nice -n $nice_level $cmd >> "$logs_path/$name.log" 2>&1 && touch $tmp_path/$name.noerrors &
                ;;
            *)
                nice -n $nice_level $cmd >> "$logs_path/$name.log" 2>&1 && touch $tmp_path/$name.noerrors &
                ;;
        esac    
    
        pid="$!"
        rotate "$pid" "$name"
    }
    
    function compile ()
    {
        name=$1
        path=$2
        cnt=${#name}
        max=27
    
        touch "$logs_path/$name.log"
        rm $tmp_path/$name.noerrors 2>/dev/null
        echo -n "- $name "
        while [ ! $cnt = $max ]
        do
            echo -n "."
            cnt=`expr $cnt + 1`
        done
        echo -n " "
    
        for one in $skip
        do
            if [ "$name" == "$one" ]; then
                echo "SKIPPED"
                touch $tmp_path/$name.skipped
                return
            fi
        done
        if [ "$only" ] || [ "$action" == "update" ]; then
            found=""
            for one in $only
            do
                if [ "$name" == "$one" ]; then
                    found=1
                fi
            done
            if [ -z "$found" ]; then
                echo "SKIPPED"
                touch $tmp_path/$name.skipped
                return
            fi
        fi
    
        if [ ! -d "$path" ]; then
            echo "NOT FOUND"
            return
        fi
        cd "$path"
    
        touch "$logs_path/$name.log"
        pkg_pos=`expr $pkg_pos + 1`
    
        if [[ clean -ge 1 ]] ; then
            rm -f "$logs_path/$name.log"
            touch "$logs_path/$name.log"
            if [ ! -e "Makefile" ]; then
                echo "can't clean"
                return
            fi
            if [[ clean -eq 1 ]] ; then
                cmd="$make clean"
                logfile_banner "$cmd" "$logs_path/$name.log"
                $cmd >> "$logs_path/$name.log" 2>&1 && touch $tmp_path/$name.noerrors &
            fi
            if [[ clean -eq 2 ]] ; then
                echo -n "distclean:  "
                cmd="$make clean distclean"
                logfile_banner "$cmd" "$logs_path/$name.log"
                $cmd >> "$logs_path/$name.log" 2>&1 && touch $tmp_path/$name.noerrors &
            fi
            if [[ clean -ge 3 ]] ; then
                echo -n "uninstall:  "
                cmd="$make uninstall clean distclean"
                logfile_banner "$cmd" "$logs_path/$name.log"
                case "$mode" in
                "sudo")
                    echo "$sudopwd" | sudo -S nice -n $nice_level $cmd >> "$logs_path/$name.log" 2>&1 && touch $tmp_path/$name.noerrors &
                    ;;
                *)
                    nice -n $nice_level $cmd >> "$logs_path/$name.log" 2>&1 && touch $tmp_path/$name.noerrors &
                    ;;
                esac
                # It's no longer installed if we just uninstalled it.
                # Even if the uninstall failed, it's best to mark it as uninstalled so that a partial uninstall gets fixed later.
                rm -f $tmp_path/$name.installed
            fi
            pid="$!"
            rotate "$pid" "$name"
            rm -f $tmp_path/$name.noerrors
            echo "ok"
            return
        fi
    
        if [ -e "$tmp_path/$name.installed" ]; then
            echo "previously installed"
            return
        fi
    
        # get autogen arguments
        args=""
        for app_arg in `echo $autogen_args | tr -s '\,' ' '`
        do
            app=`echo $app_arg | cut -d':' -f1`
            if [ "$app" == "$name" ]; then
                args="$args `echo $app_arg | cut -d':' -f2- | tr -s '+' ' '`"
            fi
        done
        
        if [ -e "autogen.sh" ]; then
            run_command "$name" "$path" "autogen" "autogen:    " "$mode" "./autogen.sh --prefix=$install_path $accache $args"
            if [ ! -e "$tmp_path/$name.noerrors" ] ; then return ; fi
        else
            if [ -e "bootstrap" ]; then
                run_command "$name" "$path" "bootstrap" "bootstrap:  " "$mode" "./bootstrap"
                if [ ! -e "$tmp_path/$name.noerrors" ] ; then return ; fi
                run_command "$name" "$path" "configure" "configure:  " "$mode" "./configure --prefix=$install_path $accache $args"
                if [ ! -e "$tmp_path/$name.noerrors" ] ; then return ; fi
            else
                if [ -e "Makefile.PL" ]; then
                    run_command "$name" "$path" "perl" "perl make:  " "$mode" "perl Makefile.PL prefix=$install_path $args"
                    if [ ! -e "$tmp_path/$name.noerrors" ] ; then return ; fi
                else
                    echo "no build system"
                    touch $tmp_path/$name.nobuild
                    return
                fi
            fi
        fi
        
        run_command "$name" "$path" "make" "make   :    " "$mode" "$make -j $threads"
        if [ ! -e "$tmp_path/$name.noerrors" ] ; then return ; fi
    
        if [ "$gen_docs" ]; then
            if [ -e "gendoc" ]; then
                run_command "$name" "$path" "docs" "docs   :    " "$mode" "sh gendoc"
                if [ ! -e "$tmp_path/$name.noerrors" ] ; then return ; fi
            fi
        fi
                   
        run_command "$name" "$path" "install" "install:    " "rootonly" "$make install"
        if [ ! -e "$tmp_path/$name.noerrors" ] ; then return ; fi
    
        # All done, mark it as installed OK.
        touch $tmp_path/$name.installed
        rm -f $tmp_path/$name.noerrors
        echo "ok"
    }
    
    function rotate ()
    {
        pid=$1
        name=$2
        star=1
        log_line=""
        
        while [ "`ps -p $pid -o comm=`" ]
        do
            last_line=`tail -1 "$logs_path/$name.log"`
            if [ ! "$log_line" = "$last_line" ]; then
                echo -e -n "\b\b\b"
                case $star in
                    1)
                        echo -n "["
                        echo -n -e "\033[1m|\033[0m"
                        echo -n "]"
                        star=2
                    ;;
                    2)
                        echo -n "["
                        echo -n -e "\033[1m/\033[0m"
                        echo -n "]"
                        star=3
                    ;;
                    3)
                        echo -n "["
                        echo -n -e "\033[1m-\033[0m"
                        echo -n "]"
                        star=4
                    ;;
                    4)
                        echo -n "["
                        echo -n -e "\033[1m"
                        echo -n "\\"
                        echo -n -e "\033[0m"
                        echo -n "]"
                        star=1
                    ;;
                esac
                log_line=$last_line
            fi
            sleep 1
        done
    
        del_lines 12
        if [ ! -e "$tmp_path/$name.noerrors" ]; then
            echo -e "\033[1mERROR!\033[0m"
    
            if [ ! "$skip_errors" ]; then
                set_title "$name: ERROR"
                echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
                echo
                echo -e "\033[1m-----------------------------------\033[7m Last loglines \033[0m\033[1m------------------------------\033[0m"
                echo -n -e "\033[1m"
                tail -25 "$logs_path/$name.log"
                echo -n -e "\033[0m"
                echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
                echo
                echo "-> Get more informations by checking the log file '$logs_path/$name.log'!"
                echo
                exit
            fi
        fi
    }
    
    function del_lines ()
    {
        cnt=0
        max=$1
        while [ ! "$cnt" == "$max" ]
        do
            echo -n -e "\b \b"
            cnt=`expr $cnt + 1`
        done
    }
    
    function error ()
    {
        set_title "ERROR: $1"
        echo -e "\n\n\033[1mERROR: $1\033[0m\n\n"
        exit 2
    }
    
    function set_title ()
    {
        if [ "$1" ]; then
            message="- $1"
        fi    
    
        if [ "$DISPLAY" ]; then
            case "$TERM" in
                xterm*|rxvt*|Eterm|eterm|Aterm|aterm)
                    echo -ne "\033]0;Easy_e17.sh $message\007"
                    ;;
            esac
        fi    
    }
    
    function logfile_banner ()
    {
        cmd=$1
        logfile=$2
        echo "-------------------------------------------------------------------------------" >> "$logfile"
        echo "EASY_E17 CMD: $cmd"                        >> "$logfile"
        echo "-------------------------------------------------------------------------------" >> "$logfile"
    }
    
    function get_repo ()
    {
        if [ -n "$only" ]; then
            # single install
            for pkg in $only
            do
                for each in $efl
                do
                    if [ "$each" == "$pkg" ]; then
                        path=`find_path "e17/" "$pkg"`
                        get_cvs "$path"
                    fi
                done
    
                for each in $apps
                do
                    if [ "$each" == "$pkg" ]; then
                        path=`find_path "e17/" "$pkg"`
                        get_cvs "$path"
                    fi
                done
    
                for each in $apps_misc
                do
                    if [ "$each" == "$pkg" ]; then
                        path=`find_path "misc/" "$pkg"`
                        get_cvs "$path"
                    fi
                done
    
                for each in $e17_modules
                do
                    if [ "$each" == "$pkg" ]; then
                        path=`find_path "e_modules/" "$pkg"`
                        get_cvs "$path"
                    fi
                done
            done
        else
            # full install    
            get_cvs e17
            get_cvs misc
            get_cvs e_modules
            if [ "$fullcvs" ]; then
                get_cvs devs
                get_cvs web
            fi
        fi
    }
    
    function cnt_pkgs () {
        pkg_total=0
        pkg_pos=0
        
        if [ -n "$only" ]; then
            for each in $only
            do
                pkg_total=`expr $pkg_total + 1`
            done  
        else
            # Maybe some regexp which counts the spaces is faster?
            total_pkgs="$efl $apps $apps_misc $e17_modules"
            for each in $total_pkgs
            do
                pkg_total=`expr $pkg_total + 1`
            done
        fi
    } 
    
    function check_script_version ()
    {
        echo "- local version .............. $version"
        echo -n "- downloading script ......... " 
        remote_version=`wget $online_source  -q -U "easy_e17.sh/$version" -O - | grep -m 2 -o [0-9]\.[0-9]\.[0-9] | sort -n | head -n 1`
        echo "ok"
        echo "- remote version ............. $remote_version"    
        remote_ver=`echo "$remote_version" | tr -d '.'`
        local_ver=`echo "$version" | tr -d '.'`
        echo
        echo -n "- update available ........... "
        if [ $remote_ver -gt $local_ver ]; then
            echo -e "\033[1mYES!\033[0m"
        else
            echo "no"
        fi 
    }
    
    
    # SCRIPT: 
    
    EASY_PWD=`pwd`
    set_title 
    define_os_vars
    accache=""
    easy_options=""
    command_options=$@
    clean=0
    
    # Check for alternate conf file first.
    test_options=$command_options
    for arg in $test_options
    do
        option=`echo "'$arg'" | cut -d'=' -f1 | tr -d "'"`
        value=`echo "'$arg'" | cut -d'=' -f2- | tr -d "'"`
        if [ "$value" == "$option" ]; then
            value=""
        fi
        if [ "$option" == "--conf" ]; then
            conf_file=$value;
        fi 
    done
    
    if [ -e "$conf_file" ]; then
        # load configfile 
        for option in `cat "$conf_file"`
        do
            easy_options="$easy_options $option"
        done
    fi
    
    # append arguments
    easy_options="$easy_options $command_options" 
    
    # check options
    for arg in $easy_options
    do
        option=`echo "'$arg'" | cut -d'=' -f1 | tr -d "'"`
        value=`echo "'$arg'" | cut -d'=' -f2- | tr -d "'"`
        if [ "$value" == "$option" ]; then
            value=""
        fi
    
        # $action can't be set twice
        if [ "$action" ]; then 
            if [ "$option" == "-i" ] ||
               [ "$option" == "--install" ] ||
               [ "$option" == "-u" ] ||
               [ "$option" == "--update" ] ||
               [ "$option" == "--only" ] ||
               [ "$option" == "--cvsupdate" ] ||
               [ "$option" == "-v" ] ||
               [ "$option" == "--check-script-version" ]; then
                logo 0 "Only one action allowed! (currently using '--$action' and '$option')"
                exit
            fi
        fi
        
        case "$option" in
            "-i")                        action="install" ;;
            "--install")                action="install" ;;
            "-u")                        action="update" ;;
            "--update")                    action="update" ;;
            "-c")                        clean=$(( $clean + 1 ))    ;;
            "--clean")                    clean=$(( $clean + 1 ))    ;;
            "--conf")                    ;;
            "--only")
                if [ -z "$value" ]; then
                    logo 0 "Missing value for argument '$option'!"
                    exit
                fi
                action="only"
                only="`echo "$value" | tr -s '\,' '\ '` $only"
                ;;
            "-v")                        action="script" ;;
            "--check-script-version")    action="script" ;;
            "--cvsupdate")
                action="cvsupdate"
                skip="$efl $apps $apps_misc $e17_modules"
                ;;
            "--instpath")                install_path="$value" ;;
            "--cvspath")                cvs_path="$value" ;;
            "--cvssrv")
                cvs_srv="$value"
                export CVS_RSH="ssh"
                ;;
            "--asuser")                    asuser=1 ;;
            "-d")                        gen_docs=1 ;;
            "--docs")                    gen_docs=1 ;;
            "--postscript")                easy_e17_post_script="$value" ;;
            "--fullcvs")                fullcvs=1 ;;
            "-s")                        skip_cvsupdate=1 ;;
            "--skip-cvsupdate")            skip_cvsupdate=1 ;;
            "-f")                        fix_cvs_conflicts=1 ;;
            "--fix-cvs-conflicts")        fix_cvs_conflicts=1 ;;
            "--skip")
                if [ -z "$value" ]; then
                    logo 0 "Missing value for argument '$option'!"
                    exit
                fi
                skip="`echo "$value" | tr -s '\,' '\ '` $skip"
                ;;
            "-e")                        skip_errors=1 ;;
            "--skip-errors")            skip_errors=1 ;;        
            "-w")                        wait=1 ;;
            "--wait")                    wait=1 ;;
            "-k")                        keep=1 ;;
            "--keep")                    keep=1 ;;
    
            "-l")                         nice_level=19 ;;
            "--low")                     nice_level=19 ;;
            "--normal") ;;
            "-h")                         nice_level=-20 ;;
            "--high")                     nice_level=-20 ;;
            "--cache")
                accache=" --cache-file=$tmp_path/easy_e17.cache"
                ccache=`whereis ccache`
                if [ ! "$ccache" = "ccache:" ]; then
                    export CC="ccache gcc"
                fi
                ;;
            "--threads")
                if [ -z "$value" ] || ! expr "$value" : "[0-9]*$" >/dev/null || [ "$value" -lt 1 ]; then
                    logo 0 "Missing value for argument '$option'!"
                    exit
                fi
                threads=$value
                ;;
    
            "--efl")
                if [ -z "$value" ]; then
                    logo 0 "Missing value for argument '$option'!"
                    exit
                fi
                efl="`echo "$value" | tr -s '\,' '\ '`"
                ;;
            "--apps")
                if [ -z "$value" ]; then
                    logo 0 "Missing value for argument '$option'!"
                    exit
                fi
                apps="`echo "$value" | tr -s '\,' '\ '`"
                ;;
            "--apps_misc")
                if [ -z "$value" ]; then
                    logo 0 "Missing value for argument '$option'!"
                    exit
                fi
                apps_misc="`echo "$value" | tr -s '\,' '\ '`"
                ;;
            "--e17_modules")
                if [ -z "$value" ]; then
                    logo 0 "Missing value for argument '$option'!"
                    exit
                fi
                e17_modules="`echo "$value" | tr -s '\,' '\ '`"
                ;;
            "--autogen_args")    
                if [ -z "$value" ]; then
                    logo 0 "Missing value for argument '$option'!"
                    exit
                fi
                autogen_args="$value"
                ;;
            "--cflags")
                if [ -z "$value" ]; then
                    logo 0 "Missing value for argument '$option'!"
                    exit
                fi
                CFLAGS="$CFLAGS `echo "$value" | tr -s '\,' '\ '`"
                ;;
            "--help")
                fullhelp=1
                logo 0
                exit
                ;;
            *)
                logo 0 "Unknown argument '$option'!"
                exit
                ;;
        esac
    done
    
    
    # Sanity check stuff if doing everything as user.
    if [ "$asuser" ]; then
        if [ $nice_level -lt 0 ]; then
        nice_level=0
        fi
    fi
    
    # special case to allow uninstall
    if [ -z "$action" ] && [ "$clean" -ge 1 ]; then
        action="clean"
    fi
    
    # quit if some basic option is missing
    if [ -z "$action" ] || [ -z "$install_path" ] || [ -z "$cvs_path" ]; then
        logo 0
        exit
    fi
    
    # check for script updates
    if [ "$action" == "script" ]; then
        logo 0
        echo -e "\033[1m------------------------------\033[7m Check script version \033[0m\033[1m----------------------------\033[0m"
        check_script_version
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo
        exit 0
    fi
    
    
    # run script normally
    logo 1
    set_title "Basic system checks"
    echo -e "\033[1m-------------------------------\033[7m Basic system checks \033[0m\033[1m----------------------------\033[0m"
    echo -n "- cvs-dir .................... " 
    mkdir -p "$cvs_path" 2>/dev/null
    if [ ! -w "$cvs_path" ]; then
        error "The cvs-dir '$cvs_path' isn't writeable!"
    else
        echo "ok"
    fi
    touch "$HOME/.cvspass" 2>/dev/null
    
    echo -n "- creating script dirs ....... "
    mkdir -p "$tmp_path" 2>/dev/null
    chmod 700 "$tmp_path"
    mkdir -p "$logs_path" 2>/dev/null
    echo "ok"
    
    if [ ! "$action"  == "cvsupdate" ]; then
        echo -n "- build-user ................. "
        if [ ! "$LOGNAME" == "root" ]; then
            if [ "$asuser" ]; then
                echo "$LOGNAME (as user)"
                mode="user"
            else
                echo "$LOGNAME (non-root)"
                echo -n "- sudo available ............. "
                sudotest=`type sudo &>/dev/null ; echo $?`
                if [ "$sudotest" == 0 ]; then
                    sudo -K
                    if [ -e "$tmp_path/sudo.test" ]; then
                        rm -f "$tmp_path/sudo.test"
                    fi
                    while [ -z "$sudopwd" ]
                    do
                        echo -n "enter sudo-password: "
                        stty -echo
                        read sudopwd
                        stty echo
            
                        # password check
                        echo "$sudopwd" | sudo -S touch "$tmp_path/sudo.test" &>/dev/null
                        if [ ! -e "$tmp_path/sudo.test" ]; then
                            sudopwd=""
                        fi
                    done
                    echo 
                    mode="sudo"
                    rm -f "$tmp_path/sudo.test"
                    else
                    error "You're not root and sudo isn't available. Please run this script as root!"
                fi
            fi
        else
            echo "root"
            mode="root"
        fi
    
        echo -n "- adding path to env ......... " 
        export PATH="$install_path/bin:$PATH"
        export PKG_CONFIG_PATH="$install_path/lib/pkgconfig:$PKG_CONFIG_PATH"
        export LD_LIBRARY_PATH="$install_path/lib:$LD_LIBRARY_PATH"
        echo "ok"
        
        echo -n "- checking lib-path in ldc ... "
        case $os in
            FreeBSD) ;; # placeholder
            SunOS)     ;; # need more testing of adding libraries on different solaris versions. atm this is not working
            Linux)
                libpath="`grep -r -l -i -m 1 $install_path/lib /etc/ld.so.conf*`"
                if [ -z "$libpath" ]; then
                    case $linux_distri in
                        gentoo)
                            e17ldcfg="/etc/env.d/40e17paths"
                            echo -e "PATH=$install_path/bin\nROOTPATH=$install_path/sbin:$install_path/bin\nLDPATH=$install_path/lib\nPKG_CONFIG_PATH=$install_path/lib/pkgconfig" > $e17ldcfg 
                            env-update &> /dev/null
                            echo "ok (path has been added to $e17ldcfg)";
                            ;;
    
                        *)
                            if [ "`grep -l 'include /etc/ld.so.conf.d/' /etc/ld.so.conf`" ]; then
                                e17ldcfg="/etc/ld.so.conf.d/e17.conf"
                                rm $e17ldcfg 2>/dev/null
                            else
                                e17ldcfg="/etc/ld.so.conf";
                                cp $e17ldcfg $tmp_path;
                            fi
    
                            case "$mode" in
                                "user") ;;
                                "root")    echo "$install_path/lib" >>$e17ldcfg ;;
                                "sudo")
                                    echo "$install_path/lib" >> $tmp_path/`basename $e17ldcfg`
                                    echo "$sudopwd" | sudo -S mv -f $tmp_path/`basename $e17ldcfg` $e17ldcfg
                                    ;;
                            esac
                            if [ "$asuser" ]; then
                                echo "skipped (running as user)";
                            else
                                echo "ok (path has been added to $e17ldcfg)";
                            fi
                            ;;
                    esac
                else
                    echo "ok ($libpath)";
                fi
                ;;
        esac
    
        echo -n "- setting compile options .... "
        export CPPFLAGS="$CPPFLAGS -I$install_path/include"
        export LDFLAGS="$LDFLAGS -L$install_path/lib"
        echo "ok"
    fi
    
    echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
    echo
    
    
    # do the clean first if not just cleaning.
    if [[ clean -ge 1 ]] ; then
        if [ "$action" != "clean" ]; then
        set_title "Pre cleaning"
        sleep 5
    
        echo -e "\033[1m----------------------------\033[7m Precleaning libraries (EFL) \033[0m\033[1m-----------------------\033[0m"
        pkg_pos=0
        build_each "e17/" "$efl"
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo
    
        echo -e "\033[1m-----------------------------\033[7m Precleaning applications \033[0m\033[1m-------------------------\033[0m"
        build_each "e17/" "$apps"
        build_each "misc/" "$apps_misc"
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo
    
        echo -e "\033[1m-----------------------------\033[7m Precleaning e17 modules \033[0m\033[1m--------------------------\033[0m"
        build_each "e_modules/" "$e17_modules"
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo
    
        clean=0
        fi
    fi
    
    
    # cvs
    echo -e "\033[1m-------------------------------\033[7m CVS checkout/update \033[0m\033[1m----------------------------\033[0m"
    if [ -z "$skip_cvsupdate" ]; then
        rm "$tmp_path/cvs_update.log" 2>/dev/null
        get_repo
    else
        echo -e "\n                                - - - SKIPPED - - -\n"
    fi
    echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
    echo
    
    if [ "$action" == "update" ] && [ -e "$tmp_path/cvs_update.log" ]; then
        for update in `egrep "^[P|U] " "$tmp_path/cvs_update.log" | egrep "apps/|libs/|proto/" | cut -d'/' -f2 | sort -u`; do
            for package in $efl $apps; do
                if [ "$update" == "$package" ]; then
                    only="$update $only"
                fi
            done
        done
        for update in `egrep "^[P|U] " "$tmp_path/cvs_update.log" | egrep -v "apps/|libs/|proto/" | cut -d'/' -f1 | cut -d' ' -f2 | sort -u`; do
            for package in $apps_misc $e17_modules; do
                if [ "$update" == "$package" ]; then
                    only="$update $only"
                fi
            done
        done
    fi
    
    cnt_pkgs    # Count packages
    
    
    echo -n "-> PREPARING FOR PHASE 2..."
    set_title "Preparing for phase 2... compilation & installation"
    sleep 5
    
    logo 2
    echo -e "\033[1m---------------------------\033[7m Installing libraries (EFL) \033[0m\033[1m-------------------------\033[0m"
    pkg_pos=0
    build_each "e17/" "$efl"
    echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
    echo
    
    echo -e "\033[1m----------------------------\033[7m Installing applications \033[0m\033[1m---------------------------\033[0m"
    build_each "e17/" "$apps"
    build_each "misc/" "$apps_misc"
    echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
    echo
    
    echo -e "\033[1m-----------------------------\033[7m Installing e17 modules \033[0m\033[1m---------------------------\033[0m"
    build_each "e_modules/" "$e17_modules"
    echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
    echo 
    
    # Restore current directory in case post processing wants to be pathless.
    cd $EASY_PWD
    
    echo -e "\033[1m-----------------------------\033[7m Finishing installation \033[0m\033[1m---------------------------\033[0m"
    echo -n "- registering libraries ...... "
    if [ -z "$asuser" ]; then
        case "$mode" in
            "sudo") echo "$sudopwd" | sudo -S nice -n $nice_level $ldconfig > /dev/null 2>&1 ;;
            *) nice -n $nice_level $ldconfig > /dev/null 2>&1 ;;
        esac
        echo "ok"
    else
        echo "skipped"
    fi
    echo -n "- post install script ........ "
    if [ "$easy_e17_post_script" ]; then
        echo -n " '$easy_e17_post_script' ... "
        case "$mode" in
            "sudo") echo "$sudopwd" | sudo -S nice -n $nice_level $easy_e17_post_script ;;
            *) nice -n $nice_level $easy_e17_post_script ;;
        esac
        echo "ok"
    else    
        echo "skipped"
    fi
    echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
    echo
    
    
    echo -n "-> PREPARING FOR PHASE 3..."
    set_title "Preparing for phase 3..."
    sleep 5
    
    logo 3
    set_title "Finished"
    
    for file in $logs_path/*.log ; do
        package=`basename "$file" | cut -d'.' -f1`
        if [ -e "$tmp_path/$package.installed" ]; then
            packages_installed="$packages_installed $package"
        else
            if [ -e "$tmp_path/$package.skipped" ]; then
                packages_skipped="$packages_skipped $package"
            else
                if [ -e "$tmp_path/$package.nobuild" ]; then
                    packages_nobuild="$packages_nobuild $package"
                else
                    packages_failed="$packages_failed $package"
                fi
            fi
        fi
    done
    
    echo -e "\033[1m--------------------------------\033[7m Cleaning temp dir \033[0m\033[1m-----------------------------\033[0m"
    if [ -z "$keep" ]; then
        if [ "$packages_failed" ]; then
            echo -n "- saving logs ................ "    
            for package in $packages_installed; do
                rm "$tmp_path/$package.installed" 2>/dev/null
                rm "$logs_path/$package.log" 2>/dev/null
            done
        else
            echo -n "- deleting temp dir .......... "
            rm -rf $tmp_path 2>/dev/null
        fi    
        echo "ok"
    else    
        echo "- saving temp dir ............ ok"
    fi
    echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
    echo
    
    if [ "$packages_failed" ]; then
        echo -e "\033[1m---------------------------------\033[7m Failed packages \033[0m\033[1m------------------------------\033[0m"
        for package in $packages_failed; do
            echo "- $package (error log: $logs_path/$package.log)"
        done
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo 
    fi        
    
    if [ "$action" == "install" ]; then
        echo "INSTALL NOTES:"
        echo "-----------------------------------------------------------------------------"
        echo "The most incredible and really unbelivable dream has become true:"
        echo "You compiled e17 sucessfully!"
        echo 
        echo "Starting e17:"
        echo "Create a file ~/.xsession with the line 'exec $install_path/bin/enlightenment_start'."
        echo "Add a link to this file using 'ln -s ~/.xsession ~/.xinitrc'."
        echo
        echo "If you're using a login manager (GDM/KDM), select the session type 'default' in them."
        echo "If you're using the startx command, simply execute it now."
        echo
        echo "Note: e17 is still not released and it won't be in the near future. So don't"
        echo "ask for a stable release. e17 is still very buggy and only for experienced users"
        echo "who know what they do..."
        echo 
        echo "Rasterman didn't write this script so don't ask him for help with it."
        echo
        echo "Hint: From now on you can easily keep your installation up to date."
        echo "Simply run easy_e17.sh with -u instead of -i ."
        echo
        echo "We hope you will enjoy your trip into e17... Have fun!"
        echo -e "\033[1m--------------------------------------------------------------------------------\033[0m"
        echo
    fi
    
    # Clear this out if we ever set it.
    export CC=""
    
    # exit script or wait?
    if [ "$wait" ]; then
        echo
        echo -e -n "\033[1mThe script is waiting here - simply press [enter] to exit.\033[0m"
        read
    fi    
    
    if [ "$packages_failed" ]; then
        exit 2
    else
        exit 0
    fi
    __________________

    Last edited by RAV TUX; October 14th, 2007 at 06:44 PM.

  4. #24
    Join Date
    Oct 2005
    Location
    Portland, Oregon USA
    Beans
    4,022

    Red face Re: HOWTO: installation of E17 from CVS (UPDATED)

    I have to admit that I didn't understand this step, so I just skipped it,

    Quote Originally Posted by Rui Pais View Post
    3 - CONFIGURATION.
    Now we will create the configure file for easy_e17.sh. Thats very important to control it:
    Code:
    nano -w .easy_e17.conf
    (I use nano for easiness, you may prefer gedit, kate, mousepad, whatever.
    Note that you can copy+paste and drag+drop text on nano too if you already have a DE/WM running.)


    Copy *one* of the above to .easy_e17.conf.
    Minimal e17 (functional e17, no extra modules, no e apps):
    Code:
    --skip=emotion,entrance,eclair,evfs,edje_viewer,edje_editor,elicit,evolve,e_dbus,elitaire,emphasis,empower,engycad,entrance_edit_gui,entropy,ephoto,estickies,exhibit,expedite,extrackt,engage,enthrall,rage,scrot,alarm,bling,cpu,deskshow,emu,flame,forecasts,language,mail,mem,mixer,moon,net,news,photo,rain,screenshot,slideshow,snow,taskbar,tclock,uptime,weather,winselector,wlan
    That will set a minimal e17 for a start. I think that imlib2 and edb are no longer needed as dependencies and could also be added to list, but not sure, so i suggest you leave it (they are very small, anyway)

    e17+extra modules:
    Code:
    --skip=emotion,entrance,eclair,evfs,edje_viewer,edje_editor,elicit,evolve,e_dbus,elitaire,emphasis,empower,engycad,entrance_edit_gui,entropy,ephoto,estickies,exhibit,expedite,extrackt,engage,enthrall,rage,emu,flame,moon,rain,snow,language
    Delete 'language' too, if you want to set to a different language available (default is English, of course).

    flame, rain and snow are purely cosmetic ones, they shows naive animation on desktop (nowadays they looks a little amateur...)
    emu is, as far as I know, a developer tool just for tests on implementations, so you don't need it.

    You can delete from the list any app you may want to try, but i suggest you do that later on after you got e17 installed and running.
    TIPS:
    I suggest to check at the bottom of this post for references on broken libs/apps or specific issues that may be occurring at moment on cvs tree.
    If you will not use your computer for nothing more and want to make the process faster you can add a new line to .easy_e17.conf with:
    --high
    NOTE that it will make everything else on your computer, while e17 installs, run at speed of a sick cow...

    Save and exit (with nano just do Ctrl+X and then press Y for accept save).
    And it's ready.
    __________________

    Last edited by RAV TUX; October 14th, 2007 at 06:44 PM.

  5. #25
    Join Date
    Oct 2005
    Location
    Portland, Oregon USA
    Beans
    4,022

    Red face Re: HOWTO: installation of E17 from CVS (UPDATED)

    Also I have no idea how to use nano:

    see screenshots

    __________________

    Attached Thumbnails Attached Thumbnails Click image for larger version. 

Name:	terminal0.png 
Views:	79 
Size:	130.4 KB 
ID:	45364   Click image for larger version. 

Name:	terminal1.png 
Views:	64 
Size:	139.9 KB 
ID:	45365  
    Last edited by RAV TUX; October 14th, 2007 at 06:43 PM.

  6. #26
    Join Date
    Oct 2005
    Location
    Portland, Oregon USA
    Beans
    4,022

    Red face Re: HOWTO: installation of E17 from CVS (UPDATED)

    OK I tried editing this into mousepad:


    Code:
    # Edit these variables if you like:
    install_path="/opt/e17"
    cvs_path="$HOME/e17_cvs"
    tmp_path="/tmp/easy_e17"
    logs_path="$tmp_path/install_logs"
    cvs_srv=":pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e";
    conf_file="$HOME/.easy_e17.conf"
    --skip=emotion,entrance,eclair,evfs,edje_viewer,edje_editor,elicit,evolve,e_dbus,elitaire,emphasis,empower,engycad,entrance_edit_gui,entropy,ephoto,estickies,exhibit,expedite,extrackt,engage,enthrall,rage,emu,flame,moon,rain,snow,language
    saved & exited

    __________________

    Last edited by RAV TUX; October 14th, 2007 at 06:43 PM.

  7. #27
    Join Date
    Oct 2005
    Location
    Portland, Oregon USA
    Beans
    4,022

    Red face Re: HOWTO: installation of E17 from CVS (UPDATED)

    I still get errors:

    Code:
    sudo ln -s /opt/e17/share/xsessions/enlightenment.desktop /usr/share/xsessions/enlightenment.desktop
    Password:
    ln: creating symbolic link `/usr/share/xsessions/enlightenment.desktop' to `/opt/e17/share/xsessions/enlightenment.desktop': File exists
    ravtux@CafeLinux:~$ sudo ./easy_e17.sh -i
    Password:
    ./easy_e17.sh: line 24: --skip=emotion,entrance,eclair,evfs,edje_viewer,edje_editor,elicit,evolve,e_dbus,elitaire,emphasis,empower,engycad,entrance_edit_gui,entropy,ephoto,estickies,exhibit,expedite,extrackt,engage,enthrall,rage,emu,flame,moon,rain,snow,language: command not found
    
    ------------------------------- Easy_e17.sh 1.1.4 ------------------------------
      Developers:      Brian 'morlenxus' Miculcy
                       David 'onefang' Seikel
      Contributors:    Tim 'wtfoo' Zebulla
                       Daniel G. '_ke' Siegel
                       Stefan 'slax' Langner
                       Massimiliano 'Massi' Calamelli
                       Thomas 'thomasg' Gstaedtner
    --------------------------------------------------------------------------------
      Updates:         http://omicron.homeip.net/projects/#easy_e17.sh
      Support:         #e.de, #get-e (irc.freenode.net)
                       morlenxus@gmx.net
      Patches:         Generally accepted, please contact me!
    --------------------------------------------------------------------------------
    
    
    ----------------------------- Current Configuration ----------------------------
      Install path:    /opt/e17
      CVS path:        /home/ravtux/e17_cvs
      CVS server:      :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e
      Logs path:       /tmp/easy_e17/install_logs
      OS:              Linux (Distribution: debian)
    
      Libraries:       imlib2 edb eet evas ecore efreet epeg embryo edje epsilon esmart emotion engrave etk etk_extra evolve ewl exml enhance e_dbus
      Applications:    e entrance eclair evfs edje_viewer edje_editor elicit elitaire emphasis empower engycad entrance_edit_gui entropy ephoto estickies exhibit expedite extrackt
      Miscellaneous:   engage enthrall rage scrot
      Modules:         alarm bling cpu deskshow emu flame forecasts language mail mem mixer moon net news photo rain screenshot slideshow snow taskbar tclock uptime weather winselector wlan
    
      Script action:   install
    --------------------------------------------------------------------------------
    
    -------------------------------- Build phase 1/3 -------------------------------
    - running some basic system checks
    - pre cleaning
    - cvs checkout/update
    --------------------------------------------------------------------------------
    
    
    ------------------------------- Basic system checks ----------------------------
    - cvs-dir .................... ok
    - creating script dirs ....... ok
    - build-user ................. root
    - adding path to env ......... ok
    - checking lib-path in ldc ... ok (/etc/ld.so.conf.d/e17.conf)
    - setting compile options .... ok
    --------------------------------------------------------------------------------
    
    ------------------------------- CVS checkout/update ----------------------------
    - updating source of repo 'e17' (please wait, this won't output much) ...
    ? libs/engrave/src/bin/.deps/engrave_canvas_test_main.Po
    ? libs/engrave/src/bin/.deps/engrave_test_main.Po
    ? libs/etk_extra/etk_extra_cairo.pc
    ? libs/etk_extra/etk_extra_tree_model_wobbly.pc
    ? libs/etk_extra/etk_extra_video.pc
    ? libs/evolve/src/lib/libevolve_la-evolve_lib.loT
    P apps/e/src/bin/e_fm.c
    P apps/e/src/bin/e_main.c
    P apps/e/src/bin/e_pointer.c
    P libs/ecore/src/lib/ecore_job/Ecore_Job.h
    P libs/ecore/src/lib/ecore_job/ecore_job.c
    P libs/edje/src/lib/edje_main.c
    P libs/edje/src/lib/edje_message_queue.c
    P libs/edje/src/lib/edje_smart.c
    P libs/emotion/src/lib/emotion_smart.c
    P libs/etk/src/lib/etk_main.c
    P libs/evas/src/lib/canvas/evas_object_gradient.c
    P libs/evas/src/lib/canvas/evas_object_image.c
    P libs/evas/src/lib/canvas/evas_object_line.c
    P libs/evas/src/lib/canvas/evas_object_main.c
    P libs/evas/src/lib/canvas/evas_object_rectangle.c
    P libs/evas/src/lib/canvas/evas_object_smart.c
    P libs/evas/src/modules/engines/buffer/evas_engine.c
    P test/orig/ecore/ecore_test.c
    
    - updating source of repo 'misc' (please wait, this won't output much) ...
    
    - updating source of repo 'e_modules' (please wait, this won't output much) ...
    
    --------------------------------------------------------------------------------
    
    -> PREPARING FOR PHASE 2...
    ------------------------------- Easy_e17.sh 1.1.4 ------------------------------
      Developers:      Brian 'morlenxus' Miculcy
                       David 'onefang' Seikel
      Contributors:    Tim 'wtfoo' Zebulla
                       Daniel G. '_ke' Siegel
                       Stefan 'slax' Langner
                       Massimiliano 'Massi' Calamelli
                       Thomas 'thomasg' Gstaedtner
    --------------------------------------------------------------------------------
      Updates:         http://omicron.homeip.net/projects/#easy_e17.sh
      Support:         #e.de, #get-e (irc.freenode.net)
                       morlenxus@gmx.net
      Patches:         Generally accepted, please contact me!
    --------------------------------------------------------------------------------
    
    
    ----------------------------- Current Configuration ----------------------------
      Install path:    /opt/e17
      CVS path:        /home/ravtux/e17_cvs
      CVS server:      :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e
      Logs path:       /tmp/easy_e17/install_logs
      OS:              Linux (Distribution: debian)
    
      Libraries:       imlib2 edb eet evas ecore efreet epeg embryo edje epsilon esmart emotion engrave etk etk_extra evolve ewl exml enhance e_dbus
      Applications:    e entrance eclair evfs edje_viewer edje_editor elicit elitaire emphasis empower engycad entrance_edit_gui entropy ephoto estickies exhibit expedite extrackt
      Miscellaneous:   engage enthrall rage scrot
      Modules:         alarm bling cpu deskshow emu flame forecasts language mail mem mixer moon net news photo rain screenshot slideshow snow taskbar tclock uptime weather winselector wlan
    
      Script action:   install
    --------------------------------------------------------------------------------
    
    -------------------------------- Build phase 2/3 -------------------------------
    - lib-compilation and installation
    - apps-compilation and installation
    --------------------------------------------------------------------------------
    
    
    --------------------------- Installing libraries (EFL) -------------------------
    - imlib2 ..................... ok          
    - edb ........................ ok          
    - eet ........................ ok          
    - evas ....................... ok          
    - ecore ...................... ok          
    - efreet ..................... ok          
    - epeg ....................... ok          
    - embryo ..................... ok          
    - edje ....................... ok          
    - epsilon .................... ok          
    - esmart ..................... ok          
    - emotion .................... ok          
    - engrave .................... ok          
    - etk ........................ ok          
    - etk_extra .................. ok          
    - evolve ..................... ERROR!      
    --------------------------------------------------------------------------------
    
    ----------------------------------- Last loglines ------------------------------
    if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../src -I/opt/e17/include -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include    -I/opt/e17/include -Wall  -MT libevolve_la-evolve_constructor.lo -MD -MP -MF ".deps/libevolve_la-evolve_constructor.Tpo" -c -o libevolve_la-evolve_constructor.lo `test -f 'evolve_constructor.c' || echo './'`evolve_constructor.c; \
            then mv -f ".deps/libevolve_la-evolve_constructor.Tpo" ".deps/libevolve_la-evolve_constructor.Plo"; else rm -f ".deps/libevolve_la-evolve_constructor.Tpo"; exit 1; fi
    evolve_lib.c: In function 'evolve_init':
    evolve_lib.c:91: error: 'Etk_Property_Value_Value' undeclared (first use in this function)
    evolve_lib.c:91: error: (Each undeclared identifier is reported only once
    evolve_lib.c:91: error: for each function it appears in.)
    evolve_lib.c:92: error: expected ';' before '___ett'
    evolve_lib.c:92: error: '___ett' undeclared (first use in this function)
    evolve_lib.c:93: error: expected ';' before '___ett'
    evolve_lib.c:94: error: expected ';' before '___ett'
    evolve_lib.c:95: error: expected ';' before '___ett'
    evolve_lib.c:96: error: expected ';' before '___ett'
    evolve_lib.c:97: error: expected ';' before '___ett'
    evolve_lib.c:98: error: expected ';' before '___ett'
    evolve_lib.c:99: error: expected ';' before '___ett'
    make[3]: *** [libevolve_la-evolve_lib.lo] Error 1
    make[3]: *** Waiting for unfinished jobs....
     gcc -DHAVE_CONFIG_H -I. -I. -I../../src -I/opt/e17/include -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include -I/opt/e17/include -Wall -MT libevolve_la-evolve_constructor.lo -MD -MP -MF .deps/libevolve_la-evolve_constructor.Tpo -c evolve_constructor.c  -fPIC -DPIC -o .libs/libevolve_la-evolve_constructor.o
     gcc -DHAVE_CONFIG_H -I. -I. -I../../src -I/opt/e17/include -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include -I/opt/e17/include -Wall -MT libevolve_la-evolve_constructor.lo -MD -MP -MF .deps/libevolve_la-evolve_constructor.Tpo -c evolve_constructor.c -o libevolve_la-evolve_constructor.o >/dev/null 2>&1
    make[3]: Leaving directory `/home/ravtux/e17_cvs/e17/libs/evolve/src/lib'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/ravtux/e17_cvs/e17/libs/evolve/src'
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/home/ravtux/e17_cvs/e17/libs/evolve/src'
    make: *** [all-recursive] Error 1
    --------------------------------------------------------------------------------
    
    -> Get more informations by checking the log file '/tmp/easy_e17/install_logs/evolve.log'!
    __________________

    Last edited by RAV TUX; October 14th, 2007 at 06:43 PM.

  8. #28
    Join Date
    Oct 2005
    Location
    Portland, Oregon USA
    Beans
    4,022

    Red face Re: HOWTO: installation of E17 from CVS (UPDATED)

    If anybody can help me out please do...

    __________________

    Last edited by RAV TUX; October 14th, 2007 at 06:43 PM.

  9. #29
    Join Date
    Oct 2004
    Beans
    2,324

    Re: HOWTO: installation of E17 from CVS (UPDATED)

    Hi RAV TUX,

    you cannot log in while installation didn't finish correctly.

    evolve is a developer tool that morlenxus add recently to his script. It's not need for a normal user and it seems that don't compile, at least on Ubuntu... you need to skip that one.

    You can do it on command line:
    Code:
     sudo ./easy_e17.sh -i --skip=evolve
    Or, to make it that option permanent, you can add it to --skip list:
    Code:
    sudo mousepad .easy_e17.conf
    and add to the line with --skip or create a new line, if you don't have one, like:
    Code:
    --skip=evolve,emotion,entrance,eclair,evfs,edje_viewer,edje_editor,elicit,e_dbus,elitaire,emphasis,empower,engycad,entrance_edit_gui,entropy,ephoto,estickies,exhibit,expedite,extrackt,engage,enthrall,rage,emu,flame,moon,rain,snow,language
    No need to edit morlenxus script, only it's customization file.

    Ooh, and you need to delete line 24 you add to easy_e17.sh. Thats the line that goes on file .easy_e17.conf (note the dot at begining of the name, it's important).
    Last edited by Rui Pais; October 5th, 2007 at 07:34 AM.
    ___________________________________
    ESTRAGON: We've lost our rights?

  10. #30
    Join Date
    Oct 2005
    Location
    Portland, Oregon USA
    Beans
    4,022

    Red face Re: HOWTO: installation of E17 from CVS (UPDATED)

    Quote Originally Posted by Rui Pais View Post
    Hi RAV TUX,

    you cannot log in while installation didn't finish correctly.

    evolve is a developer tool that morlenxus add recently to his script. It's not need for a normal user and it seems that don't compile, at least on Ubuntu... you need to skip that one.

    You can do it on command line:
    Code:
     sudo ./easy_e17.sh -i --skip=evolve
    Or, to make it that option permanent, you can add it to --skip list:
    Code:
    sudo mousepad .easy_e17.conf
    and add to the line with --skip or create a new line, if you don't have one, like:
    Code:
    --skip=evolve,emotion,entrance,eclair,evfs,edje_viewer,edje_editor,elicit,e_dbus,elitaire,emphasis,empower,engycad,entrance_edit_gui,entropy,ephoto,estickies,exhibit,expedite,extrackt,engage,enthrall,rage,emu,flame,moon,rain,snow,language
    No need to edit morlenxus script, only it's customization file.

    Ooh, and you need to delete line 24 you add to easy_e17.sh. Thats the line that goes on file .easy_e17.conf (note the dot at begining of the name, it's important).
    Thanks Rui Pais, I'm working on your directive now.
    __________________

    Last edited by RAV TUX; October 14th, 2007 at 06:43 PM.

Page 3 of 98 FirstFirst 123451353 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •