Jami sur Guix (gestionnaire de paquet)

Guix https://guix.gnu.org/ est un gestionnaire de paquet universel maintenu dans le cadre du projet GNU, capable de fonctionner sur n’importe quelle distribution GNU/Linux.

Au moment de la rédaction de ce message, les paquets Jami fournis par Guix ont été mis à jour jami-gnome 20210326.1.cfba013 — Paquets — GNU Guix pour le client GNOME.
jami-qt 20210326.1.cfba013 — Paquets — GNU Guix pour le client Qt.

Cela est vraiment encourageant pour celles et ceux qui utilisent une distribution GNU/Linux qui n’est pas officiellement supportée par l’équipe de Jami Savoir-Faire Linux. Ou un système dont l’architecture n’est pas officiellement supportée non plus.

Guix est également utilisable comme distribution GNU/Linux à part entière, mais ça sera abordé dans un autre fil de discussion.

On veut juste ici recueillir les retours des utilisateurs de Guix en tant que gestionnaire de paquet sur leur distribution GNU/Linux externe en ce qui concerne Jami.

1 Like

Bon, j’ai moi-même fait des essais sur une Debian 10 i686/32 Bits.

  1. Il n’y pas encore de serveur-miroir.

  2. Les paquets sont préconstruits et non précompilés. La compilation des paquets est automatisée et se fait au moment de l’installation des paquets.

Ça prend donc un peu plus de temps qu’avec un gestionnaire de paquet comme Apt.

  1. La mise à jour est gourmande en mémoire vive. 1 Go de RAM + 1 Go de swap, ça ne suffit pas. Il faut, à défaut de pouvoir ajouter de la RAM, installer sa distribution GNU/Linux avec une partition swap plus grande (avec 4 Go, je pense limiter les risques de saturation).

  2. Tous les paquets nécessaires au fonctionnement de Jami ne semblent pas encore disponibles. C’est ce que j’en ai déduit à la lecture d’un message d’erreur du style “les dépendances n’ont pas pu être installées”

En conclusion, pour Jami, il va peut-être falloir attendre encore un peu pour voir le logiciel fonctionner sur Guix. Ce qui me paraît étrange quand https://gnu.org et la FSF classent les logiciels de visioconférence comme prioritaires en matière de contribution Real-time voice and video chat — Free Software Foundation — Working together for free software .

1 Like

À regarder de plus près, c’est plutôt un problème de compilation qui semble bloquer l’installation de Jami.

Le paquet protobuf, qui semble être une dépendance nécessaire à l’installation de Jami via Guix, échoue à se compiler.

En revanche Guix fonctionne très bien pour installer la version récente d’autres logiciels comme Emacs (naturellement !) ou Klavaro (pour celles et ceux que le film Populaire a motivé). Frustrant.

Salut Firenze,

Bon, j’ai moi-même fait des essais sur une Debian 10 i386/32 Bits.

Il n’y pas encore de serveur-miroir.
Les paquets sont préconstruits et non précompilés. La compilation des paquets est automatisée et se fait au moment de l’installation des paquets.

Si tu as autorisé l’usage de substituts (binaires précompilés), il devrait y avoir des substituts disponibles; c’est du moins le cas pour jami-gnome sur la version 1.3.0 et sur la branche master. Cependant pour jami-qt tu as raison qu’il n’y a pas de build ayant réussi pour i686-linux (pour x86_64-linux c’est OK, tu aurais donc eu des substituts). Comme tu l’as mentionné le problème vient d’une dépendance transitive, protobuf. Un test échoue sur i686 mais passe sur x86_64.

Ça prend donc un peu plus de temps qu’avec un gestionnaire de paquet comme Apt.

La mise à jour est gourmande en mémoire vive. 1 Go de RAM + 1 Go de swap, ça ne suffit pas. Il faut, à défaut de pouvoir ajouter de la RAM, installer sa distribution GNU/Linux avec une partition swap plus grande (avec 4 Go, je pense limiter les risques de saturation).

