xlsx not being indexed?

Hi, I’m trying out EagleFiler. I dragged an xlsx file into my library but I can’t search its contents. I turned on verbose indexing and see this twice from eftexttool:


Error loading /Library/Spotlight/Microsoft Office.mdimporter/Contents/MacOS/Microsoft Office:  dlopen(/Library/Spotlight/Microsoft Office.mdimporter/Contents/MacOS/Microsoft Office, 262): no suitable image found.  Did find:
	/Library/Spotlight/Microsoft Office.mdimporter/Contents/MacOS/Microsoft Office: mach-o, but wrong architecture
	/Library/Spotlight/Microsoft Office.mdimporter/Contents/MacOS/Microsoft Office: mach-o, but wrong architecture

Cannot find function pointer OfficeImporterPluginFactory for factory <CFUUID 0x7fdc3f914700> BFA4E323-1889-11D9-82C8-000A959816BE in CFBundle/CFPlugIn 0x7fdc3f90b160 </Library/Spotlight/Microsoft Office.mdimporter> (bundle, not loaded)

I’m running macOS 10.13.6. I’m guessing this is because eftexttool is 64-bit but these Spotlight importers are 32-bit:


$ file '/Library/Spotlight/Microsoft Office.mdimporter/Contents/MacOS/Microsoft Office'
/Library/Spotlight/Microsoft Office.mdimporter/Contents/MacOS/Microsoft Office: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|BINDS_TO_WEAK>

I’m also guessing this is why Apple ships /usr/bin/mdimport as well as /usr/bin/mdimport32. (Trying to run mdimport on my xlsx file fails with the exact same error messages I got from eftexttool.)

Note that I can find the Excel file in question just fine with Spotlight itself.

Sound like I’m on the right track here, or should I send you some kind of further debug logs, or take other steps to troubleshoot this? I’d like to make sure that my Excel files can be indexed by EagleFiler. Thanks!

Dale

PS: Is the Office mdimporter 64-bit in Mojave? I don’t have a system to test it on handy.

Unfortunately, I don’t think there’s a way to index Excel files at this time. There are a number of issues conspiring to prevent this. You are right about the Office Spotlight importer being 32-bit on macOS 10.13. EagleFiler has historically worked around this by using mdimport32. However, on macOS 10.13 the Office importer causes crashes when invoked by mdimport32, so EagleFiler avoids doing that. EagleFiler has an alternate way of using Spotlight importers when mdimport/mdimport32 is not available, but this only works in 64-bit because eftexttool is 64-bit only. This is because Apple has dropped support for 32-bit compilation in Xcode 10.

Yes, but it fails for different reasons. macOS 10.14 introduced some new security features that prevent Spotlight importers from being used by non-system code unless System Integrity Protection is turned off. This affects mdimport (even if you invoke it yourself in the system Terminal app) as well as Apple’s own API for indexing files. I think the latter is definitely a bug and have filed a Radar with Apple. I will also be looking at alternative ways of indexing Excel files, but it’s probably not going to be a quick fix.

The good news is that none of this affects Word documents, since EagleFiler has built-in support for reading them directly.

I noticed this too, I get SIGSEGV when I ask it to index my xlsx file. Yet somehow Spotlight has managed to index it.

This is because Apple has dropped support for 32-bit compilation in Xcode 10.

Dropped support? I know I shouldn’t be surprised, but I am.

Yes, but it fails for different reasons. macOS 10.14 introduced some new security features that prevent Spotlight importers from being used by non-system code unless System Integrity Protection is turned off. This affects mdimport (even if you invoke it yourself in the system Terminal app) as well as Apple’s own API for indexing files. I think the latter is definitely a bug and have filed a Radar with Apple. I will also be looking at alternative ways of indexing Excel files, but it’s probably not going to be a quick fix.

That is awful and broken! I played with SearchKit some this weekend, and I’m not 100% convinced Apple really wants to support it. I’m barely convinced they want to keep Spotlight indexing Office files at this point.

I appreciate your detailed response, thank you very much!

I was able to find a workaround so that EagleFiler is able to index Excel and other documents on macOS 10.14. You can try this in the EagleFiler 1.8.7b3 public beta.

This is fixed in EagleFiler 1.8.7. The change takes effect for newly imported or edited files. For old files, you would need to rebuild the records index by holding down the Command and Option keys as you open the library.