ptitSeb / box86

Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices
https://box86.org
MIT License
3.35k stars 232 forks source link

Sublime Text not working 100% #330

Open mbodomi opened 3 years ago

mbodomi commented 3 years ago

Hi! Sublime Text 2.0.2 can edit code but I am not able to install Package Control. I am using the x86 binary tarball. (It's not a fully opensource project and they dont build for arm sadly) (sublime_text:27737): GLib-CRITICAL **: hh:mm:ss.mls: Source ID ### was not found when attempting to remove it hh:mm:ss.mls is actual timestamp, ### is an actual ID of its complaining about

What stuff fo I need to Install to make it work? I'm running armhf raspberry os on RPi400.

ptitSeb commented 3 years ago

I have analyzed this message and to me, it seems Sublime is indeed remove timeout source that are already removed. I also have the same behaviour on an actual x86 linux.

Now, that package controls thingy: I don't see how to install it on Sublime 2. The conmand palette or the menu entry are both not present (same on x86 linux).

mbodomi commented 3 years ago

I am talking about v2 because v3 has more deps unresolved.. now i'm trying to run v2 with /path/to/sublime_text --debug thru box86 ofcoz =)

ptitSeb commented 3 years ago

Yeah, Sublime Text 3 doesn't work correctly on box86 for now. Some gtk3/gdk3 function must be not correctly wrapped and it's not behaving correctly for now. Sublime Text 2 should be fine. I haven't encountered issue, but I haven't tested much. You can use BOX86_LOG=1 env. var. to see what libs is loaded. You can also use BOX86_DLSYM_ERROR=1 to see result of dlsym and dlopen functions.

mbodomi commented 3 years ago

Managed to grab an old ~2015 copy of Package Control via Internet Archive Wayback Machine. It installed an x86 .so module inside Sublime's python environment... which causes to crash Call to dlsym(0x7, init_ssl) :0xb58073f0 Error: PltReolver: Symbol SSL_load_error_strings not found, cannot apply R_386_JMP_SLOT @0xb580a1e8 (0xb5804216) in /home/pi/.config/sublime-text-2/Packages/ssl-linux/st2_linux_x32/libssl-1.0.0/_ssl.so `

mbodomi commented 3 years ago

I deleted the .so and installed an arm one on the system... but now its some python related regex issue in the http response parser ....

mbodomi commented 3 years ago

I am in a armhf (arm32) chroot now Installed libgtk2.0-0 and libcairo2 and libpango1.0-0 How do I make my chroot reach X?

(32-chroot)pi@raspberrypi:~ $ BOX86_DLSYM_ERROR=1 BOX86_LOG=1 box86 Apps/Sublime\ Text\ 2/sublime_text 
Debug level is 1
Dynarec for ARM, with extension: HALF FAST_MULT EDSP NEON VFPv4 IDIVA PageSize:4096
Box86 with Dynarec v0.2.1  built on Feb 10 2021 21:13:17
Using default BOX86_LD_LIBRARY_PATH: ./:lib/:lib32/:x86/
Using default BOX86_PATH: ./:bin/
Counted 20 Env var
Looking for Apps/Sublime Text 2/sublime_text
Using native(wrapped) libgobject-2.0.so.0
Using native(wrapped) libglib-2.0.so.0
Using native(wrapped) librt.so.1
Using native(wrapped) libpthread.so.0
Using native(wrapped) libdl.so.2
Using native(wrapped) libutil.so.1
Using native(wrapped) libX11.so.6
Using emulated /lib/i386-linux-gnu/libstdc++.so.6
Using native(wrapped) libm.so.6
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux.so.2
Using emulated /lib/i386-linux-gnu/libgcc_s.so.1
Call to dlopen("libgdk-x11-2.0.so"/0x85eddad, 1)
Warning: Cannot dlopen("libgdk-x11-2.0.so"/0x85eddad, 1)
Call to dlopen("libgdk-x11-2.0.so.0"/0x85eddbf, 1)
Using native(wrapped) libgdk-x11-2.0.so.0
Using native(wrapped) libgio-2.0.so.0
Using native(wrapped) libgmodule-2.0.so.0
Using native(wrapped) libgdk_pixbuf-2.0.so.0
dlopen: New handle 0x1 (libgdk-x11-2.0.so.0), dlopened=1
Call to dlsym(0x1, gdk_cairo_create) :0x630f8000
Call to dlsym(0x1, gdk_cursor_new_for_display) :0x630f8010
Call to dlsym(0x1, gdk_cursor_unref) :0x630f8020
Call to dlsym(0x1, gdk_error_trap_pop) :0x630f8030
Call to dlsym(0x1, gdk_error_trap_push) :0x630f8040
Call to dlsym(0x1, gdk_input_add) :0x630f8050
Call to dlsym(0x1, gdk_input_remove) :0x630f8060
Call to dlsym(0x1, gdk_keymap_translate_keyboard_state) :0x630f8070
Call to dlsym(0x1, gdk_keyval_to_unicode) :0x630f8080
Call to dlsym(0x1, gdk_pixbuf_new_from_file) :0x63101000
Call to dlsym(0x1, gdk_region_get_rectangles) :0x630f8090
Call to dlsym(0x1, gdk_screen_get_default) :0x630f80a0
Call to dlsym(0x1, gdk_screen_get_display) :0x630f80b0
Call to dlsym(0x1, gdk_screen_get_height) :0x630f80c0
Call to dlsym(0x1, gdk_screen_get_rgb_colormap) :0x630f80d0
Call to dlsym(0x1, gdk_screen_get_rgba_colormap) :0x630f80e0
Call to dlsym(0x1, gdk_screen_get_root_window) :0x630f80f0
Call to dlsym(0x1, gdk_screen_get_width) :0x630f8100
Call to dlsym(0x1, gdk_screen_get_n_monitors) :0x630f8110
Call to dlsym(0x1, gdk_screen_get_monitor_geometry) :0x630f8120
Call to dlsym(0x1, gdk_unicode_to_keyval) :0x630f8130
Call to dlsym(0x1, gdk_window_get_frame_extents) :0x630f8140
Call to dlsym(0x1, gdk_window_get_origin) :0x630f8150
Call to dlsym(0x1, gdk_window_get_state) :0x630f8160
Call to dlsym(0x1, gdk_window_invalidate_rect) :0x630f8170
Call to dlsym(0x1, gdk_window_set_cursor) :0x630f8180
Call to dlsym(0x1, gdk_window_move_resize) :0x630f8190
Call to dlsym(0x1, gdk_x11_display_get_xdisplay) :0x630f81a0
Call to dlsym(0x1, gdk_x11_drawable_get_xid) :0x630f81b0
Call to dlsym(0x1, gdk_x11_get_server_time) :0x630f81c0
Call to dlsym(0x1, gdk_x11_get_xatom_by_name_for_display) :0x630f81d0
Call to dlsym(0x1, gdk_x11_window_set_user_time) :0x630f81e0
Call to dlopen("libgtk-x11-2.0.so"/0x85eddd3, 1)
Warning: Cannot dlopen("libgtk-x11-2.0.so"/0x85eddd3, 1)
Call to dlopen("libgtk-x11-2.0.so.0"/0x85edde5, 1)
Using native(wrapped) libgtk-x11-2.0.so.0
Using native(wrapped) libpangocairo-1.0.so.0
Using native(wrapped) libpango-1.0.so.0
dlopen: New handle 0x2 (libgtk-x11-2.0.so.0), dlopened=1
Call to dlsym(0x2, gtk_accel_group_new) :0x63106000
Call to dlsym(0x2, gtk_accelerator_get_default_mod_mask) :0x63106010
Call to dlsym(0x2, gtk_box_get_type) :0x63106020
Call to dlsym(0x2, gtk_box_pack_start) :0x63106030
Call to dlsym(0x2, gtk_check_menu_item_get_type) :0x63106040
Call to dlsym(0x2, gtk_check_menu_item_new_with_label) :0x63106050
Call to dlsym(0x2, gtk_check_menu_item_set_active) :0x63106060
Call to dlsym(0x2, gtk_clipboard_clear) :0x63106070
Call to dlsym(0x2, gtk_clipboard_get) :0x63106080
Call to dlsym(0x2, gtk_clipboard_set_text) :0x63106090
Call to dlsym(0x2, gtk_clipboard_set_with_data) :0x631060a0
Call to dlsym(0x2, gtk_clipboard_store) :0x631060b0
Call to dlsym(0x2, gtk_clipboard_wait_for_text) :0x631060c0
Call to dlsym(0x2, gtk_container_add) :0x631060d0
Call to dlsym(0x2, gtk_container_get_children) :0x631060e0
Call to dlsym(0x2, gtk_container_get_type) :0x631060f0
Call to dlsym(0x2, gtk_container_remove) :0x63106100
Call to dlsym(0x2, gtk_dialog_add_button) :0x63106110
Call to dlsym(0x2, gtk_dialog_get_type) :0x63106120
Call to dlsym(0x2, gtk_dialog_run) :0x63106130
Call to dlsym(0x2, gtk_dialog_set_default_response) :0x63106140
Call to dlsym(0x2, gtk_drag_dest_set) :0x63106150
Call to dlsym(0x2, gtk_drag_finish) :0x63106160
Call to dlsym(0x2, gtk_file_chooser_add_filter) :0x63106170
Call to dlsym(0x2, gtk_file_chooser_dialog_new) :0x63106180
Call to dlsym(0x2, gtk_file_chooser_get_filename) :0x63106190
Call to dlsym(0x2, gtk_file_chooser_get_files) :0x631061a0
Call to dlsym(0x2, gtk_file_chooser_get_type) :0x631061b0
Call to dlsym(0x2, gtk_file_chooser_set_current_folder) :0x631061c0
Call to dlsym(0x2, gtk_file_chooser_set_current_name) :0x631061d0
Call to dlsym(0x2, gtk_file_chooser_set_do_overwrite_confirmation) :0x631061e0
Call to dlsym(0x2, gtk_file_chooser_set_local_only) :0x631061f0
Call to dlsym(0x2, gtk_file_chooser_set_select_multiple) :0x63106200
Call to dlsym(0x2, gtk_file_filter_add_pattern) :0x63106210
Call to dlsym(0x2, gtk_file_filter_new) :0x63106220
Call to dlsym(0x2, gtk_file_filter_set_name) :0x63106230
Call to dlsym(0x2, gtk_get_current_event_time) :0x63106240
Call to dlsym(0x2, gtk_im_context_filter_keypress) :0x63106250
Call to dlsym(0x2, gtk_im_context_set_client_window) :0x63106260
Call to dlsym(0x2, gtk_im_multicontext_new) :0x63106270
Call to dlsym(0x2, gtk_init) :0x63106280
Call to dlsym(0x2, gtk_main) :0x63106290
Call to dlsym(0x2, gtk_main_quit) :0x631062a0
Call to dlsym(0x2, gtk_menu_attach_to_widget) :0x631062b0
Call to dlsym(0x2, gtk_menu_bar_new) :0x631062c0
Call to dlsym(0x2, gtk_menu_get_type) :0x631062d0
Call to dlsym(0x2, gtk_menu_item_get_label) :0x631062e0
Call to dlsym(0x2, gtk_menu_item_get_submenu) :0x631062f0
Call to dlsym(0x2, gtk_menu_item_get_type) :0x63106300
Call to dlsym(0x2, gtk_menu_item_new_with_label) :0x63106310
Call to dlsym(0x2, gtk_menu_item_set_label) :0x63106320
Call to dlsym(0x2, gtk_menu_item_set_submenu) :0x63106330
Call to dlsym(0x2, gtk_menu_item_set_use_underline) :0x63106340
Call to dlsym(0x2, gtk_menu_new) :0x63106350
Call to dlsym(0x2, gtk_menu_popup) :0x63106360
Call to dlsym(0x2, gtk_menu_shell_append) :0x63106370
Call to dlsym(0x2, gtk_menu_shell_get_type) :0x63106380
Call to dlsym(0x2, gtk_message_dialog_new) :0x63106390
Call to dlsym(0x2, gtk_message_dialog_new_with_markup) :0x631063a0
Call to dlsym(0x2, gtk_selection_data_get_uris) :0x631063b0
Call to dlsym(0x2, gtk_selection_data_set_text) :0x631063c0
Call to dlsym(0x2, gtk_separator_menu_item_new) :0x631063d0
Call to dlsym(0x2, gtk_settings_get_default) :0x631063e0
Call to dlsym(0x2, gtk_show_uri) :0x631063f0
Call to dlsym(0x2, gtk_vbox_new) :0x63106400
Call to dlsym(0x2, gtk_widget_add_accelerator) :0x63106410
Call to dlsym(0x2, gtk_widget_add_events) :0x63106420
Call to dlsym(0x2, gtk_widget_destroy) :0x63106430
Call to dlsym(0x2, gtk_widget_get_display) :0x63106440
Call to dlsym(0x2, gtk_widget_get_parent) :0x63106450
Call to dlsym(0x2, gtk_widget_get_screen) :0x63106460
Call to dlsym(0x2, gtk_widget_get_type) :0x63106470
Call to dlsym(0x2, gtk_widget_get_window) :0x63106480
Call to dlsym(0x2, gtk_widget_grab_focus) :0x63106490
Call to dlsym(0x2, gtk_widget_hide) :0x631064a0
Call to dlsym(0x2, gtk_widget_remove_accelerator) :0x631064b0
Call to dlsym(0x2, gtk_widget_set_app_paintable) :0x631064c0
Call to dlsym(0x2, gtk_widget_set_colormap) :0x631064d0
Call to dlsym(0x2, gtk_widget_set_double_buffered) :0x631064e0
Call to dlsym(0x2, gtk_widget_set_sensitive) :0x631064f0
Call to dlsym(0x2, gtk_widget_show) :0x63106500
Call to dlsym(0x2, gtk_widget_show_all) :0x63106510
Call to dlsym(0x2, gtk_window_add_accel_group) :0x63106520
Call to dlsym(0x2, gtk_window_fullscreen) :0x63106530
Call to dlsym(0x2, gtk_window_get_type) :0x63106540
Call to dlsym(0x2, gtk_window_iconify) :0x63106550
Call to dlsym(0x2, gtk_window_maximize) :0x63106560
Call to dlsym(0x2, gtk_window_move) :0x63106570
Call to dlsym(0x2, gtk_window_new) :0x63106580
Call to dlsym(0x2, gtk_window_present_with_time) :0x63106590
Call to dlsym(0x2, gtk_window_remove_accel_group) :0x631065a0
Call to dlsym(0x2, gtk_window_resize) :0x631065b0
Call to dlsym(0x2, gtk_window_set_default_icon_list) :0x631065c0
Call to dlsym(0x2, gtk_window_set_default_size) :0x631065d0
Call to dlsym(0x2, gtk_window_set_keep_above) :0x631065e0
Call to dlsym(0x2, gtk_window_set_modal) :0x631065f0
Call to dlsym(0x2, gtk_window_set_position) :0x63106600
Call to dlsym(0x2, gtk_window_set_title) :0x63106610
Call to dlsym(0x2, gtk_window_set_transient_for) :0x63106620
Call to dlsym(0x2, gtk_window_set_type_hint) :0x63106630
Call to dlsym(0x2, gtk_window_stick) :0x63106640
Call to dlsym(0x2, gtk_window_unfullscreen) :0x63106650
Call to dlopen("libgio-2.0.so"/0x85eddf9, 1)
dlopen: New handle 0x3 (libgio-2.0.so), dlopened=0
Call to dlsym(0x3, g_bus_get_sync) :0x630fb000
Call to dlsym(0x3, g_bus_own_name) :0x630fb010
Call to dlsym(0x3, g_dbus_connection_emit_signal) :0x630fb020
Call to dlsym(0x3, g_dbus_connection_register_object) :0x630fb030
Call to dlsym(0x3, g_dbus_connection_send_message_with_reply) :0x630fb040
Call to dlsym(0x3, g_dbus_connection_send_message_with_reply_finish) :0x630fb050
Call to dlsym(0x3, g_dbus_message_get_body) :0x630fb060
Call to dlsym(0x3, g_dbus_message_new_method_call) :0x630fb070
Call to dlsym(0x3, g_dbus_message_set_body) :0x630fb080
Call to dlsym(0x3, g_dbus_method_invocation_return_value) :0x630fb090
Call to dlsym(0x3, g_dbus_node_info_new_for_xml) :0x630fb0a0
Call to dlsym(0x3, g_dbus_node_info_unref) :0x630fb0b0
Call to dlsym(0x3, g_dbus_proxy_get_connection) :0x630fb0c0
Call to dlsym(0x3, g_dbus_proxy_get_name) :0x630fb0d0
Call to dlsym(0x3, g_dbus_proxy_new) :0x630fb0e0
Call to dlsym(0x3, g_dbus_proxy_new_finish) :0x630fb0f0
Call to dlsym(0x3, g_file_get_path) :0x630fb100
Call to dlsym(0x3, g_file_new_for_uri) :0x630fb110
Call to dlopen("libcairo.so"/0x85c0ed5, 1)
Warning: Cannot dlopen("libcairo.so"/0x85c0ed5, 1)
Call to dlopen("libcairo.so.2"/0x85c0ee1, 1)
Using native(wrapped) libcairo.so.2
dlopen: New handle 0x4 (libcairo.so.2), dlopened=1
Call to dlsym(0x4, cairo_clip) :0x63519000
Call to dlsym(0x4, cairo_create) :0x63519010
Call to dlsym(0x4, cairo_destroy) :0x63519020
Call to dlsym(0x4, cairo_fill) :0x63519030
Call to dlsym(0x4, cairo_font_options_create) :0x63519040
Call to dlsym(0x4, cairo_font_options_destroy) :0x63519050
Call to dlsym(0x4, cairo_font_options_set_antialias) :0x63519060
Call to dlsym(0x4, cairo_get_source) :0x63519070
Call to dlsym(0x4, cairo_image_surface_create) :0x63519080
Call to dlsym(0x4, cairo_image_surface_create_for_data) :0x63519090
Call to dlsym(0x4, cairo_image_surface_get_data) :0x635190a0
Call to dlsym(0x4, cairo_image_surface_get_format) :0x635190b0
Call to dlsym(0x4, cairo_image_surface_get_height) :0x635190c0
Call to dlsym(0x4, cairo_image_surface_get_stride) :0x635190d0
Call to dlsym(0x4, cairo_image_surface_get_width) :0x635190e0
Call to dlsym(0x4, cairo_line_to) :0x635190f0
Call to dlsym(0x4, cairo_matrix_init_scale) :0x63519100
Call to dlsym(0x4, cairo_matrix_init_translate) :0x63519110
Call to dlsym(0x4, cairo_matrix_translate) :0x63519120
Call to dlsym(0x4, cairo_move_to) :0x63519130
Call to dlsym(0x4, cairo_paint_with_alpha) :0x63519140
Call to dlsym(0x4, cairo_pattern_set_extend) :0x63519150
Call to dlsym(0x4, cairo_pattern_set_matrix) :0x63519160
Call to dlsym(0x4, cairo_rectangle) :0x63519170
Call to dlsym(0x4, cairo_reset_clip) :0x63519180
Call to dlsym(0x4, cairo_restore) :0x63519190
Call to dlsym(0x4, cairo_save) :0x635191a0
Call to dlsym(0x4, cairo_set_line_width) :0x635191b0
Call to dlsym(0x4, cairo_set_operator) :0x635191c0
Call to dlsym(0x4, cairo_set_source_rgb) :0x635191d0
Call to dlsym(0x4, cairo_set_source_rgba) :0x635191e0
Call to dlsym(0x4, cairo_set_source_surface) :0x635191f0
Call to dlsym(0x4, cairo_stroke) :0x63519200
Call to dlsym(0x4, cairo_surface_destroy) :0x63519210
Call to dlsym(0x4, cairo_surface_flush) :0x63519220
Call to dlsym(0x4, cairo_translate) :0x63519230
Call to dlsym(0x4, cairo_scale) :0x63519240
Call to dlopen("libpango-1.0.so"/0x85c0eb3, 1)
dlopen: New handle 0x5 (libpango-1.0.so), dlopened=0
Call to dlsym(0x5, pango_font_description_free) :0x6310d000
Call to dlsym(0x5, pango_font_description_new) :0x6310d010
Call to dlsym(0x5, pango_font_description_set_family) :0x6310d020
Call to dlsym(0x5, pango_font_description_set_size) :0x6310d030
Call to dlsym(0x5, pango_font_description_set_style) :0x6310d040
Call to dlsym(0x5, pango_font_description_set_weight) :0x6310d050
Call to dlsym(0x5, pango_font_get_metrics) :0x6310d060
Call to dlsym(0x5, pango_font_map_load_font) :0x6310d070
Call to dlsym(0x5, pango_font_metrics_get_ascent) :0x6310d080
Call to dlsym(0x5, pango_font_metrics_get_descent) :0x6310d090
Call to dlsym(0x5, pango_font_metrics_unref) :0x6310d0a0
Call to dlsym(0x5, pango_language_get_default) :0x6310d0b0
Call to dlsym(0x5, pango_layout_get_context) :0x6310d0c0
Call to dlsym(0x5, pango_layout_get_pixel_extents) :0x6310d0d0
Call to dlsym(0x5, pango_layout_set_font_description) :0x6310d0e0
Call to dlsym(0x5, pango_layout_set_text) :0x6310d0f0
Call to dlopen("libpangocairo-1.0.so"/0x85c0e87, 1)
dlopen: New handle 0x6 (libpangocairo-1.0.so), dlopened=0
Call to dlsym(0x6, pango_cairo_context_set_font_options) :0x6310a000
Call to dlsym(0x6, pango_cairo_create_layout) :0x6310a010
Call to dlsym(0x6, pango_font_map_create_context) :0x6310d100
Call to dlsym(0x6, pango_cairo_font_map_get_default) :0x6310a020
Call to dlsym(0x6, pango_cairo_show_layout) :0x6310a030
Call to dlsym(0x6, pango_cairo_update_layout) :0x6310a040

(sublime_text:11868): Gtk-WARNING **: 21:48:24.430: cannot open display: 
mbodomi commented 3 years ago

export DISPLAY=":0.0" :)

mbodomi commented 3 years ago

I gave up on ST2...

cd sublime_text_3
BOX86_NOGTK=1 BOX86_LOG=2 ./sublime_text

https://gist.github.com/b1087bdf2b59e3a7f6d9eae3394ac6e2

mbodomi commented 3 years ago

I tryed to add some libs from debian buster i386 into the program's lib/ folder what am i doing wrong?

ptitSeb commented 2 years ago

Is it still an issue? Can I close the ticket?