diff options
author | Serkan Kaba <serkan@gentoo.org> | 2009-05-31 11:47:12 +0000 |
---|---|---|
committer | Serkan Kaba <serkan@gentoo.org> | 2009-05-31 11:47:12 +0000 |
commit | 2dcb836c8e30cd3c8250b9048db2835f462f10ed (patch) | |
tree | 88b5da772378aa015e6420f1a82f2fe03b0f0b79 /app-text/gnome-spell | |
parent | Version bump. (diff) | |
download | gentoo-2-2dcb836c8e30cd3c8250b9048db2835f462f10ed.tar.gz gentoo-2-2dcb836c8e30cd3c8250b9048db2835f462f10ed.tar.bz2 gentoo-2-2dcb836c8e30cd3c8250b9048db2835f462f10ed.zip |
Revbump to fix critical error.
(Portage version: 2.2_rc33/cvs/Linux x86_64)
Diffstat (limited to 'app-text/gnome-spell')
-rw-r--r-- | app-text/gnome-spell/ChangeLog | 10 | ||||
-rw-r--r-- | app-text/gnome-spell/files/gnome-spell-1.0.8-r3-enchant.patch | 519 | ||||
-rw-r--r-- | app-text/gnome-spell/gnome-spell-1.0.8-r3.ebuild | 59 |
3 files changed, 586 insertions, 2 deletions
diff --git a/app-text/gnome-spell/ChangeLog b/app-text/gnome-spell/ChangeLog index 723735d31521..7cd026085cbb 100644 --- a/app-text/gnome-spell/ChangeLog +++ b/app-text/gnome-spell/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-text/gnome-spell -# Copyright 2002-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-text/gnome-spell/ChangeLog,v 1.101 2009/04/12 21:14:45 bluebird Exp $ +# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/app-text/gnome-spell/ChangeLog,v 1.102 2009/05/31 11:47:09 serkan Exp $ + +*gnome-spell-1.0.8-r3 (31 May 2009) + + 31 May 2009; Serkan Kaba <serkan@gentoo.org> +gnome-spell-1.0.8-r3.ebuild, + +files/gnome-spell-1.0.8-r3-enchant.patch: + Revbump to fix critical error. 12 Apr 2009; Friedrich Oslage <bluebird@gentoo.org> ChangeLog: Stable on sparc, bug #260063 diff --git a/app-text/gnome-spell/files/gnome-spell-1.0.8-r3-enchant.patch b/app-text/gnome-spell/files/gnome-spell-1.0.8-r3-enchant.patch new file mode 100644 index 000000000000..6741bded2c06 --- /dev/null +++ b/app-text/gnome-spell/files/gnome-spell-1.0.8-r3-enchant.patch @@ -0,0 +1,519 @@ +Index: gnome-spell/dictionary.c +=================================================================== +--- gnome-spell/dictionary.c (révision 424) ++++ gnome-spell/dictionary.c (copie de travail) +@@ -30,16 +30,21 @@ + #include <glib.h> + #include <libgnome/gnome-i18n.h> + #include <libgnome/gnome-config.h> +-#include <gconf/gconf-client.h> + #include <bonobo.h> + + #include "Spell.h" + #include "dictionary.h" + ++#include <enchant.h> ++ ++typedef struct { ++ EnchantBroker * config; ++ EnchantDict * speller; ++} SpellEngine; ++ + static BonoboObjectClass *dictionary_parent_class; + + #define DICT_DEBUG(x) +-#define GNOME_SPELL_GCONF_DIR "/GNOME/Spell" + + static void release_engines (GNOMESpellDictionary *dict); + +@@ -72,12 +77,24 @@ + { + GNOMESpellDictionary *dict = GNOME_SPELL_DICTIONARY (object); + +- dict->changed = TRUE; + dict->engines = NULL; + dict->languages = g_hash_table_new (g_str_hash, g_str_equal); + dict->engines_ht = g_hash_table_new (NULL, NULL); + } + ++static char ** ++dup_string_list (char ** str_list, size_t list_len) ++{ ++ char ** new_str_list; ++ size_t i; ++ ++ new_str_list = g_new0 (char *, list_len + 1); ++ for (i = 0; i < list_len; i++) ++ new_str_list [i] = g_strdup (str_list [i]); ++ ++ return new_str_list; ++} ++ + static void + dictionary_finalize (GObject *object) + { +@@ -93,15 +110,16 @@ + } + + static SpellEngine * +-new_engine (const gchar *language) ++new_engine (const gchar *language, CORBA_Environment *ev) + { + SpellEngine *se; + + se = g_new0 (SpellEngine, 1); +- se->config = new_aspell_config (); +- aspell_config_replace (se->config, "language-tag", language); +- aspell_config_replace (se->config, "encoding", "utf-8"); +- se->changed = TRUE; ++ se->config = enchant_broker_init (); ++ se->speller = enchant_broker_request_dict (se->config, language); ++ ++ if(se->speller == NULL) ++ raise_error (ev, enchant_broker_get_error (se->config)); + + return se; + } +@@ -129,9 +147,9 @@ + SpellEngine *se = dict->engines->data; + + if (se->speller) +- delete_aspell_speller (se->speller); ++ enchant_broker_free_dict (se->config, se->speller); + if (se->config) +- delete_aspell_config (se->config); ++ enchant_broker_free (se->config); + g_free (se); + dict->engines = g_slist_remove (dict->engines, se); + } +@@ -140,7 +158,6 @@ + g_hash_table_foreach_remove (dict->languages, remove_engine_ht, NULL); + + dict->engines = NULL; +- dict->changed = TRUE; + } + + static LangInfo known_languages [] = { +@@ -352,88 +369,31 @@ + }; + + static GSList * +-get_languages_real (gint *ln) ++get_languages (gint *ln) + { + GSList *langs; +- AspellCanHaveError *err; +- AspellConfig *config; +- AspellSpeller *speller; +- gint i; ++ EnchantBroker *broker; ++ gint i, nb_langs; + +- DICT_DEBUG (printf ("get_languages_real\n")); ++ DICT_DEBUG (printf ("get_languages\n")); + ++ /* todo: this could probably be better done by enchant_broker_list_dicts(), but let's keep ++ the initial code change to a minimum */ ++ ++ broker = enchant_broker_init (); + langs = NULL; +- *ln = 0; ++ nb_langs = 0; + for (i=0; i < G_N_ELEMENTS (known_languages); i++) { +- config = new_aspell_config (); +- aspell_config_replace (config, "language-tag", known_languages [i].abbreviation); +- err = new_aspell_speller (config); +- if (aspell_error_number (err) == 0) { +- speller = to_aspell_speller (err); ++ if (enchant_broker_dict_exists (broker, known_languages [i].abbreviation)) { + DICT_DEBUG (printf ("Language: %s\n", known_languages [i].name)); +- delete_aspell_speller (speller); + langs = g_slist_prepend (langs, GINT_TO_POINTER (i)); +- (*ln) ++; ++ nb_langs++; + } + } + +- return langs; +-} +- +-static GSList * +-get_languages_load (GConfClient *gc, gint *ln) +-{ +- GString *str; +- GSList *langs = NULL; +- gint i, lang_num; +- +- /* printf ("get_languages_load\n"); */ +- +- str = g_string_new (NULL); +- *ln = gconf_client_get_int (gc, GNOME_SPELL_GCONF_DIR "/languages", NULL); +- for (i = 0; i < *ln; i++) { +- g_string_sprintf (str, GNOME_SPELL_GCONF_DIR "/language%d", i); +- lang_num = gconf_client_get_int (gc, str->str, NULL); +- langs = g_slist_prepend (langs, GINT_TO_POINTER (lang_num)); +- } +- +- return langs; +-} +- +-static GSList * +-get_languages (gint *ln) +-{ +- GSList *langs, *l; +- GConfClient *gc; +- time_t mtime; +- struct stat buf; +- gint i, kl; +- +- gc = gconf_client_get_default (); +- +- mtime = gconf_client_get_int (gc, GNOME_SPELL_GCONF_DIR "/mtime", NULL); +- kl = gconf_client_get_int (gc, GNOME_SPELL_GCONF_DIR "/known_languages", NULL); +- +- if (stat (ASPELL_DICT, &buf) || buf.st_mtime != mtime || kl != G_N_ELEMENTS(known_languages)) { +- GString *str; +- langs = get_languages_real (ln); +- +- str = g_string_new (NULL); +- gconf_client_set_int (gc, GNOME_SPELL_GCONF_DIR "/languages", *ln, NULL); +- for (l = langs, i = 0; i < *ln; i ++) { +- g_string_sprintf (str, GNOME_SPELL_GCONF_DIR "/language%d", *ln - i - 1); +- gconf_client_set_int (gc, str->str, GPOINTER_TO_INT (l->data), NULL); +- l = l->next; +- } +- gconf_client_set_int (gc, GNOME_SPELL_GCONF_DIR "/mtime", buf.st_mtime, NULL); +- gconf_client_set_int (gc, GNOME_SPELL_GCONF_DIR "/known_languages", G_N_ELEMENTS(known_languages), NULL); +- g_string_free (str, TRUE); +- gnome_config_sync (); +- } else +- langs = get_languages_load (gc, ln); ++ *ln = nb_langs; + +- gconf_client_suggest_sync (gc, NULL); +- g_object_unref (gc); ++ enchant_broker_free (broker); + + return langs; + } +@@ -504,59 +464,19 @@ + SpellEngine *se; + + one_language = g_strndup (begin, len); +- se = new_engine (one_language); ++ se = new_engine (one_language, ev); + dict->engines = g_slist_prepend (dict->engines, se); + g_hash_table_insert (dict->languages, one_language, se); + g_hash_table_insert (dict->engines_ht, se, g_strdup (one_language)); +- +- dict->changed = TRUE; +- } +- } +-} +- +-static void +-update_engine (SpellEngine *se, CORBA_Environment * ev) +-{ +- AspellCanHaveError *err; +- +- DICT_DEBUG (printf ("Dictionary: creating new aspell speller\n")); +- +- if (se->changed) { +- if (se->speller) +- delete_aspell_speller (se->speller); +- err = new_aspell_speller (se->config); +- if (aspell_error_number (err) != 0) { +- g_warning ("aspell error: %s\n", aspell_error_message (err)); +- se->speller = NULL; +- raise_error (ev, aspell_error_message (err)); +- } else { +- se->speller = to_aspell_speller (err); +- se->changed = FALSE; + } + } + } + +-static void +-update_engines (GNOMESpellDictionary *dict, CORBA_Environment * ev) +-{ +- g_return_if_fail (IS_GNOME_SPELL_DICTIONARY (dict)); +- +- if (dict->changed) { +- GSList *l; +- +- for (l = dict->engines; l; l = l->next) { +- update_engine ((SpellEngine *) l->data, ev); +- } +- +- dict->changed = FALSE; +- } +-} +- + static CORBA_boolean + engine_check_word (SpellEngine *se, const gchar *word, CORBA_Environment *ev) + { +- CORBA_boolean result = CORBA_TRUE; +- gint aspell_result; ++ CORBA_boolean result = CORBA_FALSE; ++ gint enchant_result; + + #ifndef G_DISABLE_CHECKS + g_return_val_if_fail (se->speller, CORBA_TRUE); +@@ -564,12 +484,12 @@ + if (!se->speller) + return CORBA_TRUE; + #endif +- aspell_result = aspell_speller_check (se->speller, word, strlen (word)); +- if (aspell_result == 0) +- result = CORBA_FALSE; +- if (aspell_result == -1) { +- g_warning ("aspell error: %s\n", aspell_speller_error_message (se->speller)); +- raise_error (ev, aspell_speller_error_message (se->speller)); ++ enchant_result = enchant_dict_check (se->speller, word, strlen (word)); ++ if (enchant_result == 0) ++ result = CORBA_TRUE; ++ if (enchant_result == -1) { ++ g_warning ("enchant error: %s\n", enchant_dict_get_error (se->speller)); ++ raise_error (ev, enchant_dict_get_error (se->speller)); + } + + return result; +@@ -592,7 +512,6 @@ + if (!strcmp (word, "Ximian")) + return CORBA_TRUE; + +- update_engines (dict, ev); + for (l = dict->engines; l; l = l->next) { + if (((SpellEngine *) l->data)->speller) { + valid_speller = TRUE; +@@ -621,11 +540,10 @@ + if (!word) + return; + #endif +- update_engines (dict, ev); + DICT_DEBUG (printf ("Dictionary add_word_to_session: %s\n", word)); + for (l = dict->engines; l; l = l->next) { + if (((SpellEngine *) l->data)->speller) +- aspell_speller_add_to_session (((SpellEngine *) l->data)->speller, word, strlen (word)); ++ enchant_dict_add_to_session (((SpellEngine *) l->data)->speller, word, strlen (word)); + } + } + +@@ -642,13 +560,11 @@ + if (!word || !language) + return; + #endif +- update_engines (dict, ev); + DICT_DEBUG (printf ("Dictionary add_word_to_personal: %s (%s)\n", word, language)); + se = (SpellEngine *) g_hash_table_lookup (dict->languages, language); + + if (se && se->speller) { +- aspell_speller_add_to_personal (se->speller, word, strlen (word)); +- aspell_speller_save_all_word_lists (se->speller); ++ enchant_dict_add_to_pwl (se->speller, word, strlen (word)); + DICT_DEBUG (printf ("Added and saved.\n")); + } + } +@@ -666,14 +582,12 @@ + if (!word || !replacement) + return; + #endif +- update_engines (dict, ev); + DICT_DEBUG (printf ("Dictionary correction: %s <-- %s\n", word, replacement)); + se = (SpellEngine *) g_hash_table_lookup (dict->languages, language); + + if (se && se->speller) { +- aspell_speller_store_replacement (se->speller, word, strlen (word), +- replacement, strlen (replacement)); +- aspell_speller_save_all_word_lists (se->speller); ++ enchant_dict_store_replacement (se->speller, word, strlen (word), ++ replacement, strlen (replacement)); + DICT_DEBUG (printf ("Set and saved.\n")); + } + } +@@ -683,8 +597,8 @@ + const CORBA_char *word, CORBA_Environment *ev) + { + GNOMESpellDictionary *dict = GNOME_SPELL_DICTIONARY (bonobo_object_from_servant (servant)); +- const AspellWordList *suggestions; +- AspellStringEnumeration *elements; ++ char **suggestions; ++ size_t number_of_suggestions; + GNOME_Spell_StringSeq *seq = NULL; + GSList *l, *suggestion_list = NULL; + gint i, len, pos; +@@ -696,17 +610,19 @@ + return NULL; + #endif + DICT_DEBUG (printf ("Dictionary correction: %s\n", word)); +- update_engines (dict, ev); + + len = 0; + for (l = dict->engines; l; l = l->next) { + SpellEngine *se = (SpellEngine *) l->data; + + if (se->speller) { +- suggestions = aspell_speller_suggest (se->speller, word, strlen (word)); +- suggestion_list = g_slist_prepend (suggestion_list, (gpointer) suggestions); +- len += 2*aspell_word_list_size (suggestions); ++ suggestions = enchant_dict_suggest (se->speller, word, strlen (word), &number_of_suggestions); ++ suggestion_list = g_slist_prepend (suggestion_list, ++ (gpointer) dup_string_list (suggestions, number_of_suggestions)); ++ len += 2*number_of_suggestions; + suggestion_list = g_slist_prepend (suggestion_list, engine_to_language (dict, se)); ++ suggestion_list = g_slist_prepend (suggestion_list, GINT_TO_POINTER (number_of_suggestions)); ++ if(suggestions != NULL) enchant_dict_free_string_list (se->speller, suggestions); + } + } + +@@ -723,17 +639,18 @@ + gint list_len; + gchar *language; + ++ list_len = GPOINTER_TO_INT (l->data); ++ l = l->next; + language = (gchar *) l->data; + l = l->next; +- suggestions = (const AspellWordList *) l->data; +- elements = aspell_word_list_elements (suggestions); +- list_len = aspell_word_list_size (suggestions); ++ suggestions = (char **) l->data; + for (i = 0; i < list_len; i ++, pos ++) { +- seq->_buffer [pos] = CORBA_string_dup (aspell_string_enumeration_next (elements)); ++ seq->_buffer [pos] = CORBA_string_dup (suggestions [i]); + pos ++; + seq->_buffer [pos] = CORBA_string_dup (language); + } +- delete_aspell_string_enumeration (elements); ++ ++ g_strfreev (suggestions); + } + CORBA_sequence_set_release (seq, CORBA_TRUE); + g_slist_free (suggestion_list); +Index: gnome-spell/dictionary.h +=================================================================== +--- gnome-spell/dictionary.h (révision 424) ++++ gnome-spell/dictionary.h (copie de travail) +@@ -26,7 +26,6 @@ + G_BEGIN_DECLS + + #include <bonobo/bonobo-object.h> +-#include <aspell.h> + + #define GNOME_SPELL_DICTIONARY_TYPE (gnome_spell_dictionary_get_type ()) + #define GNOME_SPELL_DICTIONARY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \ +@@ -37,12 +36,6 @@ + #define IS_GNOME_SPELL_DICTIONARY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_SPELL_DICTIONARY_TYPE)) + + typedef struct { +- AspellConfig *config; +- AspellSpeller *speller; +- gboolean changed; +-} SpellEngine; +- +-typedef struct { + gchar *abbreviation; + gchar *name; + } LangInfo; +@@ -50,7 +43,6 @@ + typedef struct { + BonoboObject parent; + +- gboolean changed; + GSList *engines; + GHashTable *languages; + GHashTable *engines_ht; +Index: gnome-spell/Makefile.am +=================================================================== +--- gnome-spell/Makefile.am (révision 424) ++++ gnome-spell/Makefile.am (copie de travail) +@@ -7,13 +7,11 @@ + + INCLUDES = \ + -I$(srcdir) \ +- $(ASPELL_INC) \ + -DPREFIX=\""$(prefix)"\" \ + -DGNOMEDATADIR=\""$(datadir)"\" \ + -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ + -DGLADE_DATADIR=\"$(gladedir)\" \ + -DPLUGIN_DIR=\""$(PLUGIN_DIR)"\" \ +- -DASPELL_DICT=\""$(ASPELL_DICT)"\" \ + $(GNOME_SPELL_CFLAGS) \ + $(END) + +@@ -55,7 +53,6 @@ + libgnome_spell_component_la_LDFLAGS = -release $(API_VERSION) $(NO_UNDEFINED) + libgnome_spell_component_la_LIBADD = \ + libgnome-spell-idl.la \ +- $(ASPELL_LIBS) \ + $(GNOME_SPELL_LIBS) \ + $(END) + +@@ -69,7 +66,6 @@ + + test_gnome_spell_component_LDADD = \ + libgnome-spell-idl.la \ +- $(ASPELL_LIBS) \ + $(GNOME_SPELL_LIBS) \ + $(END) + +Index: gnome-spell/test-spell.c +=================================================================== +--- gnome-spell/test-spell.c (révision 424) ++++ gnome-spell/test-spell.c (copie de travail) +@@ -52,7 +52,6 @@ + * test dictionary + */ + +- GNOME_Spell_Dictionary_getLanguages (en, &ev); + GNOME_Spell_Dictionary_setLanguage (en, "en", &ev); + + printf ("check: %s --> %d\n", +Index: configure.in +=================================================================== +--- configure.in (révision 424) ++++ configure.in (copie de travail) +@@ -68,34 +68,6 @@ + AC_SUBST(API_VERSION) + + dnl +-dnl aspell +-dnl +- +-AC_ARG_WITH(aspell-prefix, [ --with-aspell-prefix=DIR +- specify under which prefix aspell is installed.], with_aspell_prefix="$withval", ) +- +-if test "x$with_aspell_prefix" != "x"; then +- saved_LDFLAGS=$LDFLAGS +- LDFLAGS="-L$with_aspell_prefix/lib "$LDFLAGS +- ASPELL_INC="-I$with_aspell_prefix/include" +- ASPELL_LIBS="-L$with_aspell_prefix/lib -laspell" +- ASPELL_DATA="$with_aspell_prefix/lib/aspell" +-else +- LDFLAGS="-L`aspell config prefix`/lib "$LDFLAGS +- ASPELL_INC="-I`aspell config prefix`/include" +- ASPELL_LIBS="-L`aspell config prefix`/lib -laspell" +- ASPELL_DICT="`aspell config dict-dir`" +-fi +-AC_CHECK_LIB(aspell,new_aspell_config,,AC_MSG_ERROR([gnome-spell cannot be built without aspell library]),) +-if test "x$with_aspell_prefix" != "x"; then +- LDFLAGS=$saved_LDFLAGS +-fi +- +-AC_SUBST(ASPELL_DICT) +-AC_SUBST(ASPELL_INC) +-AC_SUBST(ASPELL_LIBS) +- +-dnl + dnl flags + dnl + +@@ -104,7 +76,7 @@ + AC_SUBST(CPPFLAGS) + AC_SUBST(LDFLAGS) + +-GNOME_SPELL_MODULES="libgnomeui-2.0 >= 1.112.1 libbonoboui-2.0 >= 1.112.1 libglade-2.0 >= 1.99.9" ++GNOME_SPELL_MODULES="libgnome-2.0 >= 1.112.1 libbonoboui-2.0 >= 1.112.1 libglade-2.0 >= 1.99.9 enchant >= 1.2.5" + PKG_CHECK_MODULES(GNOME_SPELL, $GNOME_SPELL_MODULES) + AC_SUBST(GNOME_SPELL_CFLAGS) + AC_SUBST(GNOME_SPELL_LIBS) diff --git a/app-text/gnome-spell/gnome-spell-1.0.8-r3.ebuild b/app-text/gnome-spell/gnome-spell-1.0.8-r3.ebuild new file mode 100644 index 000000000000..d17b2dbc6803 --- /dev/null +++ b/app-text/gnome-spell/gnome-spell-1.0.8-r3.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-text/gnome-spell/gnome-spell-1.0.8-r3.ebuild,v 1.1 2009/05/31 11:47:09 serkan Exp $ + +inherit eutils gnome2 autotools + +DESCRIPTION="Gnome spellchecking component" +HOMEPAGE="http://www.gnome.org/" +SRC_URI="${SRC_URI} + mirror://gentoo/${P}-isocodes-r1.patch.bz2" + +LICENSE="GPL-2" +SLOT="1" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="" + +RDEPEND=">=gnome-base/libgnome-2 + >=gnome-base/libgnomeui-2 + >=gnome-base/libglade-2 + >=gnome-base/libbonobo-2 + >=gnome-base/libbonoboui-2 + >=gnome-base/orbit-2 + >=x11-libs/gtk+-2.4 + >=app-text/enchant-1.2.5 + app-text/iso-codes" + +DEPEND="${RDEPEND} + dev-util/intltool + dev-util/pkgconfig + sys-devel/gettext" + +DOCS="AUTHORS ChangeLog NEWS README" + +G2CONF="${G2CONF} --disable-static" + +src_unpack() { + gnome2_src_unpack + + # note that the combo and enchant patch are intertwined + # the enchant patch changes libgnomeui dep to libgnome + # made possible by the combo patch + # Marinus Schraal <foser@gentoo.org> - 02 Apr 2006 + + # Use enchant backend instead of aspell + epatch "${FILESDIR}/${PF}-enchant.patch" + + # replace gtkentry with gtkcombo widget + epatch "${FILESDIR}/${PN}-1.0.7-combo.patch" + epatch "${FILESDIR}/${PN}-1.0.7-remove_gnome_h.patch" + + # Use iso-codes instead of hardcoded locales list, bug #256564 + epatch "${WORKDIR}/${P}-isocodes-r1.patch" + + # Fix test error caused by previous patch. + echo "gnome-spell/spell-checker-language.c" >> po/POTFILES.in + + intltoolize --force || die "intltoolize failed" + eautoreconf +} |