From 3dee5a41f00b0dcde1622849a8a5673e51ab582b Mon Sep 17 00:00:00 2001 From: nobody Date: Mon, 25 Nov 2002 03:26:07 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'ChangeLog'. svn path=/tags/ChangeLog/; revision=18909 --- tools/.cvsignore | 8 - tools/Makefile.am | 49 --- tools/csv2vcard | 236 ------------- tools/evolution-addressbook-abuse.c | 139 -------- tools/evolution-addressbook-clean.in | 24 -- tools/evolution-addressbook-export.c | 67 ---- tools/evolution-addressbook-import.c | 93 ----- tools/evolution-move-tasks | 135 -------- tools/killev | 142 -------- tools/verify-evolution-install.sh | 640 ----------------------------------- 10 files changed, 1533 deletions(-) delete mode 100644 tools/.cvsignore delete mode 100644 tools/Makefile.am delete mode 100755 tools/csv2vcard delete mode 100644 tools/evolution-addressbook-abuse.c delete mode 100644 tools/evolution-addressbook-clean.in delete mode 100644 tools/evolution-addressbook-export.c delete mode 100644 tools/evolution-addressbook-import.c delete mode 100755 tools/evolution-move-tasks delete mode 100755 tools/killev delete mode 100755 tools/verify-evolution-install.sh (limited to 'tools') diff --git a/tools/.cvsignore b/tools/.cvsignore deleted file mode 100644 index 60825eed01..0000000000 --- a/tools/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -Makefile -Makefile.in -evolution-addressbook-abuse -evolution-addressbook-clean -evolution-addressbook-import -evolution-addressbook-export -.deps -.libs \ No newline at end of file diff --git a/tools/Makefile.am b/tools/Makefile.am deleted file mode 100644 index a2de0296a6..0000000000 --- a/tools/Makefile.am +++ /dev/null @@ -1,49 +0,0 @@ -bin_SCRIPTS = \ - csv2vcard \ - evolution-move-tasks \ - evolution-addressbook-clean \ - killev - -bin_PROGRAMS = \ - evolution-addressbook-import \ - evolution-addressbook-export - -noinst_PROGRAMS = evolution-addressbook-abuse - -INCLUDES = \ - -DG_LOG_DOMAIN=\"evolution-tools\" \ - -I$(top_srcdir) \ - -I$(top_builddir) \ - -DEVOLUTION_BINDIR=\""$(bindir)"\" \ - -DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \ - -I$(top_srcdir)/addressbook \ - -I$(top_srcdir)/addressbook/backend \ - -I$(top_builddir)/addressbook/backend \ - $(GNOME_FULL_CFLAGS) - -EXTRA_DIST = $(bin_SCRIPTS) verify-evolution-install.sh \ - evolution-addressbook-clean.in - -evolution_addressbook_import_LDADD = \ - $(GNOME_FULL_LIBS) \ - $(top_builddir)/addressbook/backend/ebook/libebook.la \ - $(top_builddir)/camel/libcamel.la \ - $(top_builddir)/e-util/ename/libename.la \ - $(top_builddir)/libversit/libversit.a \ - $(top_builddir)/e-util/libeutil.la \ - $(top_builddir)/widgets/menus/libmenus.la - -evolution_addressbook_export_LDADD = \ - $(evolution_addressbook_import_LDADD) - -evolution_addressbook_abuse_LDADD = \ - $(evolution_addressbook_import_LDADD) - -CLEANFILES = evolution-addressbook-clean - - -evolution-addressbook-clean: evolution-addressbook-clean.in Makefile -## Use sed and then mv to avoid problems if the user interrupts. - sed -e 's?\@EVOLUTION_BINDIR\@?$(bindir)?g' \ - < $(srcdir)/evolution-addressbook-clean.in > evolution-addressbook-clean.tmp \ - && mv evolution-addressbook-clean.tmp evolution-addressbook-clean diff --git a/tools/csv2vcard b/tools/csv2vcard deleted file mode 100755 index b968fbd9c3..0000000000 --- a/tools/csv2vcard +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/perl -w -# -# cvs2vcard - Script to convert Outlook CSV files into VCard files -# suitable to be imported into Evolution. -# -# Copyright (C) 2001 Ximian, Inc. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of version 2 of the GNU General Public -# License as published by the Free Software Foundation. -# -# 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 -# General Public License for more details. -# -# You should have received a copy of the GNU General Public -# License along with this program; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. -# -# Author: Michael MacDonald -# - -use strict; -use diagnostics; -use Text::ParseWords; - -sub usage -{ - print STDERR << "--EndOfUsage"; - -Takes a CSV-formatted list of contacts from Outlook and attempts to -convert it into a list of VCards suitable for import into Evolution. - -Usage: $0 [infile outfile] - ---EndOfUsage - - exit; -} - -sub is_recognized_format -{ - my $line = shift; - - # Making some assumptions here... Prolly OK. - return $line =~ /(First Name|Middle Name|Last Name)/; -} - -sub map_columns -{ - my $line = shift; - - my @names = parse_line(',', 0, $line); - - my $ctr = 0; - my %fieldmap = map { $_ => $ctr++ } @names; - - return %fieldmap; -} - -sub build_vcard_attr_from_def -{ - my ($def, $fields, $map) = @_; - - # Valid chars for lookup (from Outlook CSV) are - # A-Za-z0-9_-'/ - # Valid chars for formatting of attr are - # \s,| - my @lookup = map { s/=0A$//; s/[^\w\s\-'\/]//; $_; } split /[\s,]*\|[\s,]*/, $def; - - foreach my $el (@lookup) { - unless (defined($map->{ $el })) { - print STDERR "$el is undefined\n"; - next; - } - if (defined($fields->[$map->{ $el }])) { - unless ($fields->[$map->{ $el }] =~ /(^$|0\/0\/00)/) { - $def =~ s/$el/$fields->[$map->{ $el }]/; - } else { - $def =~ s/((?<=\|)\s*)?$el(\s*?(?=\|))?(=0A)?,?//; - } - } else { - $def =~ s/((?<=\|)\s*)?$el(\s*?(?=\|))?(=0A)?,?//; - } - } - # Get rid of field delimiters - $def =~ s/\|//g; - # Snip off any trailing semicolons or whitespace - $def =~ s/[\s;]*$//; - - return $def; -} - -sub build_vcard_from_line { - my ($line, %map) = @_; - my %vcard; - - my @fields = parse_line(',', 0, $line); - - my %vcard_def = ( FN => 'Title |First Name |Middle Name |Last Name |Suffix', - N => 'Last Name| Suffix|;First Name|;Middle Name|;Title', - 'ADR;WORK' => 'PO Box|;Business Street 2|;Business Street|;Business City|;Business State|;Business Postal Code|;Business Country', - 'LABEL;QUOTED-PRINTABLE;WORK' => 'PO Box |Business Street=0A|Business Street 2=0A|Business City,| Business State| Business Postal Code=0A|Business Country', - 'TEL;WORK;VOICE' => 'Business Phone', - 'TEL;WORK;VOICE2' => 'Business Phone 2', - 'TEL;WORK;FAX' => 'Business Fax', - 'TEL;WORK;COMPANY' => 'Company Main Phone', - 'ADR;HOME' => ';Home Street 2|;Home Street|;Home City|;Home State|;Home Postal Code|;Home Country', - 'LABEL;QUOTED-PRINTABLE;HOME' => 'Home Street=0A|Home Street 2=0A|Home City,| Home State| Home Postal Code=0A|Home Country', - 'TEL;HOME;VOICE' => 'Home Phone', - 'TEL;HOME;VOICE2' => 'Home Phone 2', - 'TEL;HOME;FAX' => 'Home Fax', - 'ADR;POSTAL' => ';Other Street 2|;Other Street|;Other City|;Other State|;Other Postal Code|;Other Country', - 'LABEL;QUOTED-PRINTABLE;POSTAL' => 'Other Street=0A|Other Street 2=0A|Other City,| Other State| Other Postal Code=0A|Other Country', - 'TEL;VOICE' => 'Other Phone', - 'TEL;FAX' => 'Other Fax', - 'TEL;CELL' => 'Mobile Phone', - 'TEL;CAR' => 'Car Phone', - 'TEL;PAGER' => 'Pager', - 'TEL;PREF' => 'Primary Phone', - 'TEL;ISDN' => 'ISDN', - 'TEL;X-EVOLUTION-CALLBACK' => 'Callback', - 'TEL;X-EVOLUTION-TTYTDD' => 'TTY/TDD Phone', - 'TEL;X-EVOLUTION-TELEX' => 'Telex', - 'TEL;X-EVOLUTION-RADIO' => 'Radio Phone', - 'EMAIL;INTERNET' => 'E-mail Address', - 'EMAIL;INTERNET2' => 'E-mail 2 Address', - 'EMAIL;INTERNET3' => 'E-mail 3 Address', - ORG => 'Company|;Department', - TITLE => 'Job Title', - ROLE => 'Profession', - 'X-EVOLUTION-ASSISTANT' => "Assistant's Name", - 'TEL;X-EVOLUTION-ASSISTANT' => "Assistant's Phone", - 'X-EVOLUTION-SPOUSE' => 'Spouse', - 'X-EVOLUTION-ANNIVERSARY' => 'Anniversary', - 'X-EVOLUTION-MANAGER' => "Manager's Name", - 'X-EVOLUTION-OFFICE' => 'Office Location', - BDAY => 'Birthday', - NOTE => 'Notes', - FBURL => 'Internet Free Busy', - URL => 'Web Page', - ); - - foreach my $key (keys(%vcard_def)) { - my $attr = build_vcard_attr_from_def($vcard_def{ $key }, \@fields, \%map); - if (defined($attr)) { - $vcard{ $key } = $attr unless ($attr =~ /^$/); - } - } - - return %vcard; -} - -sub print_vcard_to_fh -{ - my ($fh, %vcard) = @_; - - print $fh "BEGIN:VCARD\n"; - foreach my $key (keys(%vcard)) { - # Dirty hack because Evolution's vcard stores multiple email addrs - # with same sttribute, hence key collision. Bleah. - # Ugh! Same deal for multiple phones... (eg. bus. phone) - # - # And finally, while we're special-casing... Outlook exports dates - # differently, so munge 'em if we find 'em. - if ($key =~ /EMAIL;INTERNET/o) { - (my $temp = $key) =~ s/\d$//; - print $fh "$temp:$vcard{ $key }\n"; - } elsif ($key =~ /TEL;(HOME|WORK)/o) { - (my $temp = $key) =~ s/\d$//; - print $fh "$temp:$vcard{ $key }\n"; - } elsif ($key =~ /(BDAY|X\-EVOLUTION\-ANNIVERSARY)/o) { - my $temp = $vcard{ $key }; - if ($temp =~ /(\d\d)\/(\d\d)\/(\d\d)/) { - # Y2k !! MS Didn't learn anything. - # Hope no one was born before 1915 - if ((1900 + $3) < 1915) { - print $fh "$key:20$3-$1-$2\n"; - } else { - print $fh "$key:19$3-$1-$2\n"; - } - } else { - # Something's funky... Just delete the attribute - print STDERR "Couldn't figure out what to do with $key:$vcard{ $key }\n"; - delete($vcard{ $key }); - } - } else { - print $fh "$key:$vcard{ $key }\n"; - } - } - print $fh "END:VCARD\n\n"; -} - -my $in = $ARGV[0]; -my $out = $ARGV[1]; - -usage() unless(defined($in) && defined($out)); - -open (IN, $in) - or die "Can't open($in): $!\n"; - -open (OUT, ">$out") - or die "Can't open($out): $!\n"; - -my $linectr = 0; -my %map; - -while (my $line = ) { - $line =~ s/\r//g; - $line =~ s/\n$//; - if ($linectr == 0) { - $linectr++; - usage() unless is_recognized_format($line); - %map = map_columns($line); - #if ($line =~ /\r\n$/) { - # print STDERR "Apparenlty found DOS-style EOL indicators...\n"; - $/ = "\r\n"; - #} - } else { - $linectr++; - while ($line =~ /^(("([^"]|\n|"")*")?,)*"([^"]|\n|"")*$/) { - my $temp = $line; - $line = ; - $line =~ s/\r//g; - $line =~ s/\n$//; - $line = "$temp $line"; - } - my %vcard = build_vcard_from_line($line, %map); - print_vcard_to_fh(\*OUT, %vcard); - } -} - -close(IN); -close(OUT); diff --git a/tools/evolution-addressbook-abuse.c b/tools/evolution-addressbook-abuse.c deleted file mode 100644 index 4ba7bfc5ee..0000000000 --- a/tools/evolution-addressbook-abuse.c +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ - -#include - -#include -#include -#include -#include - -static int cards_to_add_total = 1000; -static int cards_to_add = 50; -static int call_count = 0; - -static gchar * -make_random_string (void) -{ - const gchar *elements = " abcdefghijklmnopqrstuvwxyz1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - gint len = strlen (elements); - gint i, N = 5 + (random () % 10); - gchar *str = g_malloc (N+1); - - for (i = 0; i < N; ++i) { - str[i] = elements[random () % len]; - } - str[i] = '\0'; - - return str; -} - -static gchar * -make_random_vcard (void) -{ - gchar *fa = make_random_string (); - gchar *name = make_random_string (); - gchar *email = make_random_string (); - gchar *org = make_random_string (); - - gchar *vcard; - - vcard = g_strdup_printf ("BEGIN:VCARD\n" - "X-EVOLUTION-FILE-AS:%s\n" - "N:%s\n" - "EMAIL;INTERNET:%s\n" - "ORG:%s\n" - "END:VCARD", - fa, name, email, org); - g_free (fa); - g_free (name); - g_free (email); - g_free (org); - - return vcard; -} - -/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */ - -static void -add_cb (EBook *book, EBookStatus status, const char *id, gpointer closure) -{ - switch (status) { - case E_BOOK_STATUS_SUCCESS: - --cards_to_add_total; - g_message ("succesful add! (%d remaining)", cards_to_add_total); - if (cards_to_add_total <= 0) - gtk_exit (0); - break; - default: - g_message ("something went wrong..."); - gtk_exit (status); - break; - } -} - -static void -use_addressbook (EBook *book, EBookStatus status, gpointer closure) -{ - gint i; - - if (book == NULL || status != E_BOOK_STATUS_SUCCESS) - g_error (_("Error loading default addressbook.")); - - for (i = 0; i < cards_to_add; ++i) { - gchar *vcard = make_random_vcard (); - ECard *card = e_card_new (vcard); - g_message ("adding %d", i); - e_book_add_card (book, card, add_cb, NULL); - g_free (vcard); - gtk_object_unref (GTK_OBJECT (card)); - } - - gtk_object_unref (GTK_OBJECT (book)); -} - -static gint -abuse_timeout (gpointer foo) -{ - EBook *book = e_book_new (); - e_book_load_default_book (book, use_addressbook, NULL); - - ++call_count; - g_message ("timeout!"); - return call_count < cards_to_add_total / cards_to_add; -} - -int -main (int argc, char *argv[]) -{ - char *filename = NULL; - - struct poptOption options[] = { - { "input-file", '\0', POPT_ARG_STRING, &filename, 0, N_("Input File"), NULL }, - { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &oaf_popt_options, 0, NULL, NULL }, - POPT_AUTOHELP - { NULL, '\0', 0, NULL, 0, NULL, NULL } - }; - - if (getenv ("ABUSE_THE_WOMBAT") == NULL) { - g_print ("You probably don't want to use this program.\n" - "It isn't very nice.\n"); - exit(0); - } - - bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR); - textdomain (PACKAGE); - - gnome_init_with_popt_table ("evolution-addressbook-clean", "0.0", - argc, argv, options, 0, NULL); - - oaf_init (argc, argv); - - if (bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE) - g_error (_("Could not initialize Bonobo")); - - gtk_timeout_add (20, abuse_timeout, NULL); - - bonobo_main (); - - return 0; -} diff --git a/tools/evolution-addressbook-clean.in b/tools/evolution-addressbook-clean.in deleted file mode 100644 index ec407296da..0000000000 --- a/tools/evolution-addressbook-clean.in +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/perl -w - -sub do_system -{ - my ($command) = @_; - system ($command); - if ($? != 0) { - die "Command failed: $command"; - } -} - -$filename = `@EVOLUTION_BINDIR@/evolution-addressbook-export`; -if ($? != 0) { - $! = $?; - die $!; -} - -$HOME = $ENV{"HOME"}; - -system ("@EVOLUTION_BINDIR@/killev"); -do_system ("/bin/mv ${HOME}/evolution/local/Contacts/addressbook.db ${HOME}/evolution/local/Contacts/addressbook-backup.db"); -do_system ("@EVOLUTION_BINDIR@/evolution-addressbook-import --input-file $filename"); -do_system ("/bin/rm $filename"); - diff --git a/tools/evolution-addressbook-export.c b/tools/evolution-addressbook-export.c deleted file mode 100644 index e21053b300..0000000000 --- a/tools/evolution-addressbook-export.c +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ - -#include - -#include -#include -#include -#include -#include -#include - -static void -save_cards (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure) -{ - char *filename = closure; - char *vcard; - int result; - /* This has to be an array so that it's not const. */ - char tmpname[] = "/tmp/evo-addressbook-tmp.XXXXXX"; - - vcard = e_card_list_get_vcard (cards); - - if (filename) - result = e_write_file (filename, vcard, O_CREAT | O_EXCL); - else - result = e_write_file_mkstemp (tmpname, vcard); - printf (tmpname); - sync(); - gtk_exit (result); -} - -static void -use_addressbook (EBook *book, gpointer closure) -{ - if (book == NULL) - g_error (_("Error loading default addressbook.")); - e_book_simple_query (book, "(contains \"x-evolution-any-field\" \"\")", save_cards, closure); -} - -int -main (int argc, char *argv[]) -{ - char *filename = NULL; - - struct poptOption options[] = { - { "output-file", '\0', POPT_ARG_STRING, &filename, 0, N_("Output File"), NULL }, - { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &oaf_popt_options, 0, NULL, NULL }, - POPT_AUTOHELP - { NULL, '\0', 0, NULL, 0, NULL, NULL } - }; - - bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR); - textdomain (PACKAGE); - - gnome_init_with_popt_table ("evolution-addressbook-clean", "0.0", - argc, argv, options, 0, NULL); - oaf_init (argc, argv); - - if (bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE) - g_error (_("Could not initialize Bonobo")); - - e_book_use_default_book (use_addressbook, filename); - - bonobo_main (); - - return 0; -} diff --git a/tools/evolution-addressbook-import.c b/tools/evolution-addressbook-import.c deleted file mode 100644 index 60180fb883..0000000000 --- a/tools/evolution-addressbook-import.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ - -#include - -#include -#include -#include -#include - -static int exec_ref_count = 0; - -static void -ref_executable (void) -{ - exec_ref_count ++; -} - -static void -unref_executable (void) -{ - exec_ref_count --; - if (exec_ref_count == 0) - gtk_exit (0); -} - -static void -add_cb (EBook *book, EBookStatus status, const char *id, gpointer closure) -{ - switch (status) { - case E_BOOK_STATUS_SUCCESS: - unref_executable (); - break; - default: - gtk_exit (status); - break; - } -} - -static void -use_addressbook (EBook *book, gpointer closure) -{ - GList *cards, *list; - char *filename = closure; - - if (book == NULL) - g_error (_("Error loading default addressbook.")); - - cards = e_card_load_cards_from_file (filename); - - ref_executable (); - - for (list = cards; list; list = list->next) { - ref_executable (); - e_book_add_card (book, list->data, add_cb, closure); - } - sync(); - - unref_executable (); -} - -int -main (int argc, char *argv[]) -{ - char *filename = NULL; - - struct poptOption options[] = { - { "input-file", '\0', POPT_ARG_STRING, &filename, 0, N_("Input File"), NULL }, - { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &oaf_popt_options, 0, NULL, NULL }, - POPT_AUTOHELP - { NULL, '\0', 0, NULL, 0, NULL, NULL } - }; - - bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR); - textdomain (PACKAGE); - - gnome_init_with_popt_table ("evolution-addressbook-clean", "0.0", - argc, argv, options, 0, NULL); - - if (filename == NULL) { - g_error (_("No filename provided.")); - } - - oaf_init (argc, argv); - - if (bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE) - g_error (_("Could not initialize Bonobo")); - - e_book_use_default_book (use_addressbook, filename); - - bonobo_main (); - - return 0; -} diff --git a/tools/evolution-move-tasks b/tools/evolution-move-tasks deleted file mode 100755 index 05c27cbce2..0000000000 --- a/tools/evolution-move-tasks +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/env perl -# The above is a portable way to invoke Perl, according to the GNU Autotools -# book. It is useful since we don't know where perl is installed. -# -# evolution-move-tasks: a Perl script to move tasks from the Calendar folder -# to the new Tasks folder. -# - -use diagnostics; - -# You may have to change this if your Evolution files are somewhere else. -$EVOLUTION_DIR = "$ENV{'HOME'}/evolution"; - -$CALENDAR_DIR = "$EVOLUTION_DIR/local/Calendar"; -$TASKS_DIR = "$EVOLUTION_DIR/local/Tasks"; - -# Create the Tasks folder if needed. -&EnsureTasksFolderExists ($TASKS_DIR); - -# Get any tasks from the calendar .ics file. -$tasks = &LoadTasks ("$CALENDAR_DIR/calendar.ics"); - -# Get any tasks already in the tasks .ics file. -$tasks .= &LoadTasks ("$TASKS_DIR/tasks.ics"); - -# Create a new Tasks .ics file containing all the tasks. -&OutputTasks ("$TASKS_DIR/tasks.new", $tasks); - -# Move the existing tasks file to a backup. -if (-e "$TASKS_DIR/tasks.ics") { - rename "$TASKS_DIR/tasks.ics", "$TASKS_DIR/tasks.bak" - || die "Can't rename $TASKS_DIR/tasks.ics to $TASKS_DIR/tasks.bak"; -} - -# Move the new file into position. -rename "$TASKS_DIR/tasks.new", "$TASKS_DIR/tasks.ics" - || die "Can't rename $TASKS_DIR/tasks.new to $TASKS_DIR/tasks.ics"; - -# Move the new Calendar file (without the Tasks) into position. -rename "$CALENDAR_DIR/calendar.ics.new", "$CALENDAR_DIR/calendar.ics" - || die "Can't rename $TASKS_DIR/tasks.new to $TASKS_DIR/tasks.ics"; - -0; - - -# If the evolution/local/Tasks folder does not exist, this creates it and -# creates the metadata XML file. -sub EnsureTasksFolderExists { - my ($tasks_dir) = @_; - - return if (-e $tasks_dir); - - print "Creating Tasks folder in: $tasks_dir\n"; - - mkdir ($tasks_dir, 0777) - || die "Can't create Tasks folder directory: $tasks_dir"; - - $metadata = "$tasks_dir/folder-metadata.xml"; - open (METADATA, ">$metadata") - || die "Can't create metadata file: $metadata"; - - print METADATA < - - tasks - Tasks - -EOF - - close (METADATA); -} - - -sub LoadTasks { - my ($icalendar_file) = @_; - - return "" if (! -e $icalendar_file); - - open (ICSFILE, $icalendar_file) - || die "Can't open iCalendar file: $icalendar_file"; - - open (NEWICSFILE, ">$icalendar_file.new") - || die "Can't open iCalendar file: $icalendar_file.new"; - - $tasks = ""; - $in_task = 0; - while () { - if ($in_task) { - $tasks .= $_; - - if (m/^END:VTODO/) { - $in_task = 0; - } - - } else { - if (m/^BEGIN:VTODO/) { - print "Found task\n"; - - $tasks .= $_; - $in_task = 1; - } else { - print NEWICSFILE $_; - } - } - } - - close (NEWICSFILE); - close (ICSFILE); - - return $tasks; -} - - -sub OutputTasks { - my ($icalendar_file, $tasks) = @_; - - open (ICSFILE, ">$icalendar_file") - || die "Can't create iCalendar file: $icalendar_file"; - - print ICSFILE <) { - if (/type exe, location (.*)$/) { - &add_exe ($1); - } - } - close (FACTORY_QUERY); -} - -# we need to do separate queries for iids because cvs OAF loses when -# you do more than one 'iid ==' separated by OR's. It returns a list -# of all CORBA servers. Cool, eh? - -sub run_iid_query { - my $iid_query; - - for ($i = 0; $i < @iids; $i++) { - $iid_query = "iid == '$iids[$i]'"; - - #printf ("$iid_query\n"); - - open (QUERY, "oaf-client -q -s \"$iid_query\"|"); - while () { - if (/type exe, location (.*)$/) { - &add_exe ($1); - } - elsif (/type factory, location (.*)$/) { - &add_factory ($1); - } - } - close (QUERY); - } -} - -sub run_query { - my ($idl_query, $iid_query, $oaf_query); - - $idl_query = ""; - for ($i = 0; $i < @idls; $i++) { - $idl_query .= "repo_ids.has('$idls[$i]')"; - $idl_query .= " OR " if ($i < @idls - 1); - } - - #$iid_query = ""; - #for ($i = 0; $i < @iids; $i++) { - # $iid_query .= "iid == '$iids[$i]'"; - # $iid_query .= " OR " if ($i < @iids - 1); - #} - - $oaf_query = $idl_query; - #$oaf_query .= " OR $iid_query" if (@iids > 0); - - #printf ("$oaf_query\n"); - - open (QUERY, "oaf-client -q -s \"$oaf_query\"|"); - - while () { - if (/type exe, location (.*)$/) { - &add_exe ($1); - } - elsif (/type factory, location (.*)$/) { - &add_factory ($1); - } - } - close (QUERY); -} - -&run_query (); -&run_iid_query (); -&kill_exes(); 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 -# -# 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 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 $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 2>/dev/null /dev/null 2>/dev/null /dev/null 2>&1 ; then - LDD="ldd -r" - elif type ldd /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 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 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 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 -- cgit v1.2.3