View Issue Details

IDProjectCategoryView StatusLast Update
0015090ScribusScripterpublic2018-01-07 03:29
Reporterwilliam Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Product Version1.5.4.svn 
Target VersionFixed in Version 
Summary0015090: scribus 1.5.4.svn built with scripter2 crashes during startup
DescriptionI downloaded the current svn on CentOS 7 and built with the cmake options -DWANT_SCRIPTER2=1 -DWANT_DEBUG=1 -DWANT_GRAPHICSMAGICK=1 -DWANT_VERSIONING=1 -DCMAKE_BUILD_TYPE=Debug
When running under gdb, I get

Pythonize constructor -- pid = 18812
Python interpreter initialized!

Running script: /u/gnu/scribus15s2bin/lib/scribus-1.5.4.svn/plugins/scripter/init_scripter.py
/u/gnu/scribus15s2bin/lib/scribus-1.5.4.svn/plugins/scripter added to PYTHONPATH

then a crash, and "bt" shows the trace below.
I think that the important point is line 72 of pythonize.cpp where Pythonize::runScript() calls PyRun_SimpleFile().

#0 0x00007fffc29de65e in _GLOBAL__sub_I_qpycore_classinfo.cpp () at /usr/lib64/python2.7/site-packages/PyQt4/QtCore.so
0000001 0x00007ffff7dea4c3 in _dl_init_internal () at /lib64/ld-linux-x86-64.so.2
0000002 0x00007ffff7deebd6 in dl_open_worker () at /lib64/ld-linux-x86-64.so.2
0000003 0x00007ffff7dea2d4 in _dl_catch_error () at /lib64/ld-linux-x86-64.so.2
0000004 0x00007ffff7dee2cb in _dl_open () at /lib64/ld-linux-x86-64.so.2
0000005 0x00007ffff40d5fbb in dlopen_doit () at /lib64/libdl.so.2
0000006 0x00007ffff7dea2d4 in _dl_catch_error () at /lib64/ld-linux-x86-64.so.2
0000007 0x00007ffff40d65bd in _dlerror_run () at /lib64/libdl.so.2
0000008 0x00007ffff40d6051 in dlopen@@GLIBC_2.2.5 () at /lib64/libdl.so.2
0000009 0x00007ffff4e9a2ef in _PyImport_GetDynLoadFunc () at /lib64/libpython2.7.so.1.0
0000010 0x00007ffff4e82bfe in _PyImport_LoadDynamicModule () at /lib64/libpython2.7.so.1.0
0000011 0x00007ffff4e80d01 in import_submodule () at /lib64/libpython2.7.so.1.0
0000012 0x00007ffff4e80f4d in load_next () at /lib64/libpython2.7.so.1.0
0000013 0x00007ffff4e81968 in PyImport_ImportModuleLevel () at /lib64/libpython2.7.so.1.0
0000014 0x00007ffff4e64bdf in builtin___import__ () at /lib64/libpython2.7.so.1.0
0000015 0x00007ffff4dd49a3 in PyObject_Call () at /lib64/libpython2.7.so.1.0
0000016 0x00007ffff4e667b7 in PyEval_CallObjectWithKeywords () at /lib64/libpython2.7.so.1.0
0000017 0x00007ffff4e6b475 in PyEval_EvalFrameEx () at /lib64/libpython2.7.so.1.0
0000018 0x00007ffff4e6fefd in PyEval_EvalCodeEx () at /lib64/libpython2.7.so.1.0
0000019 0x00007ffff4e70002 in PyEval_EvalCode () at /lib64/libpython2.7.so.1.0
0000020 0x00007ffff4e8943f in run_mod () at /lib64/libpython2.7.so.1.0
0000021 0x00007ffff4e8a5fe in PyRun_FileExFlags () at /lib64/libpython2.7.so.1.0
0000022 0x00007ffff4e8b889 in PyRun_SimpleFileExFlags () at /lib64/libpython2.7.so.1.0
0000023 0x00007fffd810d46c in Pythonize::runScript(char*) (this=0x1b7ebf0, scriptPath=0x1b79b68 "/u/gnu/scribus15s2bin/lib/scribus-1.5.4.svn/plugins/scripter/init_scripter.py")
    at /u/gnu/scribus15s2/Scribus/scribus/plugins/scripter/pythonize.cpp:72