Tu parles de la mise à jour de Guix lui-même (guix pull) ou de la mise a jour de Jami (guix upgrade jami-qt)? Dans les deux cas c’est probablement parce qu’il n’y avait pas de substituts disponibles au moment de la mise à jour, mais comme ce n’est pas quelque chose de facile à contrôler pour utilisateur (pas totalement du moins, mais voir Canaux avec des substituts), ça peut être problématique oui!

Tous les paquets nécessaires au fonctionnement de Jami ne semblent pas encore disponibles. C’est ce que j’en ai déduit à la lecture d’un message d’erreur du style “les dépendances n’ont pas pu être installées”

Elles le sont sur x86_64, mais tu sembles avoir trouvé un problème pour i686 qui doit être corrigé (l’échec de la suite de test du paquet protobuf).

En conclusion, pour Jami, il va peut-être falloir attendre encore un peu pour voir le logiciel fonctionner sur Guix. Ce qui me paraît étrange quand GNU et la FSF classent les logiciels de visioconférence comme prioritaires en matière de contribution Real-time voice and video chat — Free Software Foundation — Working together for free software .

jami-gnome et jami-qt fonctionnent bien sur Guix (testé: x86_64-linux). J’ai testé le fonctionnement de jami-qt avec un guix pack pour d’autres distributions tel que Ubuntu 20.04, Debian 10 et Fedora 33 et ça semble fonctionner correctement à condition de démarrer dring manuellement (pour plus d’info sur la cause voir D-Bus services not working on foreign distributions/non-user profiles).

Je te reviens si j’arrive à réparer les dépendances sur i686-linux.

1 Like

Bonjour apteryx, bienvenue dans le forum de Jami et merci pour cet éclaircissement.

Dans ma tentative d’installation de jami via Guix, sous Debian 10 i686/32 Bits, j’ai juste :

  1. Tapé la commande guix pull

  2. Tapé la commande guix install jami-qt

L’exécution des deux commandes a pris énormément de temps. Et celle de la seconde s’est soldée par un échec. À cause du problème de protobuf, et éventuellement du manque de RAM ( et oui, la swap, si c’est un bon coup de pouce, ça ne remplace malheureusement pas la RAM).

Bonjour, @Firenze et @apteryx avez-vous eut des pistes du côté de l’équipe développeurs jami francophone ?

Bonjour Firenze,

En attendant que le problème de protobuf soit résolu pour la plateforme i686, je te conseille d’utiliser jami-gnome (guix install jami-gnome) qui lui devrait avoir des substituts (c.f.: Search results), car il ne dépend pas de protobuf, contrairement à jami-qt.

Plus spécifiquement sur ta Debian 10 i386, la commande suivante devrait te donner un Jami fonctionnel:

$ guix environment --ad-hoc jami-gnome dbus glib gtk+ openssl nss-certs \
  -- dbus-run-session jami-gnome

Bonjour, merci pour ces conseils.

J’ai pu installer jami-gnome. Mais je ne parviens pas à lancer Jami.
Dans le terminal, ça donne :

:~$ jami
** Message: 19:36:54.594: Jami GNOME client version: development
** Message: 19:36:54.594: git ref: unknown
/gnu/store/s5p68b56b5lmkg8kgq27bxcj60vw8266-jami-gnome-20210326.1.cfba013/bin/.jami-real: line 46: 5804 Erreur de segmentation jami-gnome $*

Bonjour,

Jami a depuis été mis à jour en version 20210606 (la dernière disponible) sur Guix. Le build i686 a aussi été réparé (protobuf mis à jour a 3.17.3 avec 4 tests de désactivés). Il y a un substitut de disponible pour jami-qt sur i686: Build 640588.

En espérant que cette version fonctionne!

Bonne fin de semaine.

Bonjour,

