#!/bin/sh # # Verifies that Evolution and all its supporting components # are installed correctly. A tool to weed out common # build problems. # # (C)2000 Helix Code, Inc. # Author: Peter Williams # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public License # as published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # problem() { echo "I detected the following problem: $problem" if test x"$rpmsystem" = xyes ; then echo "Suggested solution via RPM: $rpmsolution" fi if test x"$debsystem" = xyes ; then echo "Suggested solution via DEB: $debsolution" fi echo "Suggested solution via sources: $srcsolution" if test x"$comment" != x ; then echo "" echo "$comment" fi exit 1 } check_config() { #bigname=$1 #cfgname=$2 #pkgname=$3 eval $1=\${$1-\`which $2\`} eval val=\$$1 if test ! -x $val ; then problem="Cannot find $2 or it ($val) is not executable" rpmsolution="Install or reinstall the '$3-devel' package" debsolution="Install or reinstall the $3 development libraries." #FIXME srcsolution="Get the latest release of $3 and install it." comment="If you know that $3 is installed, try setting the environment variable $1 to its location" problem fi } check_prefix() { #othercfg=$1 #othername=$2 eval otherpfx=\`\$$1 --prefix\` if test x"$otherpfx" != x"$gl_prefix" ; then problem="gnome-libs and $2 do not share the same prefix" rpmsolution="This problem shouldn't happen with RPM installations. Verify your installation of Helix Gnome." debsolution="This problem shouldn't happen with DEB installations. Verify your installation of Helix Gnome." srcsolution="Re-run 'configure' in $2's source directory with the flag '--prefix=$gl_prefix." problem fi } check_sysconf() { #othercfg=$1 #othername=$2 eval othersysc=\`\$$1 --sysconfdir\` if test x"$othersysc" != x"$gl_sysconf" ; then problem="gnome-libs and $2 do not share the same sysconfdir" rpmsolution="This problem shouldn't happen with RPM installations. Verify your installation of Helix Gnome." debsolution="This problem shouldn't happen with DEB installations. Verify your installation of Helix Gnome." srcsolution="Re-run 'configure' in $2's source directory with the flag '--sysconfdir=$gl_sysconf." problem fi } check_oafinfo() { #basename=$1 #othername=$2 if test ! -f ${gl_datadir}/oaf/$1.oafinfo ; then problem="$1.oafinfo isn't installed into Gnome's prefix" rpmsolution="This problem shouldn't happen with RPM installations. Verify your installation of Helix Gnome." debsolution="This problem shouldn't happen with DEB installations. Verify your installation of Helix Gnome." srcsolution="Re-run 'configure' in $2's source directory with the flag '--datadir=$gl_datadir." comment="Another likely cause of this problem would be a failed installation of $2. You should check to see that the install succeeded." problem fi } check_bin() { #name=$1 #othername=$2 if test ! -f ${gl_bindir}/$1 ; then problem="The binary $1 isn't installed into Gnome's prefix" rpmsolution="This problem shouldn't happen with RPM installations. Verify your installation of Helix Gnome." debsolution="This problem shouldn't happen with DEB installations. Verify your installation of Helix Gnome." srcsolution="Re-run 'configure' in $2's source directory with the flag '--bindir=$gl_bindir." comment="Another likely cause of this problem would be a failed installation of $2. You should check to see that the install succeeded." problem fi } check_no_gnorba() { #libs=$1 #othername=$2 ping=`echo $1 |grep 'gnorba'` if test x"$ping" != x ; then problem="$2 was built using Gnorba, not OAF" rpmsolution="This problem shouldn't happen with RPM installations. Verify your installation of Helix Gnome." debsolution="This problem shouldn't happen with DEB installations. Verify your installation of Helix Gnome." srcsolution="Update $2 and re-run 'configure' in its source directory with the flag '--enable-oaf=yes." problem fi } ######################################## versionparse3() { #inst_version=$1 #reqd_version=$2 #package=$3 inst_version=`versiongrab3 "$1"` inst_major=`echo $inst_version |sed -e 's,\([0-9][0-9]*\)\..*\..*,\1,'` inst_minor=`echo $inst_version |sed -e 's,.*\.\([0-9][0-9]*\)\..*,\1,'` inst_micro=`echo $inst_version |sed -e 's,.*\..*\.\([0-9][0-9]*\),\1,'` reqd_version=`versiongrab3 "$2"` reqd_major=`echo $reqd_version |sed -e 's,\([0-9][0-9]*\)\..*\..*,\1,'` reqd_minor=`echo $reqd_version |sed -e 's,.*\.\([0-9][0-9]*\)\..*,\1,'` reqd_micro=`echo $reqd_version |sed -e 's,.*\..*\.\([0-9][0-9]*\),\1,'` ok=yes if test $inst_major -lt $reqd_major ; then ok=no elif test $inst_major -gt $reqd_major ; then ok=yes elif test $inst_minor -lt $reqd_minor; then ok=no elif test $inst_minor -gt $reqd_minor; then ok=yes elif test $inst_micro -lt $reqd_micro; then ok=no fi if test x$ok = xno ; then problem="Package $3 is not new enough ($1 detected, $2 required)" rpmsolution="Obtain a newer version and install it" depsolution="Obtain a newer version and install it" srcsolution="Obtain a newer version and install it" comment="If you think you have a newer installation, make sure that the package is not installed twice." problem fi } versiongrab3() { echo $1 |sed -e 's,.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*,\1,' } check_module3() { #$1=gnome-libs name #$2=package #$3=version $GNOME_CONFIG --modversion $1 1>/dev/null 2>/dev/null /dev/null 2>/dev/null /dev/null 2>/dev/null