Re: Woohoo!! I did it!



On Sun, Nov 22, 1998 at 10:26:30PM -0600, Shane Lenagh scribbled:
> Got the damn thing to copile, and I got my panel working!  For anyone
> still struggling, here are two scripts that I wrote to make the
> compilation less tedious.  In a perfect world, these could be run as
> cronjobs every morning (not everyone at once, now...4:00 a.m. is MY time
>:-) and you could automagically have a fresh GNOME each day.  I don't
> know how well this will work in reality (this ain't a perfect world, ya'
> know), but I'll know tomorrow morning :-)
> 
> shane

  I got your scripts and made some modifications, fixed a couple of nasty
bugs, etc.  They seem to work pretty well, though (except when things die
horribly.:-) )  The update script now checks things out by default since
the posting about only using cvs checkout but you can uncomment some lines
to get updates instead (and it always checks out non-existant dirs, so
you can add new modules quickly).  The modules are grouped in each file,
so you can quickly add new modules (unless they need special handling..)

  Anyway, it compiles a lot of the modules find right now.  (it keeps
dying from broken CVS stuff but that's not my fault! :-) )

      Daniel

-- 
  Daniel Burrows

"I think that the surest sign that there is intelligent
 life out there is that none of it has tried to contact us."

  -- _Calvin and Hobbes_, Bill Watterson
#!/bin/sh

# where we are keeping our gnome sources
src_dir=/home/daniel/gnome               
# file to write detailed compilation log to
log=$src_dir/compile_log
# file to write brief compilation summary to
compile_summary=$src_dir/compile_summary
# autogen prefix directory (both gnome and gtk)
prefix=/usr/local/gnome
# where to send compilation results to
email_alert_addresses="daniel"
# file where update script stores update success message
update_success=$src_dir/update_success
# file where this script will store compile success message
compilation_success=$src_dir/compile_success

# set those aclocal flags
export ACLOCAL_FLAGS="-I $prefix/share/aclocal/"

# Set the path..
PATH=$PATH:$prefix/bin

# Command to do installation (null if not needed..)
get_privs=sudo

# assume the worst, hope for the best ;-)
compilation="failure"  

# The modules to compile (special handlers for glib and gtk later..)
modules="glib gtk+ imlib gtk-engines libIDL ORBit gnome-libs libvfs gnome-objc \
        libgtop gnome-core gnome-guile gnome-admin gnome-games gnome-network \
	gnome-utils balsa"

#
# Email me with results of compilation/failure
# before we exit
#
trap ' 
    if [ $compilation = "failure" ]; then
	echo "" | tee $compile_summary >> $log
	echo "Compilation failed at `date`" | tee $compile_summary >> $log
	cat $compile_summary $log | mail -s "Failed to compile GNOME at `date`" $email_alert_addresses
    else
	cat $compilation_success | mail -s "Succeeded in compiling GNOME at `date`" $email_alert_addresses
    fi
' EXIT

# let's not rest on our laurels
if [ -e $compilation_success ]; then 
    rm $compilation_success; 
fi

# wipe out previous log and summary too
echo "" | tee $compile_summary > $log           

echo "Preparing to compile modules: $modules" >> $log

#
# We only need to compile if we have recently (successfully) updated
# from CVS
#
if [ -e $update_success ]; then
    echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" | tee -a $compile_summary >> $log
    echo "       Compiling GNOME at `date`" | tee -a $compile_summary >> $log
    echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" | tee -a $compile_summary >> $log
else
    echo "Update failed...get new stuff from CVS and then recompile" | tee -a $compile_summary >> $log
    exit 1;
fi

# Nuke old macro files

$get_privs rm -rf $prefix/share/aclocal/*

#
# Compile stuff
#

for module in $modules
do
# gtk+ and glib don't need the --with-* prefixes.
	if [ $module = glib ] || [ $module = gtk+ ]
	then
		with_stuff=""
	else
		with_stuff="--with-gtk-prefix=$prefix --with-glib-prefix=$prefix"
	fi
	echo "" | tee -a $compile_summary >> $log
	echo "******************************************************" | tee -a $compile_summary >> $log
	echo "        Compiling $module at `date`" | tee -a $compile_summary >> $log
	echo "******************************************************" | tee -a $compile_summary >> $log
	echo "" | tee -a $compile_summary >> $log
	cd $src_dir/$module
	./autogen.sh --prefix=$prefix --with-gtk-prefix=$prefix --with-glib-prefix=$prefix >> $log 2>&1 &&
	make clean >> $log 2>&1 &&
	make >> $log 2>&1 &&
	$get_privs make install >> $log 2>&1 &&
	$get_privs ldconfig >> $log 2>&1 || exit 1
done

# we made it!
echo "" >> $log
compilation="success"
echo "Congratulations!  Compilation of GNOME  succeeded at `date`" | tee -a $log > $compilation_success

#!/bin/sh

# where we are keeping our gnome sources
src_dir=/home/daniel/gnome               
# file to write update log to
log=$src_dir/update_log
# file where we store update success message
update_success=$src_dir/update_success
# CVS server
CVSROOT=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome"


# can't rest on our laurels
if [ -e $update_success ]; then 
    rm $update_success; 
fi

cd $src_dir

echo "Updating GNOME from CVS server $CVSROOT at `date`" > $log 2>&1
echo "" >> $log 2>&1 

for i in glib gtk+ imlib gtk-engines libIDL ORBit \
	gnome-libs libvfs gnome-objc libgtop gnome-core \
	gnome-guile gnome-admin gnome-games gnome-network \
	gnome-utils CVSROOT
do
	if [ -d $i ]
	then
	  rm -rf $i
# alternatively:
# cvs -z3 -d $CVSROOT update -d -P $i >> $log 2>&1 || exit 1
# else
# cvs -z3 ...
# fi
	fi
	cvs -z3 -d $CVSROOT checkout $i >> $log 2>&1 || exit 1
done

echo "Update of GNOME from CVS server $CVSROOT succeeded at `date`" > $update_success

PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]