Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add missing library dependencies (bsc#1197120)
Short version ------------- tail -f ~/.y2log & # or tail -f /var/log/YaST2/y2log & echo 'Dir (.)' | Y2DISABLELANGUAGEPLUGINS=1 /usr/lib/YaST2/servers_non_y2/ag_udev_persistent would result in [liby2] Y2PluginComponent.cc(loadPlugin):234 error loading plugin /usr/lib64/YaST2/plugin/libpy2scr.so.2: /usr/lib64/YaST2/plugin/libpy2scr.so.2: undefined symbol: _ZTI18Y2ComponentCreator Explanation ----------- yast-core has for historical reasons many small shared libraries which depend on one another. They are almost always all loaded together. So when a library libfoo uses a symbol from another libbar but does not declare it with a -lbar linker option, it is not a problem because some other library from the group will -lbar. Some libraries are plugins, optionally loaded with dlopen. In https://bugzilla.suse.com/show_bug.cgi?id=1197120 (root cause: unrelated; symptom: error message about jemalloc) it turned out that stdio-communicating agents `/usr/lib/YaST2/servers_non_y2/ag_*`, written mostly in Perl, are loading: 1. the Perl-YCP binding (to be able to parse YCP traffic) 2. all the language bindings: Perl, Ruby, Python (2) is unnecessary and, by dlopen-ing Ruby, produces the jemalloc error. (2) can be disabled by putting Y2DISABLELANGUAGEPLUGINS=1 into the environment. When doing that, the missing dependencies in the remaining libraries are uncovered.
- Loading branch information