[tracker/external-libstemmer] libstemmer: Move existing stagnant import to external dep



commit e5b85aa14029c1ddf735fb0bdccd5dcfe67fb92c
Author: Martyn Russell <martyn lanedo com>
Date:   Tue Sep 16 20:45:09 2014 +0100

    libstemmer: Move existing stagnant import to external dep
    
    Instead of using imported code that's not changed in half a decade, let's use
    the external maintained version packaged up.

 configure.ac                             |   36 +-
 src/Makefile.am                          |    4 -
 src/libstemmer/Copyright                 |   12 -
 src/libstemmer/Makefile.am               |   49 --
 src/libstemmer/api.c                     |   82 --
 src/libstemmer/api.h                     |   40 -
 src/libstemmer/header.h                  |   71 --
 src/libstemmer/libstemmer.c              |  114 ---
 src/libstemmer/libstemmer.h              |   93 ---
 src/libstemmer/modules.h                 |  127 ---
 src/libstemmer/stem_UTF_8_danish.c       |  357 --------
 src/libstemmer/stem_UTF_8_danish.h       |   29 -
 src/libstemmer/stem_UTF_8_dutch.c        |  666 ---------------
 src/libstemmer/stem_UTF_8_dutch.h        |   29 -
 src/libstemmer/stem_UTF_8_english.c      | 1191 ---------------------------
 src/libstemmer/stem_UTF_8_english.h      |   29 -
 src/libstemmer/stem_UTF_8_finnish.c      |  821 -------------------
 src/libstemmer/stem_UTF_8_finnish.h      |   29 -
 src/libstemmer/stem_UTF_8_french.c       | 1309 ------------------------------
 src/libstemmer/stem_UTF_8_french.h       |   29 -
 src/libstemmer/stem_UTF_8_german.c       |  539 ------------
 src/libstemmer/stem_UTF_8_german.h       |   29 -
 src/libstemmer/stem_UTF_8_hungarian.c    | 1239 ----------------------------
 src/libstemmer/stem_UTF_8_hungarian.h    |   27 -
 src/libstemmer/stem_UTF_8_italian.c      | 1126 -------------------------
 src/libstemmer/stem_UTF_8_italian.h      |   29 -
 src/libstemmer/stem_UTF_8_norwegian.c    |  315 -------
 src/libstemmer/stem_UTF_8_norwegian.h    |   29 -
 src/libstemmer/stem_UTF_8_porter.c       |  807 ------------------
 src/libstemmer/stem_UTF_8_porter.h       |   29 -
 src/libstemmer/stem_UTF_8_portuguese.c   | 1068 ------------------------
 src/libstemmer/stem_UTF_8_portuguese.h   |   29 -
 src/libstemmer/stem_UTF_8_russian.c      |  722 ----------------
 src/libstemmer/stem_UTF_8_russian.h      |   29 -
 src/libstemmer/stem_UTF_8_spanish.c      | 1150 --------------------------
 src/libstemmer/stem_UTF_8_spanish.h      |   29 -
 src/libstemmer/stem_UTF_8_swedish.c      |  326 --------
 src/libstemmer/stem_UTF_8_swedish.h      |   29 -
 src/libstemmer/utilities.c               |  459 -----------
 src/libtracker-common/Makefile.am        |    4 -
 src/libtracker-common/tracker-language.c |   36 +-
 41 files changed, 61 insertions(+), 13106 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 5424473..c86901d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -790,6 +790,35 @@ else
 fi
 
 ##################################################################
