Opened 7 years ago

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

Download all attachments as: .zip

Change History (22)

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

Attachment: Portfile added

Preliminary Portfile

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

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

comment:2 Changed 7 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 7 years ago by dbevans (David B. Evans)

Attachment: patch-tracker.diff added

Patch to fix configuration errors

comment:3 Changed 7 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 7 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 7 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 7 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 7 years ago by juanrgar (Juan R. García Blanco)

Attachment: tracker-0.17.8-Portfile.tgz added

comment:7 Changed 7 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 7 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 7 years ago by dbevans (David B. Evans)

Patch to fix undefined symbols in loadable modules

comment:9 Changed 7 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 7 years ago by dbevans (David B. Evans)

Attachment: main.log added

Build log showing +myplayer failure

comment:10 Changed 7 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 7 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 7 years ago by juanrgar (Juan R. García Blanco)

Attachment: tracker-1.0.0-Portfile.tgz added

comment:12 Changed 7 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 7 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 7 years ago by dbevans (David B. Evans) (previous) (diff)

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

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

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

After applying this patch, tracker-miner-fs now fails on startup (after running silently for 20 seconds or so) 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

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

comment:15 Changed 3 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.