View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0016593 | Scribus | Build System | public | 2021-06-13 09:57 | 2021-11-09 21:39 |
Reporter | yopito | Assigned To | jghali | ||
Priority | high | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x86_64 | OS | Linux | OS Version | VoidLinux |
Product Version | 1.5.7 | ||||
Fixed in Version | 1.5.8.svn | ||||
Summary | 0016593: Plugin load fails with undefined symbols (for all plugins) | ||||
Description | scribus 1.5.7 fails to load any of its plugins. $ /usr/bin/scribus Erreur lors du chargement d'un plugin /usr/lib/scribus/plugins//libxpsexplugin.so: undefined symbol: _ZTI14ScActionPlugin Erreur lors du chargement d'un plugin /usr/lib/scribus/plugins//libwmfimplugin.so: undefined symbol: _ZTI14LoadSavePlugin Erreur lors du chargement d'un plugin /usr/lib/scribus/plugins//libuniconvertorplugin.so: undefined symbol: _ZTI14LoadSavePlugin [...] | ||||
Steps To Reproduce | build scribus 1.5.7 via xbps-src framework (VoidLinux packaging system). then launch /usr/bin/scribus | ||||
Additional Information | Already happened and fixed on issue#6897, but its fix does not work in VoidLinux's build & packaging generation. This is because export symbol directive on scribus binary has not been applied. Because "GCC" as a cmake's variable is not defined (used in scribus/CMakeLists.txt) So I remove GCC variable from scribus/CMakeLists.txt as below: no more trouble, scribus is loading its 54 plugins fine. Here my proposed patch that fix this problem (formal patch is attached to this bug) : @@ -757,7 +757,7 @@ # Should fix bug 6897 . set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS -Wl,-E) endif () -if (GCC AND NOT WIN32) +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT WIN32) # Use the -E / --export-dynamic flag to ensure that symbols in the Scribus # binary are in the public symbol table for plugins. The symbols must also # be set as SCRIBUS_API if we're building with -fvisibility=hidden . VoidLinux's corresponding issue for reference: https://github.com/void-linux/void-packages/issues/31343 | ||||
Tags | No tags attached. | ||||
Patch | Yes | ||||
|
export-symbols-for-plugins.patch (555 bytes)
--- scribus/CMakeLists.txt.ORIG 2021-04-25 22:24:52.000000000 +0200 +++ scribus/CMakeLists.txt 2021-06-12 16:23:22.884229251 +0200 @@ -757,7 +757,7 @@ # Should fix bug 6897 . set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS -Wl,-E) endif () -if (GCC AND NOT WIN32) +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT WIN32) # Use the -E / --export-dynamic flag to ensure that symbols in the Scribus # binary are in the public symbol table for plugins. The symbols must also # be set as SCRIBUS_API if we're building with -fvisibility=hidden . |
|
Applied, thanks! |
Date Modified | Username | Field | Change |
---|---|---|---|
2021-06-13 09:57 | yopito | New Issue | |
2021-06-13 09:57 | yopito | File Added: export-symbols-for-plugins.patch | |
2021-06-13 11:41 | jghali | Assigned To | => jghali |
2021-06-13 11:41 | jghali | Status | new => resolved |
2021-06-13 11:41 | jghali | Resolution | open => fixed |
2021-06-13 11:41 | jghali | Fixed in Version | => 1.5.8.svn |
2021-06-13 11:41 | jghali | Note Added: 0049169 | |
2021-11-09 21:39 | cbradney | Status | resolved => closed |