Merci pour ces informations. J’ai mis Guix à jour avec
$ guix pull && guix package -u
Puis j’ai installé jami-qt en faisant
$ guix install jami-qt
$ guix install protobuf
J’ai ensuite redémarré l’ordinateur.
Dans un premier temps, j’ai tenté de lancer jami depuis le menu démarrer de mon bureau LXQT. L’ordinateur mouline un peu, mais rien ne se passe.
Et voici ce que cela donne quand je tente de lancer jami depuis le terminal :
debian@user:~$ jami
“notify server name: lxqt-notificationd, vendor: lxqt.org, version: 0.14.1, spec: 1.2”
“Error : dring is not available, make sure it is running”
terminate called after throwing an instance of ‘char const*’
/gnu/store/gl2hsndn9iw6481fl9dbjf0mvilmh0bm-jami-qt-20210606.1.e2f9490/bin/.jami-real: line 43: 1205 Abandon jami-qt $*
debian@user:~$ jami-qt
“notify server name: lxqt-notificationd, vendor: lxqt.org, version: 0.14.1, spec: 1.2”
“Error : dring is not available, make sure it is running”
terminate called after throwing an instance of ‘char const*’
Abandon

Salut Firenze!

Tu es très près du but! Tu as rencontré la dernière difficulté dans l’usage de Jami sur Guix: D-Bus. Normalement le client Jami démarre le daemon lui-même via D-Bus; mais la configuration D-Bus de ton système ne regarde pas là où Guix installe ses fichiers (~/.guix-profile/share/dbus-1), et ne connaît donc pas le service D-Bus cx.ring.Ring. La session D-Bus sur ton système est probablement démarrée via dbus-daemon --session, qui selon man dbus-daemon utilise le fichier de configuration /usr/share/dbus-1/session.conf.

Tu pourrais tenter de modifier cette configuration pour lui renseigner où trouver les fichiers D-Bus installés par Guix.

Sinon, le problème de configuration D-Bus peut-être contourné en installant les paquets suivants de manière à avoir dbus-run-session et les variables d’environnement utiles tel que XDG_DATA_DIRS (qui permet de trouver les services D-Bus installés par Guix):

guix install dbus glib openssl nss-certs

Puis exécute jami-qt via la commande

dbus-run-session jami-qt

Cela démarre une 2e session D-Bus spécifiquement pour jami-qt, qui dervrait maintenant pouvoir trouver le service cx.ring.Ring via XDG_DATA_DIRS.

Une dernière façon, encore plus manuelle, est de démarrer dring à la main:

$(guix build libring | tail -1)/lib/ring/dring -cdp &
jami-qt

Dans une version en préparation, les complications D-Bus ne seront plus nécessaires, simplifiant grandement l’usage de Jami avec Guix (sur distributions autres Guix System).

En espérant que ça aide!

1 Like

Bonjour apteryx,

J’ai essayé les commandes que tu m’as indiquées. En voici les résultats :

:~$ dbus-run-session jami-qt

(jami-qt:1384): libnotify-WARNING **: 18:14:03.335: Failed to connect to proxy
dbus-daemon[1383]: [session uid=1000 pid=1383] Activating service name=‘cx.ring.Ring’ requested by ‘:1.0’ (uid=1000 pid=1384 comm="/home/gala/.guix-profile/bin/jami-qt ")
Jami Daemon 10.0.1, by Savoir-faire Linux 2004-2019

[Video support enabled]
[Plugins support enabled]

dbus-daemon[1383]: [session uid=1000 pid=1383] Successfully activated service ‘cx.ring.Ring’
18:14:09.293 os_core_unix.c !pjlib 2.10 for POSIX initialized
No migration required
Cannot find dbus interface for screen saver

:~$ (guix build libring | tail -1)/lib/ring/dring -cdp & jami-qt
bash: erreur de syntaxe près du symbole inattendu « /lib/ring/dring »

Petit à petit on avance :slightly_smiling_face:

Salut Firenze!

Je viens de tester dans une VM Debian 10 (i686), avec un Guix frais:

$ guix describe
Generation 1	Jul 06 2021 19:56:51	(current)
  guix 601063c
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 601063c612edccbaae038fabe4759a303eff5593

Avec les paquets suivants d’installés dans mon profile utilisateur:

