aboutsummaryrefslogtreecommitdiffstats
path: root/tools/verify-evolution-install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/verify-evolution-install.sh')
-rwxr-xr-xtools/verify-evolution-install.sh393
1 files changed, 393 insertions, 0 deletions
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 <peterw@helixcode.com>
+#
+# 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
+ if test x$? != x0 ; then
+ problem="Package $2 doesn't seem to be installed."
+ rpmsolution="Get and install the packages '$2' and '$2-devel'"
+ debsolution="Get and install the package $2 and its development libraries" #FIXME
+ srcsolution="Download the source and install the package $2"
+ comment="If you think the package is installed, check that its prefix is $gl_prefix --
+${1}Conf.sh should be installed into `$GNOME_CONFIG --libdir`"
+ problem
+ fi
+
+ instversion=`$GNOME_CONFIG --modversion $1`
+
+ #eew eew hacky
+ # gnome-vfs used to be versioned gnome-vfs-0.1,
+ # and gnome-vfs-0.2, but then they moved to three figs--
+ # now it's gnome-vfs-0.2.0
+
+ if test $2 = gnome-vfs ; then
+ case "$instversion" in
+ gnome-vfs-0.1)
+ problem="Package gnome-vfs is not new enough (0.1 detected, $3 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
+ ;;
+ gnome-vfs-0.2)
+ instversion="gnome-vfs-0.2.0"
+ ;;
+ *)
+ #nothing, version is ok
+ ;;
+ esac
+ fi
+
+ versionparse3 "$instversion" "$3" "$2"
+}
+
+########################################
+
+versionparse2() {
+ #inst_version=$1
+ #reqd_version=$2
+ #package=$3
+
+ inst_version=`versiongrab2 "$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,'`
+
+ reqd_version=`versiongrab2 "$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,'`
+
+ 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
+ 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
+}
+
+versiongrab2() {
+ echo $1 |sed -e 's,.*\([0-9][0-9]*\.[0-9][0-9]*\).*,\1,'
+}
+
+check_module2() {
+ #$1=gnome-libs name
+ #$2=package
+ #$3=version
+ $GNOME_CONFIG --modversion $1 1>/dev/null 2>/dev/null </dev/null
+ if test x$? != x0 ; then
+ problem="Package $2 doesn't seem to be installed."
+ rpmsolution="Get and install the packages '$2' and '$2-devel'"
+ debsolution="Get and install the package $2 and its development libraries" #FIXME
+ srcsolution="Download the source and install the package $2"
+ comment="If you think the package is installed, check that its prefix is $gl_prefix --
+${1}Conf.sh should be installed into `$GNOME_CONFIG --libdir`"
+ problem
+ fi
+
+ instversion=`$GNOME_CONFIG --modversion $1`
+ versionparse2 "$instversion" "$3" "$2"
+}
+
+########################################
+
+#prep
+if test -d /var/lib/rpm ; then
+ rpmsystem=yes
+ RPM=${RPM_PROG-`which rpm`}
+
+ $RPM --version 1>/dev/null 2>/dev/null </dev/null
+ if test x$? != x0 ; then
+ problem="The rpm executable ($RPM) does not seem to work."
+ rpmsolution="none, if rpm doesn't work."
+ debsolution="not applicable."
+ srcsolution="download and install rpm manually."
+ comment="If rpm really won't work then there is something wrong with your system."
+ problem
+ fi
+else
+ rpmsystem=no
+fi
+
+if test -d /var/lib/dpkg ; then
+ debsystem=yes
+ #FIXME: check if deb works
+else
+ debsystem=no
+fi
+
+if test x"$GNOME_PATH" != x ; then
+ PATH="$GNOME_PATH:$PATH"
+fi
+
+#gnome-libs
+check_config GNOME_CONFIG gnome-config gnome-libs
+
+gl_version=`$GNOME_CONFIG --version` # |sed -e 's,.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*,\1,'`
+gl_sysconf=`$GNOME_CONFIG --sysconfdir`
+gl_prefix=`$GNOME_CONFIG --prefix`
+gl_datadir=`$GNOME_CONFIG --datadir`
+gl_bindir=`$GNOME_CONFIG --bindir`
+
+versionparse3 "$gl_version" "1.0.59" "gnome-libs"
+
+#libunicode
+check_config UNICODE_CONFIG unicode-config libunicode
+check_prefix UNICODE_CONFIG libunicode
+versionparse2 "`$UNICODE_CONFIG --version`" "0.4" libunicode
+
+#ORBit
+check_config ORBIT_CONFIG orbit-config ORBit
+check_prefix ORBIT_CONFIG ORBit
+
+#oaf
+check_config OAF_CONFIG oaf-config oaf
+check_prefix OAF_CONFIG oaf
+versionparse3 "`$OAF_CONFIG --version`" "0.4.0" "oaf"
+check_oafinfo oafd oaf
+check_bin oafd
+
+#gconf
+check_config GCONF_CONFIG gconf-config GConf
+check_prefix GCONF_CONFIG GConf
+versionparse2 "`$GCONF_CONFIG --version`" "0.5" GConf
+check_oafinfo gconfd GConf
+check_bin gconfd
+check_no_gnorba "`$GCONF_CONFIG --libs`" GConf
+
+#gnome vfs
+check_module3 vfs gnome-vfs "0.2.0"
+check_no_gnorba "`$GNOME_CONFIG --libs vfs`" gnome-vfs
+
+#gnome print
+check_module2 print gnome-print "0.20"
+check_no_gnorba "`$GNOME_CONFIG --libs print`" gnome-print
+
+#bonobo
+check_module2 bonobo bonobo "0.15"
+check_oafinfo audio-ulaw bonobo
+check_bin bonobo-audio-ulaw bonobo
+check_no_gnorba "`$GNOME_CONFIG --libs bonobo`" bonobo
+
+bn_libs=`$GNOME_CONFIG --libs bonobo`
+
+ping=`echo $bn_libs |grep 'oaf'`
+
+if test x"$ping" = x ; then
+ problem="Bonobo was not compiled with oaf enabled."
+ rpmsolution="Reinstall the packages 'bonobo' and 'bonobo-devel'."
+ debsolution="Reinstall Bonobo and its development libraries." #FIXME
+ srcsolution="Re-run 'configure' in Bonobo's source directory with the flag '--enable-oaf=yes'."
+ problem
+fi
+
+#gtkhtml
+check_module2 gtkhtml GtkHTML "0.5"
+check_oafinfo html-editor-control GtkHTML
+check_bin html-editor-control GtkHTML
+check_no_gnorba "`$GNOME_CONFIG --libs gtkhtml`" GtkHTML
+
+#evolution
+check_oafinfo addressbook evolution
+check_oafinfo calendar-control evolution
+check_oafinfo evolution-mail evolution
+check_oafinfo evolution-calendar evolution
+check_oafinfo evolution-addressbook-select-names evolution
+check_oafinfo wombat evolution
+check_bin evolution-mail evolution
+check_bin evolution-calendar evolution
+check_bin evolution-addressbook evolution
+check_bin wombat evolution
+check_bin evolution evolution
+
+#done
+echo "Your Gnome system appears to be properly set up. Enjoy Evolution!"
+exit 0 \ No newline at end of file