From c8960411f04a139e483326cf5a666239c923ea77 Mon Sep 17 00:00:00 2001 From: Peter Williams Date: Fri, 28 Jul 2000 22:02:10 +0000 Subject: New helper script to diagnose problems installing evolution. svn path=/trunk/; revision=4408 --- tools/verify-evolution-install.sh | 393 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 393 insertions(+) create mode 100755 tools/verify-evolution-install.sh diff --git a/tools/verify-evolution-install.sh b/tools/verify-evolution-install.sh new file mode 100755 index 0000000000..f71cfd2e82 --- /dev/null +++ b/tools/verify-evolution-install.sh @@ -0,0 +1,393 @@ +#!/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