$ guix package -I
jami-qt	20210606.1.e2f9490	out	/gnu/store/gl2hsndn9iw6481fl9dbjf0mvilmh0bm-jami-qt-20210606.1.e2f9490
dbus	1.12.16	out	/gnu/store/19ig8799lmp10g8i338791kk1122h16x-dbus-1.12.16
nss-certs	3.59	out	/gnu/store/7jbg1rzr6lns107cm1x186034k324yrc-nss-certs-3.59
openssl	1.1.1j	out	/gnu/store/s64jf51r8cznx58m9kkl0b3ds86z0sjz-openssl-1.1.1k
glibc-locales	2.31	out	/gnu/store/xg5vhpdaffcmvvpm5ca1qf1578c8z77k-glibc-locales-2.31

Pour moi la première commande fonctionne:

$ dbus-run-session jami-qt
dbus-daemon[9060]: [session uid=1000 pid=9060] Activating service name='org.freedesktop.Notifications' requested by ':1.1' (uid=1000 pid=9061 comm="/home/user/.guix-profile/bin/jami-qt ")
dbus-daemon[9060]: [session uid=1000 pid=9060] Activating service name='org.xfce.Xfconf' requested by ':1.2' (uid=1000 pid=9081 comm="/usr/lib/i386-linux-gnu/xfce4/notifyd/xfce4-notify")
dbus-daemon[9060]: [session uid=1000 pid=9060] Successfully activated service 'org.xfce.Xfconf'
dbus-daemon[9060]: [session uid=1000 pid=9060] Activating service name='org.gtk.vfs.Daemon' requested by ':1.3' (uid=1000 pid=9081 comm="/usr/lib/i386-linux-gnu/xfce4/notifyd/xfce4-notify")
dbus-daemon[9060]: [session uid=1000 pid=9060] Successfully activated service 'org.gtk.vfs.Daemon'
dbus-daemon[9060]: [session uid=1000 pid=9060] Successfully activated service 'org.freedesktop.Notifications'
"notify server name: Xfce Notify Daemon, vendor: Xfce, version: 0.4.3, spec: 1.2"
dbus-daemon[9060]: [session uid=1000 pid=9060] Activating service name='cx.ring.Ring' requested by ':1.0' (uid=1000 pid=9061 comm="/home/user/.guix-profile/bin/jami-qt ")
Jami Daemon 10.0.1, by Savoir-faire Linux 2004-2019
https://jami.net/
[Video support enabled]
[Plugins support enabled]

dbus-daemon[9060]: [session uid=1000 pid=9060] Successfully activated service 'cx.ring.Ring'
21:03:12.606 os_core_unix.c !pjlib 2.10 for POSIX initialized
ALSA lib conf.c:3725:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so (/gnu/store/yri4gyr9wsqmsbns7hq4cfbi5ck6qzai-alsa-lib-1.2.4/lib/alsa-lib/libasound_module_conf_pulse.so: cannot open shared object file: No such file or directory)
ALSA lib control.c:1471:(snd_ctl_open_noupdate) Invalid CTL hw:0
No migration required
Cannot find dbus interface for screen saver
QDBusConnection: name 'cx.ring.Ring' had owner '' but we thought it was ':1.6'
NetworkManager client initialized, version:  1.14.6 , daemon running: yes , networking enabled: yes
primary network connection: a8dbdaea-0faa-4cb1-9eb5-f4f66231c02e default:  yes
[...]

Mais j’ai dû au préalable supprimer le cache des modules QML de Qt, qui causait un crash du client Qt:

rm -rf ~/.cache/Jami/qmlcache

Sinon pour la deuxième commande, $(guix build libring | tail -1)/lib/ring/dring -cdp fonctionne ici pour lancer le démon (Bash v5.0.16). Alternativement:

~/.guix-profile/lib/ring/dring -cdp &
jami-qt -d

Laisse-moi savoir si ça débloque!

Merci pour ta persévérance.

Bonjour, j’ai vérifié en reprenant les commandes indiquées dans ton dernier message après avoir remis Debian et Guix à jour.

$ guix describe
Génération 9    07 juil. 2021 09:29:33  (actuelle)
  guix 8333673
    URL du dépôt : https://git.savannah.gnu.org/git/guix.git
    branche : master
    commit : 8333673c4c33d269139ded0d9f67d99f6369f736