0000024 0x00007fffd8109162 in ScripterImpl::runScript(QString const&) (this=0x1b82910, filename=...) at /u/gnu/scribus15s2/Scribus/scribus/plugins/scripter/scripterimpl.cpp:67
0000025 0x00007fffd8108fe0 in ScripterImpl::init() (this=0x1b82910) at /u/gnu/scribus15s2/Scribus/scribus/plugins/scripter/scripterimpl.cpp:58
0000026 0x00007fffd81085a2 in Scripter::initPlugin() (this=0x1b856f0) at /u/gnu/scribus15s2/Scribus/scribus/plugins/scripter/scripter.cpp:65
0000027 0x0000000000b963a3 in PluginManager::enablePlugin(PluginManager::PluginData&) (this=0x18ee290, pda=...) at /u/gnu/scribus15s2/Scribus/scribus/pluginmanager.cpp:263
0000028 0x0000000000b95794 in PluginManager::initPlugin(QString) (this=0x18ee290, fileName=...) at /u/gnu/scribus15s2/Scribus/scribus/pluginmanager.cpp:166
0000029 0x0000000000b95a5a in PluginManager::initPlugs() (this=0x18ee290) at /u/gnu/scribus15s2/Scribus/scribus/pluginmanager.cpp:193
0000030 0x0000000000d6a17e in ScribusCore::initScribusCore(bool, bool, bool, QString) (this=
    0x196c6f0, showSplash=true, showFontInfo=false, showProfileInfo=false, newGuiLanguage=...) at /u/gnu/scribus15s2/Scribus/scribus/scribuscore.cpp:202
0000031 0x0000000000d69a7f in ScribusCore::startGUI(bool, bool, bool, QString) (this=0x196c6f0, showSplash=true, showFontInfo=false, showProfileInfo=false, newGuiLanguage=...)
    at /u/gnu/scribus15s2/Scribus/scribus/scribuscore.cpp:117
0000032 0x0000000000d65cd5 in ScribusQApp::init() (this=0x7fffffffbc00) at /u/gnu/scribus15s2/Scribus/scribus/scribusapp.cpp:375
0000033 0x0000000001351abb in mainApp(int, char**) (argc=1, argv=0x7fffffffbd88) at /u/gnu/scribus15s2/Scribus/scribus/main_nix.cpp:76
0000034 0x0000000001351a4d in main(int, char**) (argc=1, argv=0x7fffffffbd88) at /u/gnu/scribus15s2/Scribus/scribus/main_nix.cpp:54

Additional InformationI attached two files: A small patch to fix some compile errors in the scripter and a build script to show the build options.
TagsNo tags attached.
PatchNo

Activities

william

2018-01-02 04:51

updater  

scribus-scripter2-20180101-233528.pat (3,832 bytes)
build-scribus-s2.sh (991 bytes)

jghali

2018-01-02 08:54

administrator   ~0044800

Thanks for the patch. However Scripter 2 has basically never worked under 1.5.x due to Qt internal changes between Qt4 and Qt5. Unless you plan to perform Scribus development and make Scripter 2 work, you should not attempt to compile it.

william

2018-01-02 15:04

updater   ~0044802

Thanks for the reply.
How much work would it take? I have access to a Qt expert this week.
I built Scripter2 with python2. Would it be better trying with python3?
Would it be better starting with the version in https://github.com/aoloe/scribus-plugin-scripter ?

jghali

2018-01-02 15:15

administrator   ~0044803

Unfortunately I cannot help much on that subject. The original scripter2 code was written during a Google Summer of Code and the author of that code has not shown much (if any) sign of life since then.

ale

2018-01-03 08:36

manager   ~0044804

hi william, the problem is about connecting the c++ / qt signals and slots with the python / pyqt signals and slots.

personally, i've given up for now on the scripter 2, since it relies on two bits of software that are very (very!) clever but not supported / in development (for many years!).
i'm trying a different approach based on pybind11, i got pretty far, but i'm not 100% yet that it can become a solution for scribus' scripter needs.

i had "access" to a pyqt expert a few years ago and we could not sort it out, but if you can get that to work it would be wonderful!

the ticket with a reference to the failing line is: https://github.com/aoloe/scribus-plugin-scripter/issues/7

william

2018-01-03 14:09

updater   ~0044806

Thanks for the replies.

jghali

2018-01-06 23:49

administrator   ~0044817

@wiliam, I applied your patch

william

2018-01-07 03:29

updater   ~0044820

Thanks. I hope that it helps if anyone tries to continue with scripter2.

Issue History

Date Modified Username Field Change
2018-01-02 04:51 william New Issue
2018-01-02 04:51 william File Added: scribus-scripter2-20180101-233528.pat
2018-01-02 04:51 william File Added: build-scribus-s2.sh
2018-01-02 08:54 jghali Note Added: 0044800
2018-01-02 15:04 william Note Added: 0044802
2018-01-02 15:15 jghali Note Added: 0044803
2018-01-03 08:36 ale Note Added: 0044804
2018-01-03 14:09 william Note Added: 0044806
2018-01-06 23:49 jghali Note Added: 0044817
2018-01-07 03:29 william Note Added: 0044820