aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-09-18 23:55:12 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-09-18 23:58:19 +0800
commit461f022eb7fae7147845797c0544304ae35c7e8b (patch)
treea734d25c483a14a36973f9d62f44654782b1be7a
parent12d1810be39661750956ec1e041f7f572ea86698 (diff)
downloadgsoc2013-evolution-461f022eb7fae7147845797c0544304ae35c7e8b.tar
gsoc2013-evolution-461f022eb7fae7147845797c0544304ae35c7e8b.tar.gz
gsoc2013-evolution-461f022eb7fae7147845797c0544304ae35c7e8b.tar.bz2
gsoc2013-evolution-461f022eb7fae7147845797c0544304ae35c7e8b.tar.lz
gsoc2013-evolution-461f022eb7fae7147845797c0544304ae35c7e8b.tar.xz
gsoc2013-evolution-461f022eb7fae7147845797c0544304ae35c7e8b.tar.zst
gsoc2013-evolution-461f022eb7fae7147845797c0544304ae35c7e8b.zip
Kill the killev program, and the whole tools directory.
The --force-shutdown option now simply runs "pkill evolution".
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac1
-rw-r--r--shell/Makefile.am3
-rw-r--r--shell/main.c39
-rw-r--r--tools/Makefile.am33
-rw-r--r--tools/killev.c213
-rwxr-xr-xtools/verify-evolution-install.sh640
7 files changed, 31 insertions, 899 deletions
diff --git a/Makefile.am b/Makefile.am
index 53b463b10c..d88ad131e1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -63,7 +63,6 @@ SUBDIRS = \
doc \
ui \
views \
- tools \
po \
sounds \
$(HELP_SUBDIR)
diff --git a/configure.ac b/configure.ac
index 2853155513..cd149a4f7d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2073,7 +2073,6 @@ smime/Makefile
smime/lib/Makefile
smime/gui/Makefile
sounds/Makefile
-tools/Makefile
evolution-zip
evolution-shell.pc
evolution-plugin.pc
diff --git a/shell/Makefile.am b/shell/Makefile.am
index 7358a1466b..edc143ee31 100644
--- a/shell/Makefile.am
+++ b/shell/Makefile.am
@@ -8,7 +8,7 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/widgets/misc \
-I$(top_srcdir) \
-I$(top_srcdir)/shell \
- -I$(top_builddir)/shell \
+ -DEVOLUTION_BINDIR=\""$(bindir)"\" \
-DEVOLUTION_IMAGESDIR=\""$(imagesdir)"\" \
-DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \
-DEVOLUTION_DATADIR=\""$(datadir)"\" \
@@ -18,7 +18,6 @@ AM_CPPFLAGS = \
-DEVOLUTION_MODULEDIR=\""$(moduledir)"\" \
-DEVOLUTION_RULEDIR=\""$(privdatadir)"\" \
-DEVOLUTION_UIDIR=\""$(evolutionuidir)"\" \
- -DEVOLUTION_TOOLSDIR=\""$(privlibexecdir)"\" \
-DPREFIX=\""$(prefix)"\" \
-DSYSCONFDIR=\""$(sysconfdir)"\" \
-DDATADIR=\""$(datadir)"\" \
diff --git a/shell/main.c b/shell/main.c
index a74e28ace5..7ce930f6c2 100644
--- a/shell/main.c
+++ b/shell/main.c
@@ -329,7 +329,7 @@ static GOptionEntry entries[] = {
N_("Start in online mode"), NULL },
#ifdef KILL_PROCESS_CMD
{ "force-shutdown", '\0', 0, G_OPTION_ARG_NONE, &force_shutdown,
- N_("Forcibly shut down all Evolution components"), NULL },
+ N_("Forcibly shut down Evolution"), NULL },
#endif
#ifdef DEVELOPMENT
{ "force-migrate", '\0', 0, G_OPTION_ARG_NONE, &force_migrate,
@@ -392,6 +392,33 @@ set_paths (void)
}
#endif
+static void G_GNUC_NORETURN
+shell_force_shutdown (void)
+{
+ gchar *program;
+
+ /* This is not as destructive as it was in the Bonobo era.
+ * The Evolution-Data-Server D-Bus services should not be killed
+ * because other programs may be using them. The alarm daemon is
+ * an autostart program now and Evolution no longer spawns it, so
+ * that should not be killed either. The only thing left to do
+ * really is shoot ourselves. */
+
+ /* XXX Maybe --force-shutdown should be deprecated. */
+
+ program = g_find_program_in_path ("pkill");
+
+ if (program == NULL) {
+ g_printerr ("Could not find `pkill' program in path.\n");
+ exit (1);
+ }
+
+ /* This does not return. */
+ execl (program, "pkill", "evolution", NULL);
+
+ g_assert_not_reached ();
+}
+
static void
shell_window_destroyed_cb (EShell *shell)
{
@@ -475,7 +502,6 @@ main (gint argc, gchar **argv)
#ifdef DEVELOPMENT
gboolean skip_warning_dialog;
#endif
- gchar *filename;
GError *error = NULL;
/* Make ElectricFence work. */
@@ -520,13 +546,8 @@ main (gint argc, gchar **argv)
exit (1);
}
- if (force_shutdown) {
- filename = g_build_filename (
- EVOLUTION_TOOLSDIR, "killev", NULL);
- execl (filename, "killev", NULL);
- /* Not reached */
- exit (0);
- }
+ if (force_shutdown)
+ shell_force_shutdown ();
client = gconf_client_get_default ();
diff --git a/tools/Makefile.am b/tools/Makefile.am
deleted file mode 100644
index d16cd7a4a2..0000000000
--- a/tools/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-if OS_WIN32
-else
-PLATFORM_DEP_TOOLS = \
- killev
-endif
-
-privlibexec_PROGRAMS = \
- $(PLATFORM_DEP_TOOLS)
-
-AM_CPPFLAGS = \
- -DG_LOG_DOMAIN=\"evolution-tools\" \
- -I$(top_srcdir) \
- -I$(top_builddir) \
- -DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \
- -DPREFIX=\""$(prefix)"\" \
- -DSYSCONFDIR=\""$(sysconfdir)"\" \
- -DDATADIR=\""$(datadir)"\" \
- -DLIBDIR=\""$(libdir)"\" \
- $(GNOME_PLATFORM_CFLAGS)
-
-EXTRA_DIST = verify-evolution-install.sh
-
-killev_SOURCES = \
- killev.c
-
-killev_LDADD = \
- $(top_builddir)/widgets/misc/libemiscwidgets.la \
- $(top_builddir)/e-util/libeutil.la \
- $(E_UTIL_LIBS)
-
-CLEANFILES = evolution-addressbook-clean $(BUILT_SOURCES)
-
--include $(top_srcdir)/git.mk
diff --git a/tools/killev.c b/tools/killev.c
deleted file mode 100644
index f272602ac2..0000000000
--- a/tools/killev.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/wait.h>
-
-#include <bonobo/bonobo-exception.h>
-#include <bonobo-activation/bonobo-activation.h>
-#include <glib/gi18n.h>
-#include <libgnome/gnome-util.h>
-
-typedef struct {
- gchar *location;
- GPtrArray *names;
-} KillevComponent;
-
-static GSList *languages = NULL;
-static GHashTable *components;
-
-static gboolean
-kill_process (const gchar *proc_name, KillevComponent *comp)
-{
- gint status, i;
- gchar *command;
- GString *desc;
-
- command = g_strdup_printf (KILL_PROCESS_CMD " -0 %s 2> /dev/null",
- proc_name);
- status = system (command);
- g_free (command);
-
- if (status == -1 || !WIFEXITED (status)) {
- /* This most likely means that KILL_PROCESS_CMD wasn't
- * found, so just bail completely.
- */
- fprintf (stderr, _("Could not execute '%s': %s\n"),
- KILL_PROCESS_CMD, g_strerror (errno));
- exit (1);
- }
-
- if (WEXITSTATUS (status) != 0)
- return FALSE;
-
- desc = g_string_new (NULL);
- for (i = 0; i < comp->names->len; i++) {
- if (i > 0)
- g_string_append (desc, " / ");
- g_string_append (desc, comp->names->pdata[i]);
- }
-
- printf (_("Shutting down %s (%s)\n"), proc_name, desc->str);
- g_string_free (desc, TRUE);
- command = g_strdup_printf (KILL_PROCESS_CMD " -9 %s 2> /dev/null",
- proc_name);
- system (command);
- g_free (command);
- return TRUE;
-}
-
-static const gchar *patterns[] = {
- "%s", "%.16s", "lt-%s", "lt-%.13s", "%s.bin"
-};
-static const gint n_patterns = G_N_ELEMENTS (patterns);
-
-static void
-kill_component (KillevComponent *comp)
-{
- gchar *base_name, *exe_name, *dash;
- gint i;
-
- base_name = g_strdup (comp->location);
- try_again:
- for (i = 0; i < n_patterns; i++) {
- exe_name = g_strdup_printf (patterns[i], base_name);
- if (kill_process (exe_name, comp)) {
- g_free (exe_name);
- g_free (base_name);
- return;
- }
- g_free (exe_name);
- }
-
- dash = strrchr (base_name, '-');
- if (dash && !strcmp (dash + 1, BASE_VERSION)) {
- *dash = '\0';
- goto try_again;
- }
-
- g_free (base_name);
-}
-
-static void
-add_matching_query (const gchar *query)
-{
- Bonobo_ServerInfoList *info_list;
- Bonobo_ServerInfo *info;
- CORBA_Environment ev;
- const gchar *location, *name;
- KillevComponent *comp;
- gint i;
-
- CORBA_exception_init (&ev);
-
- info_list = bonobo_activation_query (query, NULL, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- printf ("Bonobo activation failure: %s\n",
- bonobo_exception_get_text (&ev));
- CORBA_exception_free (&ev);
- return;
- }
-
- for (i = 0; i < info_list->_length; i++) {
- info = &info_list->_buffer[i];
-
- if (strcmp (info->server_type, "exe") != 0)
- continue;
-
- location = info->location_info;
- if (strchr (location, '/'))
- location = strrchr (location, '/') + 1;
-
- comp = g_hash_table_lookup (components, location);
- if (!comp) {
- comp = g_new (KillevComponent, 1);
- comp->location = g_strdup (location);
- comp->names = g_ptr_array_new ();
- g_hash_table_insert (components, comp->location, comp);
- }
-
- name = bonobo_server_info_prop_lookup (info, "name", languages);
- if (name)
- g_ptr_array_add (comp->names, g_strdup (name));
- }
-
- CORBA_free (info_list);
- CORBA_exception_free (&ev);
-}
-
-static void
-add_matching_repo_id (const gchar *repo_id)
-{
- gchar *query;
-
- query = g_strdup_printf ("repo_ids.has ('%s')", repo_id);
- add_matching_query (query);
- g_free (query);
-}
-
-static void
-add_matching_iid (const gchar *iid)
-{
- gchar *query;
-
- query = g_strdup_printf ("iid == '%s'", iid);
- add_matching_query (query);
- g_free (query);
-}
-
-gint
-main (gint argc, gchar **argv)
-{
- const gchar * const *language_names;
-
- bindtextdomain (GETTEXT_PACKAGE, EVOLUTION_LOCALEDIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
-
- gnome_program_init (PACKAGE, VERSION, LIBGNOME_MODULE, argc, argv,
- GNOME_PROGRAM_STANDARD_PROPERTIES,
- NULL);
-
- language_names = g_get_language_names ();
- while (*language_names != NULL)
- languages = g_slist_append (
- languages, (gpointer) *language_names++);
-
- components = g_hash_table_new_full (
- g_str_hash, g_str_equal,
- (GDestroyNotify) NULL,
- (GDestroyNotify) kill_component);
-
- add_matching_iid ("OAFIID:GNOME_Evolution_Calendar_AlarmNotify_Factory:" BASE_VERSION);
- g_hash_table_remove_all (components);
-
- g_hash_table_destroy (components);
-
- return 0;
-}
diff --git a/tools/verify-evolution-install.sh b/tools/verify-evolution-install.sh
deleted file mode 100755
index 32a911009d..0000000000
--- a/tools/verify-evolution-install.sh
+++ /dev/null
@@ -1,640 +0,0 @@
-#!/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-$2}
-
- eval val=\$$1
- if type $val </dev/null 1>/dev/null 2>&1 ; then
- :
- else
- 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
- #strict=$3
-
- eval otherpfx=\`\$$1 --prefix\`
- if test x"$3" = xstrict ; then
- 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
- else
- IFSbak="$IFS"
- ok="$GNOME_PATH:$gl_prefix"
- IFS=":"
- passed=no
-
- for e in $ok; do
- if test x"$e" != x ; then
- if test $otherpfx = $e ; then
- passed=yes;
- fi
- fi
- done
-
- IFS="$IFSbak"
-
- if test x"$passed" = xno ; then
- problem="$2 is not in GNOME_PATH or the same prefix as gnome-libs"
- 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'."
- comment="Try exporting an environment variable 'GNOME_PATH' with the prefix of $2."
- problem
- fi
- 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
-
- base=$1.oafinfo
- search="${oaf_prefix}/share/oaf:$OAF_INFO_PATH"
- IFSback="$IFS"
- IFS=":"
- ok=no
-
- for ping in $search ; do
- if test x"$ping" != x ; then
- if test -f $ping/$base ; then
- file=$ping/$base
- ok=yes
- fi
- fi
- done
-
- IFS="$IFSback"
-
- if test x$ok = xno ; then
- problem="$1.oafinfo isn't installed into Gnome's prefix or in OAF_INFO_PATH"
- 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. You may also add the
-location of $1.oafinfo to the environment variable OAF_INFO_PATH"
- problem
- fi
-
- iids=`cat $file |grep iid= |sed -e 's,.*iid="\([^"]*\)".*,\1,'`
- IFS="
-"
-
- tempfile="temp-$$-verifier"
- for iid in $iids ; do
- #echo "Attempting to activate IID \"$iid\"..."
- $OAF_CLIENT -qs "iid == '$iid'" >$tempfile
- result=`cat $tempfile |grep exception`
- if test x"$result" != x ; then
- problem="The component $2 (in $file) couldn't be activated by OAF"
- rpmsolution="Verify that $file is valid and that oaf and $2 are correctly installed."
- debsolution="Verify that $file is valid and that oaf and $2 are correctly installed."
- srcsolution="Verify that $file is valid and that oaf and $2 are correctly installed."
- comment="$OAF_CLIENT reported this:
-`cat $tempfile`"
- rm -f $tempfile
- problem
- fi
- done
- rm -f $tempfile
-
- IFS="$IFSback"
-}
-
-check_bin() {
- #name=$1
- #othername=$2
-
- IFSbak="$IFS"
- IFS=":"
- passed=no
- exepath=
-
- for ping in $PATH; do
- if test x"$ping" != x -a -x $ping/$1 ; then
- if test x"$passed" = xyes ; then
- problem="The binary $1 is installed in more than one location"
- rpmsolution="Make sure that you only have one copy of the package installed"
- debsolution="Make sure that you only have one copy of the package installed"
- srcsolution="Make sure that you only have one copy of the package installed"
- comment="You probably have a package that was installed in two different prefixes,
-either from source twice or from source and from RPM/deb. Remove the older copy.
-(Note: \"make uninstall\" works on tarballs but may damage your gettext installation)"
- problem
- fi
- passed=yes;
- exepath="$ping/$1"
- fi
- done
-
- IFS="$IFSbak"
-
- if test x"$passed" = xno ; then
- problem="The binary $1 isn't in your PATH"
- 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
-
- lddfile=temp-$$-verify-ldd
- $LDD $exepath </dev/null >$lddfile 2>/dev/null
-
- if test x$? != x0 ; then
- problem="The binary $1 isn't linked correctly"
- rpmsolution="Make sure that all its dependencies are installed correctly"
- debsolution="Make sure that all its dependencies are installed correctly"
- srcsolution="Recompile $2 and make sure that it links correctly."
- comment="LDD reported the following:
-`cat $lddfile`
-"
- problem
- fi
-
- IFS="
-"
-
- use_bonobox=no
- use_bonobo=no
-
- for ping in `cat $libfile` ; do
- libname=`echo "$ping" |sed -e 's,^@@\([^@][^@]*\)@@[^@][^@]*@@,\1,'`
- libpfx=`echo "$ping" |sed -e 's,^@@[^@][^@]*@@\([^@][^@]*\)@@,\1,'`
-
- match="`cat $lddfile |grep \"${libname}\.\"`"
-
- if test x"$match" != x ; then
- theirlib="`echo $match |sed -e 's,.*=> \([^ ]*\).*$,\1,'`"
- theirdir="`dirname $theirlib`"
-
- if test x"$theirdir" != x"$libpfx" ; then
- problem="The binary $1 is linked against the wrong copy of $libname"
- rpmsolution="The package owning $libname is probably installed twice. Make sure that it's installed correctly."
- debsolution="The package owning $libname is probably installed twice. Make sure that it's installed correctly."
- srcsolution="The package owning $libname is probably installed twice. Make sure that it's installed correctly."
- comment="The version of $libname in $libpfx was expected"
- problem
- elif test x"$libname" = xlibbonobox ; then
- use_bonobox=yes
- elif test x"$libname" = xlibbonobo ; then
- use_bonobo=yes
- fi
- fi
- done
-
- rm -f $lddfile
- IFS="$IFSback"
-
- if test x"$need_bonobox" = xyes -a x"$use_bonobo" = xyes -a x"$use_bonobox" != xyes ; then
- problem="The binary $1 is linked against Bonobo but not Bonobo-X"
- rpmsolution="Get the newest possible version of $2, or install it from source if that fails"
- debsolution="Get the newest possible version of $2, or install it from source if that fails"
- srcsolution="Run './config.status --recheck' in $2's source directory and reinstall it"
- 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
-}
-
-add_lib_to_check() {
- #lib = $1
- #path = $2
-
- echo "@@${1}@@${2}@@" >>$libfile
-}
-
-########################################
-
-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
-libfile=temp-$$-libs-verifier
-
-if test -d /var/lib/rpm ; then
- rpmsystem=yes
- RPM=${RPM_PROG-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
-
-if test x"$LDD" = x ; then
- if ldd -r /lib/libc.so </dev/null 1>/dev/null 2>&1 ; then
- LDD="ldd -r"
- elif type ldd </dev/null 1>/dev/null 2>&1; then
- LDD="ldd"
- else
- problem="Cannot find ldd"
- rpmsolution="Make sure that glibc is correctly installed!?!?!?"
- debsolution="Make sure that glibc is correctly installed!?!?!?"
- srcsolution="See above"
- comment="If you think that you have ldd, export an environment
-vairable LDD that points to it."
- problem
- fi
-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"
-add_lib_to_check libgnome `$GNOME_CONFIG --libdir`
-add_lib_to_check libgnomeui `$GNOME_CONFIG --libdir`
-
-#libunicode
-check_config UNICODE_CONFIG unicode-config libunicode
-check_prefix UNICODE_CONFIG libunicode
-versionparse2 "`$UNICODE_CONFIG --version`" "0.4" libunicode
-add_lib_to_check libunicode "`$UNICODE_CONFIG --prefix`/lib"
-
-#ORBit
-check_config ORBIT_CONFIG orbit-config ORBit
-check_prefix ORBIT_CONFIG ORBit
-add_lib_to_check libORBit "`$ORBIT_CONFIG --prefix`/lib"
-
-#oaf
-check_config OAF_CONFIG oaf-config oaf
-check_prefix OAF_CONFIG oaf
-versionparse3 "`$OAF_CONFIG --version`" "0.4.0" "oaf"
-add_lib_to_check liboaf "`$OAF_CONFIG --prefix`/lib"
-check_bin oafd
-
-OAF_CLIENT=${OAF_CLIENT-oaf-client}
-if type $OAF_CLIENT </dev/null >/dev/null 2>&1 ; then
- :
-else
- problem="oaf-client couldn't be found"
- rpmsolution="Install the 'oaf-devel' package"
- debsolution="Install the oaf development libraries"
- srcsolution="Make sure that oaf is installed correctly"
- comment="If you think you have oaf-client installed, try exporting an
-environment variable OAF_CLIENT pointing to it"
- problem
-fi
-
-oaf_prefix=`$OAF_CONFIG --prefix`
-check_oafinfo oafd oaf
-
-#gconf
-#check_config GCONF_CONFIG gconf-config GConf
-#check_prefix GCONF_CONFIG GConf
-#versionparse2 "`$GCONF_CONFIG --version`" "0.5" GConf
-#if type gconfd-1 </dev/null >/dev/null 2>/dev/null; then
-# check_oafinfo gconfd-1 GConf
-# check_bin gconfd-1
-#else
-# check_oafinfo gconfd GConf
-# check_bin gconfd
-#fi
-#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
-add_lib_to_check libgnomevfs "`$GNOME_CONFIG --libdir vfs`"
-
-#gnome print
-check_module2 print gnome-print "0.20"
-check_no_gnorba "`$GNOME_CONFIG --libs print`" gnome-print
-add_lib_to_check libgnomeprint "`$GNOME_CONFIG --libdir print`"
-
-#bonobo
-check_module2 bonobo bonobo "0.15"
-check_prefix "GNOME_CONFIG bonobo" bonobo strict
-add_lib_to_check libbonobo "`$GNOME_CONFIG --libdir bonobo`"
-
-if gnome-config --modversion bonobox </dev/null 1>/dev/null 2>&1 ; then
- need_bonobox=yes
- check_module2 bonobox bonobo "0.16"
- check_prefix "GNOME_CONFIG bonobox" bonobo strict
- add_lib_to_check libbonobox "`$GNOME_CONFIG --libdir bonobox`"
-fi
-
-check_oafinfo audio-ulaw bonobo
-check_bin bonobo-audio-ulaw bonobo
-check_no_gnorba "`$GNOME_CONFIG --libs bonobo`" bonobo
-
-#gtkhtml
-check_module2 gtkhtml GtkHTML "0.5"
-add_lib_to_check libgtkhtml "`$GNOME_CONFIG --libdir html`"
-check_oafinfo html-editor-control GtkHTML
-check_bin html-editor-control GtkHTML
-check_no_gnorba "`$GNOME_CONFIG --libs gtkhtml`" GtkHTML
-
-#evolution
-
-if test x"$EVOLUTION_PREFIX" = x ; then
- IFSback="$IFS"
- IFS=":"
- passed=no
-
- for ping in $PATH ; do
- if test x"$ping" != x -a -x $ping/evolution ; then
- if test x"$passed" = xyes ; then
- problem="Evolution is installed in more than one prefix"
- rpmsolution="Make sure that you only have one copy of Evolution installed"
- debsolution="Make sure that you only have one copy of Evolution installed"
- srcsolution="Make sure that you only have one copy of Evolution installed"
- comment="Evolution was probably installed in two different prefixes,
-either from source twice or from source and from RPM/deb. Remove the older copy.
-(Note: \"make uninstall\" works on tarballs but may damage your gettext installation)"
- problem
- else
- passed=yes
- e_prefix=$ping
- fi
- fi
- done
-
- IFS="$IFSbak"
-
- if test x"$passed" != xyes ; then
- problem="Evolution does not appear to have been installed"
- rpmsolution="Make sure that Evolution was installed properly (rpm -V evolution)"
- debsolution="Make sure that Evolution was installed properly"
- srcsolution="Run 'make install' in the evolution source directory"
- comment="I couldn't find evolution in this path: $PATH"
- problem
- fi
-
- e_prefix="`echo $e_prefix |sed -e 's,\(.*\)/[^/][^/]*,\1,'`"
- echo "Guessed that evolution is installed in prefix $e_prefix"
-else
- e_prefix="$EVOLUTION_PREFIX"
-fi
-
-add_lib_to_check libcal-client "$e_prefix/lib"
-add_lib_to_check libcamel "$e_prefix/lib"
-add_lib_to_check libcamelvee "$e_prefix/lib/evolution/camel-providers/0.5"
-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
-rm -f $libfile
-echo "Your Gnome system appears to be properly set up. Enjoy Evolution!"
-exit 0