Problème avec Tikka sous NixOS (Linux) - avec nouvel installeur - v0.25.0

Salut @vit,

Je viens de tester le nouvel installeur Linux qui semble s’être bien exécuté (j’ai retiré la version pipx avant).

Par contre, quand je lance l’application (via .desktop) rien ne se passe.

Et si je lance la commande associée à la main, j’ai ceci:

~/.local/bin/tikka  
Traceback (most recent call last):
  File "/home/valpha/.local/bin/tikka", line 4, in <module>
    from tikka.__main__ import main
  File "/home/valpha/.local/share/uv/tools/tikka/lib/python3.9/site-packages/tikka/__main__.py", line 20, in <module>
    from tikka.slots.pyqt.pyqt_main_application import PyQtMainApplication
  File "/home/valpha/.local/share/uv/tools/tikka/lib/python3.9/site-packages/tikka/slots/pyqt/pyqt_main_application.py", line 38, in <module>
    from tikka.slots.pyqt.widgets.account import AccountWidget
  File "/home/valpha/.local/share/uv/tools/tikka/lib/python3.9/site-packages/tikka/slots/pyqt/widgets/account.py", line 50, in <module>
    from tikka.slots.pyqt.widgets.account_tabs.profile import AccountProfileWidget
  File "/home/valpha/.local/share/uv/tools/tikka/lib/python3.9/site-packages/tikka/slots/pyqt/widgets/account_tabs/profile.py", line 23, in <module>
    from PyQt5.QtWebEngineWidgets import QWebEngineView
ImportError: libgssapi_krb5.so.2: cannot open shared object file: No such file or directory

Je ne sais pas si c’est quelque chose qui pourrait être solutionné globalement ou uniquement résolvable de mon côté NixOS…

Pour information, je suis sous NixOS unstable (26.05); détails ci-dessous:

Operating System: NixOS 26.05
KDE Plasma Version: 6.6.3
KDE Frameworks Version: 6.24.0
Qt Version: 6.10.2
Kernel Version: 6.19.9 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 3800X 8-Core Processor
Memory: 32 GiB of RAM (31,3 GiB usable)
Graphics Processor: AMD Radeon RX 9070 XT
Manufacturer: Micro-Star International Co., Ltd.
Product Name: MS-7C37
System Version: 2.0
1 Like

Je déconseille fortement d’utiliser l’installateur officiel de Tikka sur Nixos.

D’ailleurs Nixos déconseille d’utiliser le système de gestion de paquets de Python et préconise de faire des package Nix. Cela a du sens, mais détruit complètement la puissance et la souplesse de Python.

Si tu insistes, l’IA propose d’installer les bibliothèques système manquantes, ou de créer un package Nix. Je suis pour faire un package Nix, mais je n’ai pas le temps pour cela. Si tu veux t’y mettre, je veux bien l’ajouter dans la CI/CD gitlab une fois au point.

En attendant, le texte qui suit est la solution proposé par l’IA :

Le problème vient d’une dépendance système manquante sur NixOS : libgssapi_krb5.so.2 fait partie de krb5 (Kerberos). Sur NixOS, QtWebEngine a besoin de bibliothèques système supplémentaires qui ne sont pas automatiquement disponibles.

:wrench: Solution pour l’utilisateur

Voici comment résoudre le problème sur NixOS :

Option 1 : Ajouter les dépendances système dans configuration.nix

# /etc/nixos/configuration.nix
{
  environment.systemPackages = with pkgs; [
    krb5          # Provides libgssapi_krb5.so.2
    qt5.qtwebengine  # QtWebEngine dependencies
    libGL
    libxkbcommon
    xorg.libX11
    xorg.libXcomposite
    xorg.libXdamage
    xorg.libXext
    xorg.libXfixes
    xorg.libXi
    xorg.libXrandr
    xorg.libXrender
    xorg.libXtst
    xorg.libxcb
    cups
    dbus
    expat
    fontconfig
    freetype
    glib
    gst_all_1.gstreamer
    gst_all_1.gst-plugins-base
    libdrm
    libxshmfence
    mesa
    nspr
    nss
    pango
    udev
    util-linux
  ];
}

Puis reconstruisez :

sudo nixos-rebuild switch

Option 2 : Lancer Tikka avec l’environnement Nix approprié (sans modifier la configuration système)

# Créer un shell temporaire avec toutes les dépendances
nix-shell -p krb5 qt5.qtwebengine libGL libxkbcommon xorg.libX11 xorg.libXcomposite xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender xorg.libXtst xorg.libxcb cups dbus expat fontconfig freetype glib gst_all_1.gstreamer gst_all_1.gst-plugins-base libdrm libxshmfence mesa nspr nss pango udev util-linux

# Puis lancer Tikka
~/.local/bin/tikka

Option 3 : Utiliser steam-run (solution simple si disponible)

# Installer steam-run
nix-shell -p steam-run

# Lancer Tikka avec steam-run (fournit un environnement similaire aux distributions classiques)
steam-run ~/.local/bin/tikka

Option 4 : Correction permanente avec nix-ld (recommandé)

Ajoutez dans configuration.nix :

{
  # Activer nix-ld pour les binaires non-Nix
  programs.nix-ld = {
    enable = true;
    libraries = with pkgs; [
      krb5
      qt5.qtwebengine
      libGL
      libxkbcommon
      xorg.libX11
      xorg.libXcomposite
      xorg.libXdamage
      xorg.libXext
      xorg.libXfixes
      xorg.libXi
      xorg.libXrandr
      xorg.libXrender
      xorg.libXtst
      xorg.libxcb
      cups
      dbus
      expat
      fontconfig
      freetype
      glib
      gst_all_1.gstreamer
      gst_all_1.gst-plugins-base
      libdrm
      libxshmfence
      mesa
      nspr
      nss
      pango
      udev
      util-linux
    ];
  };
}

Après reconstruction, Tikka devrait fonctionner normalement depuis le menu Linux.

:memo: Note importante

Le script d’installation utilise uv tool install qui installe Tikka avec Python 3.9. Sur NixOS, il est recommandé de créer plutôt un package Nix pour Tikka, car la plateforme a des particularités (chemins de bibliothèques différents, absence de FHS standard). Voulez-vous que je vous aide à créer une dérivation Nix pour Tikka afin d’avoir une intégration complète ?

1 Like