Les paquets de mon profil :

$ guix package -I
glibc-locales   2.31    out     /gnu/store/xg5vhpdaffcmvvpm5ca1qf1578c8z77k-glibc-locales-2.31
fontconfig      2.13.1  out     /gnu/store/p1nj0sz0a1xa9h6ynx7nr5gcrhd93g6m-fontconfig-2.13.1
emacs   27.2    out     /gnu/store/0bkzh23wh97jvkqmps0iaph265q6rcyp-emacs-27.2
klavaro 3.13    out     /gnu/store/8nhgmar3vbixbg13lczyx0rrazmz253r-klavaro-3.13
jami-qt 20210606.1.e2f9490      out     /gnu/store/gl2hsndn9iw6481fl9dbjf0mvilmh0bm-jami-qt-20210606.1.e2f9490
protobuf        3.17.3  out     /gnu/store/v34pxfylhni34d2jm32rqgj0azv6xlw6-protobuf-3.17.3
dbus    1.12.16 out     /gnu/store/19ig8799lmp10g8i338791kk1122h16x-dbus-1.12.16
glib    2.62.6  out     /gnu/store/jgx20847pqdbl9gsfcd7l0z1jn2sxmdw-glib-2.62.6
openssl 1.1.1j  out     /gnu/store/s64jf51r8cznx58m9kkl0b3ds86z0sjz-openssl-1.1.1k
nss-certs       3.59    out     /gnu/store/7jbg1rzr6lns107cm1x186034k324yrc-nss-certs-3.59

En retentant la première commande j’obtiens :

$ dbus-run-session jami-qt

(jami-qt:2590): libnotify-WARNING **: 09:46:22.808: Failed to connect to proxy
dbus-daemon[2589]: [session uid=1000 pid=2589] Activating service name='cx.ring.Ring' requested by ':1.0' (uid=1000 pid=2590 comm="/home/gala/.guix-profile/bin/jami-qt ")
Jami Daemon 10.0.1, by Savoir-faire Linux 2004-2019
https://jami.net/
[Video support enabled]
[Plugins support enabled]

dbus-daemon[2589]: [session uid=1000 pid=2589] Successfully activated service 'cx.ring.Ring'
09:46:29.656 os_core_unix.c !pjlib 2.10 for POSIX initialized
No migration required
Cannot find dbus interface for screen saver

La commande rm -rf ~/.cache/Jami/qmlcache n’y change rien.
Quant à la deuxième commande, lancée (avec Bash v5.0.3), elle semble fonctionner à condition de bien mettre le signe $ au début. Sinon c’est l’erreur de syntaxe.
:~$ $(guix build libring | tail -1)/lib/ring/dring -cdp
Dans le terminal, top me signale bien que dring est lancé. Mais je ne parviens toujours pas à lancer l’interface graphique jami-qt. À la souris dans les menu, rien ne se passe. Et à partir du terminal, j’obtiens ceci :

:~$ jami-qt
"notify server name: lxqt-notificationd, vendor: lxqt.org, version: 0.14.1, spec: 1.2"
No migration required
Cannot find dbus interface for screen saver
Complété

Je recommence avec la commande alternative ~/.guix-profile/lib/ring/dring -cdp & jami-qt -d
La même chose se produit : dring démarre, mais aucune fenêtre de Jami ne peut s’ouvrir.

J’ai du louper une étape ou bien le problème est lié avec l’environnement de bureau lxqt de Debian, l’économiseur d’écran en particulier.

P.S. : Maintenant que j’y pense. Ça n’a peut-être aucun rapport, mais dans le doute je préfère le préciser. Je pense peut-être avoir cassé quelque chose dans mon installation guix en essayant auparavant la commande
$(guix build libring | tail -1)/lib/ring/dring -cdp & jami-qt
sans le $ du début, ni les parenthèses et un espace entre tail -1 et /lib, ne sachant pas à quoi l’erreur de syntaxe était vraiment dûe.

Bonjour Firenze,

