Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run cutter appimage packaging in GHA. #2490

Merged
merged 16 commits into from
Dec 19, 2020
Merged

Conversation

karliss
Copy link
Member

@karliss karliss commented Nov 29, 2020

Your checklist for this pull request

Detailed description

Move one more configuration from travis to GHA. Configure the Ubuntu 16.04 cutter-deps to do the same as Cutter release package job did in Travis. To simplify things use bundled r2 instead of manually installing r2 system wide in the CI script. Quick test using grep indicates that bundled_r2 build results in some paths to the temporary bundle r2 install directory. Need to investigate if it causes any problems, If there are any problems I would expect most of them to affect the old Appimage the same way.

Rebuild and update Cutter deps. A rebuild was necessary for Linux compatibility with GHA environment. Rebuild also allows compiling using older Visual Studio version fixes the issue with shiboken(clang) not being able to parse latest MSVC headers. See the corresponding cutter-deps and cutter-deps-qt PRs for more details.

The new MacOS packaging isn't fully enabled as that might have additionall issues and this PR is already a bit too big. I want to leave that for separate PR.

Test plan (required)

  • Try running resulting artifact on an updated Ubuntu 16.04 VM
  • make sure r2 can find all it's resources in share folder
  • bundled decompilers work

Closing issues
closes #2479 (including latest appveyor failure)
closes #2511

@XVilka
Copy link
Member

XVilka commented Dec 10, 2020

Please rebase since some of the CI process has to be updated.

@karliss
Copy link
Member Author

karliss commented Dec 10, 2020

@XVilka Ok, will do once I have finished rebuilding cutter-deps. cutter-deps-qt are done and 2/3 os for cutter-deps.

@karliss
Copy link
Member Author

karliss commented Dec 13, 2020

Appimage opened on Ubuntu 16.04 but ghidra wasn't loaded. Sample python plugin worked, but opening settings caused crash related to python plugin.

Stacktrace
#0  PyErr_Occurred () at Python/errors.c:227
#1  0x00007ffff7777d05 in find_name_in_mro (type=type@entry=0x1484e80, 
    name=name@entry=0x7fffe0191730, error=error@entry=0x7fffffffcdf4)
    at Objects/typeobject.c:3206
#2  0x00007ffff7777e3d in _PyType_Lookup (type=type@entry=0x1484e80, 
    name=name@entry=0x7fffe0191730) at Objects/typeobject.c:3243
#3  0x00007ffff775f35c in _PyObject_GenericGetAttrWithDict (
    obj=0x7fffe01c39c0, name=0x7fffe0191730, dict=0x0, suppress=0)
    at Objects/object.c:1194
#4  0x00007ffff775ed84 in PyObject_GetAttrString (v=0x7fffe01c39c0, 
    name=) at Objects/object.c:795
#5  0x00000000006c0cfe in CutterPluginWrapper::getName (this=0xf81350)
    at src/bindings/CutterBindings/cutterplugin_wrapper.cpp:294
#6  0x00000000005fe835 in PluginsOptionsWidget::PluginsOptionsWidget (
    this=0x211efa0, dialog=)
    at ../src/dialogs/preferences/PluginsOptionsWidget.cpp:44
#7  0x00000000005a9bc7 in PreferencesDialog::PreferencesDialog (
    this=0x2015450, parent=)
    at ../src/dialogs/preferences/PreferencesDialog.cpp:54
#8  0x00000000004ff258 in MainWindow::on_actionPreferences_triggered (
    this=0x14855e0) at ../src/core/MainWindow.cpp:1622
#9  0x0000000000498ae3 in MainWindow::qt_static_metacall (_a=0x7fffffffd560, 
    _id=32, _c=QMetaObject::InvokeMetaMethod, _o=0x14855e0)
---Type  to continue, or q  to quit---
   n/TAC5DWH4SE/moc_MainWindow.cpp:330
#10 MainWindow::qt_metacall (this=0x14855e0, _c=QMetaObject::InvokeMetaMethod, _id=32, _a=0x7fffffffd560)
    at src/Cutter_autogen/TAC5DWH4SE/moc_MainWindow.cpp:331
#11 0x00007ffff253b037 in ?? () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Core.so.5
#12 0x00007ffff6ee80f2 in QAction::triggered(bool) () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Widgets.so.5
#13 0x00007ffff6eea69e in QAction::activate(QAction::ActionEvent) () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Widgets.so.5
#14 0x00007ffff2531dbb in QObject::event(QEvent*) () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Core.so.5
#15 0x00007ffff6eeb032 in QAction::event(QEvent*) () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Widgets.so.5
#16 0x00007ffff6eee49c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Widgets.so.5
#17 0x00007ffff6ef54d0 in QApplication::notify(QObject*, QEvent*) () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Widgets.so.5
#18 0x00007ffff2500a70 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Core.so.5
#19 0x00007ffff2503cc2 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Core.so.5
#20 0x00007ffff255f783 in ?? () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Core.so.5
#21 0x00007fffeff23197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007fffeff233f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007fffeff2349c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff255edcc in QEventDispatcherGlib::processEvents(QFlags) ()
   from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Core.so.5
#25 0x00007ffff24ff2fa in QEventLoop::exec(QFlags) () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Core.so.5
#26 0x00007ffff25088c7 in QCoreApplication::exec() () from /tmp/.mount_CuttervQeeAW/usr/bin/../lib/libQt5Core.so.5
#27 0x0000000000486b74 in main (argc=1, argv=) at ../src/Main.cpp:104

@karliss
Copy link
Member Author

karliss commented Dec 13, 2020

Plugin crash also happens in main branch without Appimage, created separate issue for that #2511

@karliss
Copy link
Member Author

karliss commented Dec 15, 2020

Ghidra is now included and python plugin crash fixed. Need to retest on Ubuntu 16.04 and Windows.

@karliss
Copy link
Member Author

karliss commented Dec 16, 2020

Appimage is good, now need to check windows build.

@karliss
Copy link
Member Author

karliss commented Dec 17, 2020

Windows works as well. It is possible to start mergin PRs starting with cutter-deps-qt.

@karliss karliss marked this pull request as ready for review December 18, 2020 00:29
Copy link
Member

@XVilka XVilka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Such complexity. I wish there was a way to avoid this, especially specifying exact libraries' versions....

Copy link
Member

@yossizap yossizap left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Tested Ubuntu and Windows artifacts.

@karliss karliss merged commit c985fdc into rizinorg:master Dec 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Build System CI Continuous integration Linux
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Skiboken bindings cause SIGSEGV CI builds are broken
4 participants