FineFindus / eyedropper

Pick and format colors
https://apps.gnome.org/Eyedropper
GNU General Public License v3.0
267 stars 28 forks source link

Flatpak version does not start on Pop-Os based on Ubuntu 22.04 #65

Open cemeroncel opened 1 year ago

cemeroncel commented 1 year ago

I am using Pop-Os based on Ubuntu 22.04. I installed the Flatpak version, but the application does not start. When I run

flatpak run com.github.finefindus.eyedropper

I get the following error

(eyedropper:2): Gdk-WARNING **: 10:14:02.791: The program 'eyedropper' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAccess (attempt to access private resource denied)'.
  (Details: serial 515 error_code 10 request_code 130 (MIT-SHM) minor_code 1)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

I tried installing both using the software center of Pop-Os, which uses Flatpak for third-party applications and also via the command line

flatpak install eyedropper

I am using X window system.

Thanks in advance.

FineFindus commented 1 year ago

This is very strange, I've used Eyedropper on both Pop_OS! and (Ubuntu) GNOME X11. Did you modify anything special about your system?

Could you please run flatpak info --show-permissions com.github.finefindus.eyedropper to see if it has permission to run on X11and flatpak run --env=RUST_LOG=trace --env=G_MESSAGES_DEBUG=all com.github.finefindus.eyedropper to get the full application logs?

cemeroncel commented 1 year ago

Hi,

Thank you for the fast reply, and sorry for my slow response. I have some additional PPAs provided by the hardware vendor of my laptop (Tuxedo Computers) but I don't think it is related. I don't remember modifying anything. For some applications, I am using Flatseal to manage permissions.

Here are the info that you requested. I hope it helps.

Running flatpak info --show-permissions com.github.finefindus.eyedropper gives

[Context]
sockets=x11;wayland;fallback-x11;
devices=dri;

[Environment]
G_MESSAGES_DEBUG=none
RUST_BACKTRACE=1

while flatpak run --env=RUST_LOG=trace --env=G_MESSAGES_DEBUG=all com.github.finefindus.eyedropper returns

 INFO  eyedropper::application > Eyedropper (com.github.finefindus.eyedropper)
 INFO  eyedropper::application > Version: 0.6.0 ()
 INFO  eyedropper::application > Datadir: /app/share/eyedropper
(eyedropper:2): GLib-GIO-DEBUG: 15:34:47.349: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
 DEBUG eyedropper::application::imp > GtkApplication<App>::startup
(eyedropper:2): GVFS-DEBUG: 15:34:47.474: org.gtk.vfs.MountTracker.listMountableInfo call failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown (g-dbus-error-quark, 2)

(eyedropper:2): GLib-GIO-DEBUG: 15:34:47.475: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ‘gio-vfs’
 DEBUG eyedropper::application::imp > GtkApplication<App>::activate
(eyedropper:2): GLib-GIO-DEBUG: 15:34:47.628: _g_io_module_get_default: Found default implementation keyfile (GKeyfileSettingsBackend) for ‘gsettings-backend’
 DEBUG eyedropper::window           > Window Size: 300x445
 DEBUG eyedropper::window           > Maximized: false
 DEBUG eyedropper::window           > Format-Order: ["name", "hex", "rgb", "hsl", "hsv", "cmyk", "xyz", "cielab", "hwb", "hcl", "lms", "hunterlab"]

(eyedropper:2): Gdk-WARNING **: 15:34:47.782: The program 'eyedropper' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAccess (attempt to access private resource denied)'.
  (Details: serial 486 error_code 10 request_code 130 (MIT-SHM) minor_code 1)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

Best

FineFindus commented 1 year ago

Honestly, I've never seen this error, and I'm not quite sure what causes it, nor could I reproduce it yet. I did some research, it seems like the solution is to run it with --share=ipc (flatpak run --env=RUST_LOG=trace --env=G_MESSAGES_DEBUG=all --share=ipc com.github.finefindus.eyedropper)