Opened 10 years ago

Closed 7 years ago

#42956 closed submission (fixed)

tracker @0.17.7 new Portfile

Reported by: juanrgar (Juan R. García Blanco) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: dbevans (David B. Evans)
Port: tracker

Description

Here is a preliminary version of a tracker Portfile. It doesn't even compile (due to missing link flags) and have some sections commented out. I continue working on this.

Attachments (7)

Portfile (4.9 KB) - added by juanrgar (Juan R. García Blanco) 10 years ago.
Preliminary Portfile
patch-tracker.diff (1.2 KB) - added by dbevans (David B. Evans) 10 years ago.
Patch to fix configuration errors
tracker-0.17.8-Portfile.tgz (3.4 KB) - added by juanrgar (Juan R. García Blanco) 10 years ago.
patch-undefined-tracker-0.17.8.diff (1.4 KB) - added by dbevans (David B. Evans) 10 years ago.
Patch to fix undefined symbols in loadable modules
main.log (540.6 KB) - added by dbevans (David B. Evans) 10 years ago.
Build log showing +myplayer failure
tracker-1.0.0-Portfile.tgz (3.7 KB) - added by juanrgar (Juan R. García Blanco) 10 years ago.
patch-tracker-crash-fixes.diff (960 bytes) - added by dbevans (David B. Evans) 10 years ago.
Patch to fix some start up crashes in tracker-miner-fs

Download all attachments as: .zip

Change History (22)

Changed 10 years ago by juanrgar (Juan R. García Blanco)

Attachment: Portfile added

Preliminary Portfile

comment:1 Changed 10 years ago by dbevans (David B. Evans)

Owner: changed from macports-tickets@… to devans@…
Status: newassigned

comment:2 Changed 10 years ago by dbevans (David B. Evans)

