tracker r2217 - in branches/indexer-split: . src/tracker-extract src/tracker-indexer
- From: mr svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r2217 - in branches/indexer-split: . src/tracker-extract src/tracker-indexer
- Date: Thu, 11 Sep 2008 13:24:58 +0000 (UTC)
Author: mr
Date: Thu Sep 11 13:24:58 2008
New Revision: 2217
URL: http://svn.gnome.org/viewvc/tracker?rev=2217&view=rev
Log:
* src/tracker-extract/Makefile.am: Cleaned up Makefile.
* src/tracker-extract/tracker-extract.c: Use functions from
libtracker-common instead of duplicating our own here.
* src/tracker-indexer/tracker-metadata-utils.c:
(process_watch_cb): Print the g_strerror() for the error code we
get back from an exiting process from the extractor.
Modified:
branches/indexer-split/ChangeLog
branches/indexer-split/src/tracker-extract/Makefile.am
branches/indexer-split/src/tracker-extract/tracker-extract.c
branches/indexer-split/src/tracker-indexer/tracker-metadata-utils.c
Modified: branches/indexer-split/src/tracker-extract/Makefile.am
==============================================================================
--- branches/indexer-split/src/tracker-extract/Makefile.am (original)
+++ branches/indexer-split/src/tracker-extract/Makefile.am Thu Sep 11 13:24:58 2008
@@ -1,30 +1,30 @@
module_flags = -module -avoid-version -no-undefined
modulesdir = $(libdir)/tracker/extract-modules
-INCLUDES = \
- $(GLIB2_CFLAGS) \
- $(GMODULE_CFLAGS) \
- $(EXEMPI_CFLAGS) \
- $(LIBJPEG_CFLAGS) \
- $(LIBTIFF_CFLAGS) \
- $(LIBEXIF_CFLAGS) \
- $(LIBGSF_CFLAGS) \
- $(LIBXML2_CFLAGS) \
- $(LIBPNG_CFLAGS) \
- $(POPPLER_GLIB_CFLAGS) \
- $(GSTREAMER_CFLAGS) \
- $(XINE_CFLAGS) \
- -I$(top_srcdir)/src \
+INCLUDES = \
+ $(GLIB2_CFLAGS) \
+ $(GMODULE_CFLAGS) \
+ $(EXEMPI_CFLAGS) \
+ $(LIBJPEG_CFLAGS) \
+ $(LIBTIFF_CFLAGS) \
+ $(LIBEXIF_CFLAGS) \
+ $(LIBGSF_CFLAGS) \
+ $(LIBXML2_CFLAGS) \
+ $(LIBPNG_CFLAGS) \
+ $(POPPLER_GLIB_CFLAGS) \
+ $(GSTREAMER_CFLAGS) \
+ $(XINE_CFLAGS) \
+ -I$(top_srcdir)/src \
-DMODULES_DIR=\"$(modulesdir)\"
-modules_LTLIBRARIES = \
- libextract-abw.la \
- libextract-imagemagick.la \
- libextract-mp3.la \
- libextract-mplayer.la \
- libextract-oasis.la \
- libextract-png.la \
- libextract-ps.la \
+modules_LTLIBRARIES = \
+ libextract-abw.la \
+ libextract-imagemagick.la \
+ libextract-mp3.la \
+ libextract-mplayer.la \
+ libextract-oasis.la \
+ libextract-png.la \
+ libextract-ps.la \
libextract-totem.la
if HAVE_EXEMPI
@@ -59,91 +59,104 @@
modules_LTLIBRARIES += libextract-xine.la
endif
+# Common XMP Sources
+xmp_sources = \
+ tracker-xmp.c \
+ tracker-xmp.h
+
+# ABW
libextract_abw_la_SOURCES = tracker-extract-abw.c
libextract_abw_la_LDFLAGS = $(module_flags)
libextract_abw_la_LIBADD = $(GLIB2_LIBS)
-libextract_imagemagick_la_SOURCES = \
- tracker-extract-imagemagick.c \
- tracker-xmp.c tracker-xmp.h
+# Imagemagick
+libextract_imagemagick_la_SOURCES = tracker-extract-imagemagick.c $(xmp_sources)
libextract_imagemagick_la_LDFLAGS = $(module_flags)
libextract_imagemagick_la_LIBADD = $(GLIB2_LIBS) $(EXEMPI_LIBS)
+# MP3
libextract_mp3_la_SOURCES = tracker-extract-mp3.c
libextract_mp3_la_LDFLAGS = $(module_flags)
libextract_mp3_la_LIBADD = $(GLIB2_LIBS)
+# MPlayer
libextract_mplayer_la_SOURCES = tracker-extract-mplayer.c
libextract_mplayer_la_LDFLAGS = $(module_flags)
libextract_mplayer_la_LIBADD = $(GLIB2_LIBS)
+# Oasis
libextract_oasis_la_SOURCES = tracker-extract-oasis.c
libextract_oasis_la_LDFLAGS = $(module_flags)
libextract_oasis_la_LIBADD = $(GLIB2_LIBS)
-libextract_png_la_SOURCES = \
- tracker-extract-png.c \
- tracker-xmp.c tracker-xmp.h
+# PNG
+libextract_png_la_SOURCES = tracker-extract-png.c $(xmp_sources)
libextract_png_la_LDFLAGS = $(module_flags)
libextract_png_la_LIBADD = $(GLIB2_LIBS) $(LIBPNG_LIBS) $(EXEMPI_LIBS)
+# PS
libextract_ps_la_SOURCES = tracker-extract-ps.c
libextract_ps_la_LDFLAGS = $(module_flags)
-libextract_ps_la_LIBADD = \
- $(GLIB2_LIBS) \
+libextract_ps_la_LIBADD = \
+ $(GLIB2_LIBS) \
$(top_builddir)/src/libtracker-common/libtracker-common.la
+# Totem
libextract_totem_la_SOURCES = tracker-extract-totem.c
libextract_totem_la_LDFLAGS = $(module_flags)
libextract_totem_la_LIBADD = $(GLIB2_LIBS)
-libextract_xmp_la_SOURCES = \
- tracker-extract-xmp.c \
- tracker-xmp.c tracker-xmp.h
+# XMP
+libextract_xmp_la_SOURCES = tracker-extract-xmp.c $(xmp_sources)
libextract_xmp_la_LDFLAGS = $(module_flags)
libextract_xmp_la_LIBADD = $(GLIB2_LIBS) $(EXEMPI_LIBS)
+# HTML
libextract_html_la_SOURCES = tracker-extract-html.c
libextract_html_la_LDFLAGS = $(module_flags)
libextract_html_la_LIBADD = $(GLIB2_LIBS) $(LIBXML2_LIBS)
+# MS Office
libextract_msoffice_la_SOURCES = tracker-extract-msoffice.c
libextract_msoffice_la_LDFLAGS = $(module_flags)
libextract_msoffice_la_LIBADD = $(GLIB2_LIBS) $(LIBGSF_LIBS)
-libextract_pdf_la_SOURCES = \
- tracker-extract-pdf.c \
- tracker-xmp.c tracker-xmp.h
+# PDF
+libextract_pdf_la_SOURCES = tracker-extract-pdf.c $(xmp_sources)
libextract_pdf_la_LDFLAGS = $(module_flags)
libextract_pdf_la_LIBADD = $(GLIB2_LIBS) $(POPPLER_GLIB_LIBS) $(EXEMPI_LIBS)
+# GStreamer
libextract_gstreamer_la_SOURCES = tracker-extract-gstreamer.c
libextract_gstreamer_la_LDFLAGS = $(module_flags)
libextract_gstreamer_la_LIBADD = $(GLIB2_LIBS) $(GSTREAMER_LIBS)
+# Xine
libextract_xine_la_SOURCES = tracker-extract-libxine.c
libextract_xine_la_LDFLAGS = $(module_flags)
libextract_xine_la_LIBADD = $(GLIB2_LIBS) $(XINE_LIBS)
-libextract_jpeg_la_SOURCES = \
- tracker-extract-jpeg.c \
- tracker-xmp.c tracker-xmp.h
+# JPEG
+libextract_jpeg_la_SOURCES = tracker-extract-jpeg.c $(xmp_sources)
libextract_jpeg_la_LDFLAGS = $(module_flags)
libextract_jpeg_la_LIBADD = $(GLIB2_LIBS) $(LIBJPEG_LIBS) $(LIBEXIF_LIBS) $(EXEMPI_LIBS)
-libextract_tiff_la_SOURCES = \
- tracker-extract-tiff.c \
- tracker-xmp.c tracker-xmp.h
+# TIFF
+libextract_tiff_la_SOURCES = tracker-extract-tiff.c $(xmp_sources)
libextract_tiff_la_LDFLAGS = $(module_flags)
libextract_tiff_la_LIBADD = $(GLIB2_LIBS) $(LIBTIFF_LIBS) $(EXEMPI_LIBS)
+#
+# Binaries
+#
libexec_PROGRAMS = tracker-extract
-tracker_extract_SOURCES = \
- tracker-extract.c \
+tracker_extract_SOURCES = \
+ tracker-extract.c \
tracker-extract.h
-tracker_extract_LDADD = \
- $(GLIB2_LIBS) \
- $(GTHREAD_LIBS) \
+tracker_extract_LDADD = \
+ $(top_builddir)/src/libtracker-common/libtracker-common.la \
+ $(GLIB2_LIBS) \
+ $(GTHREAD_LIBS) \
$(GMODULE_LIBS)
Modified: branches/indexer-split/src/tracker-extract/tracker-extract.c
==============================================================================
--- branches/indexer-split/src/tracker-extract/tracker-extract.c (original)
+++ branches/indexer-split/src/tracker-extract/tracker-extract.c Thu Sep 11 13:24:58 2008
@@ -40,7 +40,9 @@
#include <glib.h>
#include <gmodule.h>
+#include <libtracker-common/tracker-os-dependant.h>
#include <libtracker-common/tracker-type-utils.h>
+#include <libtracker-common/tracker-utils.h>
#include "tracker-extract.h"
@@ -73,77 +75,6 @@
}
gboolean
-tracker_is_empty_string (const gchar *s)
-{
- return s == NULL || s[0] == '\0';
-}
-
-static gboolean
-set_memory_rlimits (void)
-{
-#ifndef OS_WIN32
- struct rlimit rl;
- gint fail = 0;
-
- /* We want to limit the max virtual memory
- * most extractors use mmap() so only virtual memory can be effectively limited */
-#ifdef __x86_64__
- /* many extractors on AMD64 require 512M of virtual memory, so we limit heap too */
- getrlimit (RLIMIT_AS, &rl);
- rl.rlim_cur = MAX_MEM_AMD64*1024*1024;
- fail |= setrlimit (RLIMIT_AS, &rl);
-
- getrlimit (RLIMIT_DATA, &rl);
- rl.rlim_cur = MAX_MEM*1024*1024;
- fail |= setrlimit (RLIMIT_DATA, &rl);
-#else
- /* on other architectures, 128M of virtual memory seems to be enough */
- getrlimit (RLIMIT_AS, &rl);
- rl.rlim_cur = MAX_MEM*1024*1024;
- fail |= setrlimit (RLIMIT_AS, &rl);
-#endif
-
- if (fail) {
- g_printerr ("Error trying to set memory limit for tracker-extract\n");
- }
-
- return !fail;
-#endif
-}
-
-static void
-child_cb (gpointer user_data)
-{
-#ifndef OS_WIN32
- struct rlimit cpu_limit;
- gint timeout = GPOINTER_TO_INT (user_data);
-
- /* set cpu limit */
- getrlimit (RLIMIT_CPU, &cpu_limit);
- cpu_limit.rlim_cur = timeout;
- cpu_limit.rlim_max = timeout + 1;
-
- if (setrlimit (RLIMIT_CPU, &cpu_limit) != 0) {
- g_printerr ("Error trying to set resource limit for cpu\n");
- }
-
- set_memory_rlimits ();
-
- /* Set child's niceness to 19 */
- errno = 0;
- /* nice() uses attribute "warn_unused_result" and so complains if we do not check its
- returned value. But it seems that since glibc 2.2.4, nice() can return -1 on a
- successful call so we have to check value of errno too. Stupid... */
- if (nice (19) == -1 && errno) {
- g_printerr ("ERROR: trying to set nice value\n");
- }
-
- /* have this as a precaution in cases where cpu limit has not been reached due to spawned app sleeping */
- alarm (timeout+2);
-#endif
-}
-
-gboolean
tracker_spawn (gchar **argv,
gint timeout,
gchar **tmp_stdout,
@@ -153,7 +84,7 @@
argv,
NULL,
G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL,
- child_cb,
+ tracker_spawn_child_func,
GINT_TO_POINTER (timeout),
tmp_stdout,
NULL,
@@ -392,7 +323,7 @@
GMainLoop *main_loop;
GIOChannel *input;
- set_memory_rlimits ();
+ tracker_memory_setrlimits ();
if (!g_thread_supported ()) {
g_thread_init (NULL);
Modified: branches/indexer-split/src/tracker-indexer/tracker-metadata-utils.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-metadata-utils.c (original)
+++ branches/indexer-split/src/tracker-indexer/tracker-metadata-utils.c Thu Sep 11 13:24:58 2008
@@ -95,7 +95,10 @@
gint status,
gpointer user_data)
{
- g_debug ("Process '%d' exited with code: %d", pid, status);
+ g_debug ("Process '%d' exited with code: %d->'%s'",
+ pid,
+ status,
+ g_strerror (status));
if (user_data == metadata_context) {
destroy_process_context (metadata_context);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]