If you are running e17 on Gentoo like me, and like using the ebuild
system for getting cvs updates, but don't like doing it manually, this
script could be useful. It updates all of the necessary e17 packages
(feel free to modify the list), and allows you to change things like
CFLAGS so that you can run e17 with different CFLAGS (like -g) without
having to remember to specify them. (Keep in mind, though, that CFLAGS
don't stack.) It also only recompiles packages that have been updated
in cvs since the last update, or, if you have genlop installed, ones
that were compiled with different CFLAGS previously. Just stick this
script in a cron job and get easy updates to e17 however often you want.

Jesse

#!/bin/bash

STATUS_LOG=/var/log/e_log
EMERGE_LOG=/var/log/e_emerge_log

export CFLAGS="-O2 -march=pentium4 -pipe -g"
export FEATURES="nostrip"
export ECVS_SERVER="thinktux.net:/root"

rm -f ${STATUS_LOG} ${EMERGE_LOG}

build_package() {
    emerge --oneshot $1 >> ${EMERGE_LOG}
    if [[ $? -ne 0 ]]; then
        echo "  Merging $1 failed. See ${EMERGE_LOG} for details." >> 
${STATUS_LOG}
        # force a cvs update next time so that this will be rebuilt every time
        # until it is successful (in case of manual cancel, computer
        # overheating, etc.)
        rm -f /usr/portage/distfiles/cvs-src/${1/*\/}/AUTHORS
        rm -f /usr/portage/distfiles/cvs-src/misc/${1/*\/}/AUTHORS
        rm -f /usr/portage/distfiles/cvs-src/e17/*/${1/*\/}/AUTHORS
    else
        echo "  Done merging $1."
    fi
}

for package in \
        dev-libs/eet \
        dev-db/edb \
        x11-libs/evas \
        x11-libs/ecore \
        dev-libs/embryo \
        media-libs/imlib2 \
        media-libs/imlib2_loaders \
        media-libs/edje \
        media-libs/epeg \
        media-libs/epsilon \
        x11-libs/esmart \
        media-libs/emotion \
        dev-libs/engrave \
        x11-libs/ewl \
        media-gfx/entice \
        x11-misc/entrance \
        media-video/eclair \
        x11-wm/e \
        app-misc/examine \
        x11-misc/engage \
        dev-util/e_utils \
        x11-plugins/e_modules \
        media-gfx/elicit \
        app-misc/evidence \
        ; do
    echo "${package}:" >> ${STATUS_LOG}

    if [[ -x $( which genlop ) ]]; then
        OLD_CFLAGS=$( echo -n $( genlop -i ${package} | grep CFLAGS | sed 
s/"CFLAGS=\"\(.*\)\""/"\1"/ ) )

        if [[ "${CFLAGS}" != "${OLD_CFLAGS}" ]]; then
            echo "  Merging ${package} due to changed CFLAGS." >> ${STATUS_LOG}
            build_package ${package}
            continue
        fi
    fi

    EBUILD_PATH="/usr/portage/${package}/${package/*\/}-9999.ebuild"
    if [[ ! -f ${EBUILD_PATH} ]]; then
        echo "  ${EBUILD_PATH} is not a file!"
    else
        # otherwise unpack might just exit with 'WORKDIR is up to date'
        ebuild ${EBUILD_PATH} clean
        if ebuild ${EBUILD_PATH} unpack | sed '0,/update -dP/d; /Copying .* 
from /,$d' | grep -q .; then
            echo "  Merging ${package} due to CVS update." >> ${STATUS_LOG}
            build_package ${package}
        else
            echo "  Skipping ${package}." >> ${STATUS_LOG}
        fi
    fi
done


-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.
Get Certified Today * Register for a JBoss Training Course
Free Certification Exam for All Training Attendees Through End of 2005
Visit http://www.jboss.com/services/certification for more information
_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to