Patch attached to:

  • fix intltool configuration (update m4/intltool.m4 and autoreconf)
  • adds patch to disable AM_GNU_GETTEXT macros in configure.ac (obsoleted by and cannot be used with IT_PROG_INTLTOOL in recent versions of intltool, causes configure to fail with "error: po/Makefile.in.in was not created by intltoolize".

Configure is then successful but build fails with this error

libtool: link: /usr/bin/clang  -o .libs/libextract-gif.so -bundle  .libs/libextract_gif_la-tracker-extract-gif.o   -L/opt/local/lib ../../src/libtracker-extract/.libs/libtracker-extract.dylib /opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/libtracker-sparql-backend/.libs/libtracker-sparql-1.0.dylib /opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/libtracker-data/.libs/libtracker-data.dylib -lz /opt/local/lib/libsqlite3.dylib /opt/local/lib/libuuid.dylib /opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/libtracker-common/.libs/libtracker-common.dylib /opt/local/lib/libgmodule-2.0.dylib /opt/local/lib/libexif.dylib /opt/local/lib/libiconv.dylib -lc /opt/local/lib/libiptcdata.dylib /opt/local/lib/libexempi.dylib -licui18n -licuuc -licudata ../../src/libtracker-common/.libs/libtracker-common.dylib /opt/local/lib/libgio-2.0.dylib /opt/local/lib/libgobject-2.0.dylib -lm /opt/local/lib/libglib-2.0.dylib /opt/local/lib/libintl.dylib /opt/local/lib/libgif.dylib  -Os -arch x86_64 -Wl,-headerpad_max_install_names -arch x86_64 -Wl,-dylib_file -Wl,/opt/local/lib/libtracker-sparql-1.0.0.dylib:/opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/libtracker-sparql-backend/.libs/libtracker-sparql-1.0.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-data.0.dylib:/opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/libtracker-data/.libs/libtracker-data.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-common.0.dylib:/opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/libtracker-common/.libs/libtracker-common.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-data.0.dylib:/opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/libtracker-data/.libs/libtracker-data.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-common.0.dylib:/opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/libtracker-common/.libs/libtracker-common.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-common.0.dylib:/opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/libtracker-common/.libs/libtracker-common.dylib   -framework CoreServices
Undefined symbols for architecture x86_64:
  "_PrintGifError", referenced from:
      _tracker_extract_get_metadata in libextract_gif_la-tracker-extract-gif.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [libextract-gif.la] Error 1
make[4]: Leaving directory `/opt/local/var/macports/build/_Users_devans_macports_dports_gnome_tracker/tracker/work/tracker-0.17.7/src/tracker-extract'
make[3]: *** [all] Error 2

Changed 10 years ago by dbevans (David B. Evans)

Attachment: patch-tracker.diff added

Patch to fix configuration errors

comment:3 Changed 10 years ago by juanrgar (Juan R. García Blanco)

mm we are not getting the same errors :(

On mavericks this is what happens:

Undefined symbols for architecture x86_64:
  "_media_art_process", referenced from:
      _tracker_extract_get_metadata in libextract_vorbis_la-tracker-extract-vorbis.o
  "_vorbis_comment_clear", referenced from:
      _tracker_extract_get_metadata in libextract_vorbis_la-tracker-extract-vorbis.o
  "_vorbis_comment_query", referenced from:
      _ogg_get_comment in libextract_vorbis_la-tracker-extract-vorbis.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [libextract-vorbis.la] Error 1

comment:4 Changed 10 years ago by juanrgar (Juan R. García Blanco)

I'm currently investigating why my pkg-config seems to be not working properly. It does not consider packages listed under Requires.private.

comment:5 Changed 10 years ago by juanrgar (Juan R. García Blanco)

Sorry, pkgconfig is ok. I don't know why we both get different results when building tracker from the same Portfile. Are you using mavericks?

comment:6 Changed 10 years ago by juanrgar (Juan R. García Blanco)

I've got to this error:

:info:build libtool: link: /usr/bin/clang  -o .libs/libextract-epub.so -bundle  .libs/libextract_epub_la-tracker-extract-epub.o   -L/opt/local/lib ../../src/libtracker-extract/.libs/libtracker-extract.dylib /opt/local/var/macports/build/_Users_juanrgar_ports_gnome_tracker/tracker/work/tracker-0.17.8/src/libtracker-sparql-backend/.libs/libtracker-sparql-1.0.dylib /opt/local/var/macports/build/_Users_juanrgar_ports_gnome_tracker/tracker/work/tracker-0.17.8/src/libtracker-data/.libs/libtracker-data.dylib -lz -lsqlite3 -luuid /opt/local/var/macports/build/_Users_juanrgar_ports_gnome_tracker/tracker/work/tracker-0.17.8/src/libtracker-common/.libs/libtracker-common.dylib -lgmodule-2.0 -lmediaart-1.0 -lexif -liptcdata -lexempi -lgif -lvorbisfile -lvorbis -licui18n -licuuc -licudata ../../src/libtracker-common/.libs/libtracker-common.dylib -lgio-2.0 -lm -lgsf-1 -lgobject-2.0 -lglib-2.0 -lintl -lxml2  -Os -arch x86_64 -Wl,-headerpad_max_install_names -arch x86_64 -Wl,-dylib_file -Wl,/opt/local/lib/libtracker-sparql-1.0.0.dylib:/opt/local/var/macports/build/_Users_juanrgar_ports_gnome_tracker/tracker/work/tracker-0.17.8/src/libtracker-sparql-backend/.libs/libtracker-sparql-1.0.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-data.0.dylib:/opt/local/var/macports/build/_Users_juanrgar_ports_gnome_tracker/tracker/work/tracker-0.17.8/src/libtracker-data/.libs/libtracker-data.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-common.0.dylib:/opt/local/var/macports/build/_Users_juanrgar_ports_gnome_tracker/tracker/work/tracker-0.17.8/src/libtracker-common/.libs/libtracker-common.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-data.0.dylib:/opt/local/var/macports/build/_Users_juanrgar_ports_gnome_tracker/tracker/work/tracker-0.17.8/src/libtracker-data/.libs/libtracker-data.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-common.0.dylib:/opt/local/var/macports/build/_Users_juanrgar_ports_gnome_tracker/tracker/work/tracker-0.17.8/src/libtracker-common/.libs/libtracker-common.dylib -Wl,-dylib_file -Wl,/opt/local/lib/tracker-1.0/libtracker-common.0.dylib:/opt/local/var/macports/build/_Users_juanrgar_ports_gnome_tracker/tracker/work/tracker-0.17.8/src/libtracker-common/.libs/libtracker-common.dylib  
:info:build Undefined symbols for architecture x86_64:
:info:build   "_tracker_config_get_max_bytes", referenced from:
:info:build       _tracker_extract_get_metadata in libextract_epub_la-tracker-extract-epub.o
:info:build   "_tracker_gsf_parse_xml_in_zip", referenced from:
:info:build       _tracker_extract_get_metadata in libextract_epub_la-tracker-extract-epub.o
:info:build   "_tracker_main_get_config", referenced from:
:info:build       _tracker_extract_get_metadata in libextract_epub_la-tracker-extract-epub.o
:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)

This is weird since these are internal libraries.

Changed 10 years ago by juanrgar (Juan R. García Blanco)

Attachment: tracker-0.17.8-Portfile.tgz added

comment:7 Changed 10 years ago by dbevans (David B. Evans)

Just tried your tracker-0.17.8 and I get the same error as you mention above. This is building on ML with Xcode 5.1.

comment:8 Changed 10 years ago by dbevans (David B. Evans)

The missing symbols are defined in

src/tracker-extract/tracker-config.c (tracker_config_get_max_bytes)
src/tracker-extract/tracker-gsf.c (tracker_gsf_parse_xml_in_zip)
src/tracker-extract/tracker-main.c (tracker_main_get_config)

These files are not library source files but source files for tracker-extract itself. Since a loadable module (bundle) is being linked (libextract-epub.so) these symbols should be resolved not at link time but at module load time. The problem is that

src/tracker-extract/Makefile.am

includes this line

module_flags = -module -avoid-version -no-undefined

The -no-undefined is the culprit and should be removed. A similar problem occurs in

src/tracker-writeback/Makefile.am

Patch attached that fixes these two files and allows the build to complete without error at least in the default +gstreamer build.

Changed 10 years ago by dbevans (David B. Evans)

Patch to fix undefined symbols in loadable modules

comment:9 Changed 10 years ago by dbevans (David B. Evans)

Build +enca builds ok after my patch but +mplayer fails

/usr/bin/clang -DHAVE_CONFIG_H -I. -I../..  -DG_LOG_DOMAIN=\"Tracker\" -DTRACKER_COMPILATION -I../../src -I../../src -DLOCALEDIR=\""/opt/local/share/locale"\" -DTRACKER_EXTRACTORS_DIR=\""/opt/local/lib/tracker-1.0/extract-modules"\" -D_REENTRANT -I/opt/local/include/gio-unix-2.0/ -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include  -I/opt/local/include/libmediaart-1.0 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include  -I/opt/local/include -I/opt/local/include/libgsf-1 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/libxml2  -pipe -Os -arch x86_64 -MT tracker_extract-tracker-extract-decorator.o -MD -MP -MF .deps/tracker_extract-tracker-extract-decorator.Tpo -c -o tracker_extract-tracker-extract-decorator.o `test -f 'tracker-extract-decorator.c' || echo './'`tracker-extract-decorator.c
tracker-extract-libav.c:29:10: fatal error: 'tracker-media-art.h' file not found
#include <tracker-media-art.h>
         ^

also configure says

checking for GSTREAMER... yes
checking for AVFORMAT... yes
checking for AVCODEC... yes
checking for AVCODEC... yes
configure: WARNING: No need to specify a GStreamer backend if not using GStreamer

and ./configure --help says

  --enable-generic-media-extractor=ARG
                          enables one of the (gstreamer, libav, external,
                          auto) generic media extractor backends
                          [[default=auto]]

So looks like +gstreamer and +mplayer should be marked as conflicting with the appropriate logic as to default variants.

Questions/comments:

  • Why is the variant called +mplayer when the actual selector is libav (provided by ffmpeg)?
  • To get the same format support with +gstreamer as you would get with +mplayer (libav/ffmpeg) you would have to install more or even all of the gstreamer1 ports (-good, -bad, -ugly, -libav).

Changed 10 years ago by dbevans (David B. Evans)

Attachment: main.log added

Build log showing +myplayer failure

comment:10 Changed 10 years ago by juanrgar (Juan R. García Blanco)

Thank God you figured out why tracker-extract was failing, I was completely lost. I'm now working with tracker @1.0.0.

comment:11 Changed 10 years ago by juanrgar (Juan R. García Blanco)

As for the comments above:

  • Variant +mplayer has been renamed to +libav
  • When +gstreamer is active, gstreamer1-gst-plugins-* and gstreamer-gst-libav are added as dependencies.
  • I've added a patch to successfully compile trakcer-extract-libav.c

Comments on my side:

  • +nautilus and +evolution variants still not implemented.

Changed 10 years ago by juanrgar (Juan R. García Blanco)

Attachment: tracker-1.0.0-Portfile.tgz added

comment:12 Changed 10 years ago by dbevans (David B. Evans)

Version 1.0.0 committed to GNOME 3.12 stable test branch with minor modifications in r118187

  • unimplemented evolution, nautilus variants removed for now, can be added later when ready.
  • +gstreamer is default only if +libav is not set
  • remove duplicate lib dep on libpng

comment:13 Changed 10 years ago by dbevans (David B. Evans)

Status update:

After upgrading GNOME ports to the 3.12 level, I have been doing some further testing of tracker and gnome-photos.

Attached is an additional patch that fixes two fatal runtime issues in tracker-miner-fs

  • disables upower support which causes tracker-miner-fs to crash on startup
  • runs glib-compile-schemas post activate to make installed schemas available at runtime. Fixes another startup crash in tracker-miner-fs.

Applied to GNOME-3/stable test branch in r119098.

Last edited 10 years ago by dbevans (David B. Evans) (previous) (diff)

Changed 10 years ago by dbevans (David B. Evans)

Patch to fix some start up crashes in tracker-miner-fs

comment:14 Changed 10 years ago by dbevans (David B. Evans)

After applying this patch, tracker-miner-fs now fails on startup as follows:

$ /opt/local/libexec/tracker-miner-fs
(tracker-miner-fs:77655): Tracker-WARNING **: The maximum number of monitors to set (400) has been reached, not adding any new ones
(tracker-miner-fs:77655): Tracker-WARNING **: Could not open directory '/Users/devans/Documents/workspace/macports/mail/GNUMail-Aqua': Too many open files
(tracker-miner-fs:77655): Tracker-WARNING **: Could not open directory '/Users/devans/Documents/workspace/macports/mail/Pantomime-Framework': Too many open files
(tracker-miner-fs:77655): Tracker-WARNING **: Could not open directory '/Users/devans/Documents/workspace/macports/mail/abook': Too many open files
----

many, many similar iterations

----
(tracker-miner-fs:77655): Tracker-WARNING **: Could not open directory '/Users/devans/Documents/workspace/macports/mail/uudeview/files': Too many open files
(tracker-miner-fs:77655): Tracker-WARNING **: Could not open directory '/Users/devans/Documents/workspace/macports/mail/vm-pop3d/files': Too many open files
(tracker-miner-fs:77655): Tracker-WARNING **: Could not open directory '/Users/devans/Documents/workspace/macports/mail/vpopmail/files': Too many open files
(tracker-miner-fs:77655): Tracker-WARNING **: Could not query directory elements: Pipe creation failed
(tracker-miner-fs:77655): GLib-ERROR **: Creating pipes for GWakeup: Too many open files

Trace/BPT trap: 5

Version 0, edited 10 years ago by dbevans (David B. Evans) (next)

comment:15 Changed 7 years ago by kencu (Ken)

Resolution: fixed
Status: assignedclosed

somewhere along the line this made it into MacPorts, currently as tracker @1.12.3, but this ticket never was closed.

Note: See TracTickets for help on using tickets.