pygobject / pycairo

Python bindings for cairo
https://pycairo.readthedocs.io
Other
613 stars 83 forks source link

cinnamon-control-center doesn't work | undefined symbol: cairo_tee_surface_index #311

Closed qundus closed 1 year ago

qundus commented 1 year ago
 * Cinnamon 5.6.7
   - PPA: No
 * Arch
 * NVIDIA GeForce RTX 3050 Mobile with Nvidia proprietary driver
 * 64 bit
 * Attach ~/.xsession-errors, or /var/log/syslog
   - There's none

Issue

After the last update 3 days ago on 6-02-2023 i just can't initialize cinnamon control center (settings) and some other applets as well, when I try to launch them through terminal i get the following error:

  File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 29, in <module>
    from bin import SettingsWidgets
  File "/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py", line 12, in <module>
    from ChooserButtonWidgets import DateChooserButton, TimeChooserButton
  File "/usr/share/cinnamon/cinnamon-settings/bin/ChooserButtonWidgets.py", line 4, in <module>
    import cairo
  File "/usr/lib/python3.10/site-packages/cairo/__init__.py", line 1, in <module>
    from ._cairo import *  # noqa: F401,F403
ImportError: /usr/lib/python3.10/site-packages/cairo/_cairo.cpython-310-x86_64-linux-gnu.so: undefined symbol: cairo_tee_surface_index

all errors lead to undefined symbol: cairo_tee_surface_index and i can't figure this out.

Steps to reproduce

Expected behaviour

cinnamon control center GUI should work and appear on screen

note: i've created an issue regarding this on the cinnamon github repo and they redirected me here.

heirecka commented 1 year ago

I suspect what happened is the following: With the latest cairo, the tee backend failed to build [1] and your distro disabled it. pycairo automagically includes support for it, if it's available. So the last time pycairo was built for your distro, it was likely built against a cairo version with the tee backend, but that was then updated. A rebuild of pycairo should fix it though.

It would be nice if pycairo had a switch to deterministically support for the tee backend, or at least it would definitely help downstream distros to deal with this situation.

[1] https://gitlab.freedesktop.org/cairo/cairo/-/issues/634

qundus commented 1 year ago

@heirecka i didn't know how to rebuild it because i installed it through pamac so i just reinstalled cairo and cairomm packages but that still didn't resolve the issue, so i started reinstalling apps/libraries dependent on cairo and reinstalling blueman did the trick, now everything works as usual, thanks for the hint.

novaTopFlex commented 1 month ago

I am still getting this issue as an Ubuntu 22.04.1 LTS user in May 2024.