C’est bizarre, tous les éléments semblent en place pour que ça fonctionne!

Utilises-tu un pilote graphique propriétaire (nvidia ou amd par exemple)? J’ai récemment appris que les applications graphiques nécessitant le support OpenGL ne risque de fonctionner que lorsque Mesa est utilisé (pilotes libres, du genre nouveau pour nvidia ou amdgpu/radeon pour amd). Si tu ne sais pas de quoi il s’agit ou si tu n’as rien touché de ça sur ton installation de Debian, elle devrait utiliser Mesa et ses pilotes libres (qui devraient fonctionner avec Guix).

Si tu veux valider quel pilote est utilisé, tu pourrais essayer la commande suivante:

guix environment --ad-hoc lshw -- sudo -E lshw -c video

Par exemple, ici ça donne:

$ guix environment --ad-hoc lshw -- sudo -E lshw -c video
  *-display                 
       physical id: 0
       bus info: pci@0000:2d:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list rom
       configuration: driver=nouveau latency=0
       resources: irq:97 memory:f6000000-f6ffffff memory:e8000000-efffffff memory:f0000000-f1ffffff ioport:f000(size=128) memory:c0000-dffff

Mon pilote est ‘nouveau’, fourni par Mesa. La carte graphique est une très vieille nVIDIA 8800 GTS.

Bonjour,
Voici ce que ça donne :

:~$ guix environment --ad-hoc lshw -- sudo -E lshw -c video
substitute: mise à jour des substituts depuis « https://ci.guix.gnu.org »... 100.0 %
substitute: mise à jour des substituts depuis « https://bordeaux.guix.gnu.org »... 100.0 %
Les dérivations suivantes seront compilées :
   /gnu/store/zhdhhgwravhr40xsgvkkvasqc0pizz5a-profile.drv
   /gnu/store/5bzxwad9n2jhri8fx9mbnm1lip5vq3g5-lshw-B.02.19.2.drv
   /gnu/store/m5wwn93w3c9q7khncm0r6a5pwr5xvxrv-lshw-B.02.19.2.tar.gz.drv

construction de /gnu/store/m5wwn93w3c9q7khncm0r6a5pwr5xvxrv-lshw-B.02.19.2.tar.gz.drv...
construction de /gnu/store/5bzxwad9n2jhri8fx9mbnm1lip5vq3g5-lshw-B.02.19.2.drv...
construction de l'ensemble des certificats des AC…
listing Emacs sub-directories...
construction du répertoire des polices…
construction du répertoire des manuels Info…
construction de la base de données des pages de manuel…
construction du profil avec 1 paquet…
[sudo] Mot de passe de gala : 
  *-display                 
       description: VGA compatible controller
       produit: RS482/RS485 [Radeon Xpress 1100/1150]
       fabriquant: Advanced Micro Devices, Inc. [AMD/ATI]
       identifiant matériel: 5
       information bus: pci@0000:01:05.0
       version: 00
       bits: 32 bits
       horloge: 66MHz
       fonctionnalités: pm vga_controller bus_master cap_list rom
       configuration: driver=radeon latency=66 mingnt=8
       ressources: irq:17 mémoire:c8000000-cfffffff portE/S:9000(taille=256) mémoire:c0100000-c010ffff mémoire:c0000-dffff

Je vais désinstaller les pilotes propriétaires et désactiver la branche non-free dans fichier /etc/apt/sources.list pour voir si ça change quelque chose.

Et… bien oui. C’était bien le méchant pilote propriétaire le coupable. Une fois ce dernier désinstallé, on peut enfin lancer jami-qt ou jami-gnome depuis le terminal (qu’il faut laisser ouvert pendant la durée d’utilisation de jami).

C’est un petit jour de gloire qui est arrivé… :slight_smile:

Génial! Je dois me pencher sur l’intégration de glvnd / libglvnd · GitLab dans Guix, qui en théorie devrait permettre de résoudre le problème des drivers, mais ce ne sera pas aujourd’hui!

Bravo pour avoir persévéré jusqu’au bout, et bonnes conférences!