+# Check for libtracker-common, make sure libstemmer exists
+##################################################################
+
+AC_ARG_ENABLE([libstemmer],
+              AS_HELP_STRING([--enable-libstemmer],
+                             [enable the stemming while indexing [[default=auto]]]),
+              [enable_libstemmer=$enableval],
+              [enable_libstemmer=auto])
+
+if test "x$enable_libstemmer" != "xno" ; then
+   AC_CHECK_LIB([stemmer], [sb_stemmer_new], [have_libstemmer=yes], [have_libstemmer=no])
+
+   if test "x$have_libstemmer" = "xyes"; then
+      AC_DEFINE(HAVE_LIBSTEMMER, [], [Define if we have libstemmer])
+      LIBTRACKER_COMMON_LIBS="$LIBTRACKER_COMMON_LIBS -lstemmer"
+   fi
+else
+   have_libstemmer="no  (disabled)"
+fi
+
+if test "x$enable_libstemmer" = "xyes"; then
+   if test "x$have_libstemmer" != "xyes"; then
+      AC_MSG_ERROR([Couldn't find libstemmer.])
+   fi
+fi
+
+AM_CONDITIONAL(HAVE_LIBSTEMMER, test "x$have_libstemmer" = "xyes")
+
+##################################################################
 # Check for tracker-fts, allow disabling FTS support
 ##################################################################
 
@@ -799,10 +828,10 @@ AC_ARG_ENABLE([tracker-fts],
               [enable_tracker_fts=$enableval],
               [enable_tracker_fts=auto])
 
-if test "x$enable_tracker_fts" != "xno" ; then
-   have_tracker_fts="yes"
-else
+if test "x$enable_tracker_fts" = "xno" ; then
    have_tracker_fts="no  (disabled)"
+else
+   have_tracker_fts="yes"
 fi
 
 if test "x$have_tracker_fts" = "xyes"; then
@@ -2708,6 +2737,7 @@ Feature Support:
 
        Build with Journal support:             $have_tracker_journal
        Build with SQLite FTS support:          $have_tracker_fts (built-in FTS: $have_builtin_fts4)
+       Build with Stemming support:            $have_libstemmer
 
        Cache media art                         $have_libmediaart (libmediaart)
        Install artwork                         $have_artwork
diff --git a/src/Makefile.am b/src/Makefile.am
index ebe7314..ee76d8c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,8 +1,4 @@
 if HAVE_TRACKER_FTS
-libstemmer_dir = libstemmer
-endif
-
-if HAVE_TRACKER_FTS
 libtrackerfts_dir = libtracker-fts
 endif
 
diff --git a/src/libtracker-common/Makefile.am b/src/libtracker-common/Makefile.am
index 9063482..fb7941d 100644
--- a/src/libtracker-common/Makefile.am
+++ b/src/libtracker-common/Makefile.am
@@ -72,10 +72,6 @@ libtracker_common_la_LIBADD = \
        $(LIBTRACKER_COMMON_LIBS) \
        -lm
 
-if HAVE_TRACKER_FTS
-libtracker_common_la_LIBADD += $(top_builddir)/src/libstemmer/libstemmer.la
-endif
-
 tracker-enum-types.h: tracker-enum-types.h.template $(NOINST_H_FILES)
        $(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template tracker-enum-types.h.template 
$(noinst_HEADERS)) > $@
 
diff --git a/src/libtracker-common/tracker-language.c b/src/libtracker-common/tracker-language.c
index f3d739c..73096b2 100644
--- a/src/libtracker-common/tracker-language.c
+++ b/src/libtracker-common/tracker-language.c
@@ -24,7 +24,9 @@
 
 #include <glib.h>
 
-#include <libstemmer/libstemmer.h>
+#ifdef HAVE_LIBSTEMMER
+#include <libstemmer.h>
+#endif /* HAVE_LIBSTEMMER */
 
 #include "tracker-log.h"
 #include "tracker-language.h"
@@ -126,7 +128,10 @@ static void
 tracker_language_init (TrackerLanguage *language)
 {
        TrackerLanguagePriv *priv;
-       const gchar         *stem_language;
+
+#ifdef HAVE_LIBSTEMMER
+       const gchar *stem_language;
+#endif /* HAVE_LIBSTEMMER */
 
        priv = GET_PRIV (language);
 
@@ -134,10 +139,12 @@ tracker_language_init (TrackerLanguage *language)
                                                  g_str_equal,
                                                  g_free,
                                                  NULL);
+#ifdef HAVE_LIBSTEMMER
        g_mutex_init (&priv->stemmer_mutex);
 
        stem_language = tracker_language_get_name_by_code (NULL);
        priv->stemmer = sb_stemmer_new (stem_language, NULL);
+#endif /* HAVE_LIBSTEMMER */
 }
 
 static void
@@ -147,12 +154,14 @@ language_finalize (GObject *object)
 
        priv = GET_PRIV (object);
 
+#ifdef HAVE_LIBSTEMMER
        if (priv->stemmer) {
                g_mutex_lock (&priv->stemmer_mutex);
                sb_stemmer_delete (priv->stemmer);
                g_mutex_unlock (&priv->stemmer_mutex);
        }
        g_mutex_clear (&priv->stemmer_mutex);
+#endif /* HAVE_LIBSTEMMER */
 
        if (priv->stop_words) {
                g_hash_table_unref (priv->stop_words);
@@ -278,14 +287,15 @@ static void
 language_set_stopword_list (TrackerLanguage *language,
                             const gchar     *language_code)
 {
+#ifdef HAVE_LIBSTEMMER
        TrackerLanguagePriv *priv;
-       gchar               *stopword_filename;
-       gchar               *stem_language_lower;
-       const gchar         *stem_language;
+       gchar *stem_language_lower;
+       const gchar *stem_language;
+#endif /* HAVE_LIBSTEMMER */
 
-       g_return_if_fail (TRACKER_IS_LANGUAGE (language));
+       gchar *stopword_filename;
 
-       priv = GET_PRIV (language);
+       g_return_if_fail (TRACKER_IS_LANGUAGE (language));
 
        /* Set up stopwords list */
        /* g_message ("Setting up stopword list for language code:'%s'", language_code); */
@@ -300,6 +310,9 @@ language_set_stopword_list (TrackerLanguage *language,
                g_free (stopword_filename);
        }
 
+#ifdef HAVE_LIBSTEMMER
+       priv = GET_PRIV (language);
+
        /* g_message ("Setting up stemmer for language code:'%s'", language_code); */
 
        stem_language = tracker_language_get_name_by_code (language_code);
@@ -320,6 +333,7 @@ language_set_stopword_list (TrackerLanguage *language,
        g_mutex_unlock (&priv->stemmer_mutex);
 
        g_free (stem_language_lower);
+#endif /* HAVE_LIBSTEMMER */
 }
 
 /**
@@ -498,8 +512,10 @@ tracker_language_stem_word (TrackerLanguage *language,
                             const gchar     *word,
                             gint             word_length)
 {
+#ifdef HAVE_LIBSTEMMER
        TrackerLanguagePriv *priv;
-       const gchar         *stem_word;
+       const gchar *stem_word;
+#endif /* HAVE_LIBSTEMMER */
 
        g_return_val_if_fail (TRACKER_IS_LANGUAGE (language), NULL);
 
@@ -507,6 +523,7 @@ tracker_language_stem_word (TrackerLanguage *language,
                word_length = strlen (word);
        }
 
+#ifdef HAVE_LIBSTEMMER
        priv = GET_PRIV (language);
 
        if (!priv->enable_stemmer) {
@@ -522,6 +539,9 @@ tracker_language_stem_word (TrackerLanguage *language,
        g_mutex_unlock (&priv->stemmer_mutex);
 
        return g_strdup (stem_word);
+#else  /* HAVE_LIBSTEMMER */
+       return g_strndup (word, word_length);
+#endif /* HAVE_LIBSTEMMER */
 }
 
 /**


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]