Description of problem: When loading abiword, it reports to the terminal:: (AbiWord-2.4:10305): GModule-CRITICAL **: g_module_close: assertion `module != NULL' failed strace abiword --g-fatal-warnings shows that abiword is trying to open libgoffice-1.so and not finding it. This is because libgoffice-1.so is provided by the goffice-devel package rather than the goffice package. Investigation of the abiword source code shows that a plugin is using g_module_open ("libgoffice-1", (GModuleFlags)0) GModule checks for libgoffice-1, libgoffice-1.so, and libgoffice-1.la in order to load the module dynamically. This functionality of GModule won't work without the .so file. Version-Release number of selected component (if applicable): abiword-2.4.4-2.fc5 goffice-0.2.0-1.fc5 How reproducible: Everytime Steps to Reproduce: 1. yum erase goffice-devel 2. abiword & 3. Actual results: (AbiWord-2.4:10305): GModule-CRITICAL **: g_module_close: assertion `module != NULL' failed Expected results: Not seeing any warnings Additional info: This happens on both x86_64 and x86. So the question is: Is libgoffice intended to be loaded via GModule? If so, then the goffice main package should provide goffice.so. If not, then the abiword plugin will have to be rewritten to statically link to libgoffice rather than dynamically loading it at runtime.
Created attachment 128554 [details] strace of abiword --g-fatal-warnings. Relevant part appears to be ~ line 12640
libgofffice is a _lib_ not a plugin and as such should not be opened through ldopen, instead the abiword plugin using libgoffice should be linked with -lgoffice. Reassinging to abiword.
Indeed, Hans is correct. Will patch this upstream, and will patch it in Extras as well, as I don't expect 2.4.5 soonish.
the plugin IS liked with -lgoffice, but not symbols are resolved at runtime and this breaks goffice plugins, so the use of g_module_open/g_module_close to force symbols resolution. If someone knows a cleaner solution, I'd be happy to use it.
Can't you fix this by passing RTLD_NOW to the dlopen call for loading the plugin? If not can you describe the problem a bit more, your current description os rather short.
I was wrong about goffice plugins. It is a libglade problem. Simplistic description: Currently, modules are loaded with the LOCAL flag. So the symbols from the plugin (and its libraries) are not loaded in the main program and libglade can't use them. As we have glade files with custom widgets, we need to make global the symbols from libgoffice. Curiously, if a widget of the same type has already been created, libglade finds it. RTLD_NOW does not fix it. I'll think a bit more about that and try to find a solution.
Fixed upstream.
Closing, as per comment 7