tracker r2217 - in branches/indexer-split: . src/tracker-extract src/tracker-indexer



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]