You are not logged in.
Hi all,
I'm running a fully updated Arch system using GNOME on X11 (however, the issue persists on Wayland as well). I have installed skypeforlinux-stable-bin from the AUR, as well as extra/bubblewrap. I followed the instructions on the wiki relating to skypeforlinux within bubblewrap here, and it was working for a while, but recently an update to skypeforlinux broke things. Unfortunately, the last working version was having a problem with letting me join calls that the newer version does not have, as far as I'm aware, so I can't downgrade.
In trying to diagnose the issue with bubblewrap and skypeforlinux, though, I've come across a weird behavior that I think makes it harder to poke at:
When I launch Skype via a custom .desktop file that I wrote, a default-colored window titled "Skype (on RESTRICTED)" pops up, but it is blank and does not populate with anything. It might be worth noting here that if I have unread Skype messages waiting to be seen, the number of conversations that have unread messages appears in square brackets, so clearly it's able to connect to the Skype server, at least somewhat.
However, when I launch Skype by running the exact same command that the .desktop file launches, it simply errors silently (code 133).
Here is the Skype desktop file, which lives in ~/.local/share/applications/skype-bubblewrap.desktop:
[Desktop Entry]
Name=Skype Bubblewrap
Exec=/home/user/.bin/skype/skype
Icon=/home/user/.bin/skype/icon.png
Terminal=false
Type=ApplicationHere is ~/.bin/skype/skype:
#!/usr/bin/env zsh
# Launches skype with bubblewrap
# From https://wiki.archlinux.org/index.php/Bubblewrap#Skype_for_Linux
export HOST_PROFILE_PATH=/home/user/.config/skypeforlinux
env -i bwrap \
--ro-bind /usr /usr \
--dir /home/r \
--dir /tmp \
--dir /var \
--dir /run/user/$UID \
--proc /proc \
--dev /dev \
--symlink usr/lib /lib \
--symlink usr/lib64 /lib64 \
--symlink usr/bin /bin \
--symlink usr/sbin /sbin \
--symlink ../tmp /var/tmp \
--bind "$HOST_PROFILE_PATH" /home/r/.config/skypeforlinux \
--ro-bind /etc/resolv.conf /etc/resolv.conf \
--ro-bind /tmp/.X11-unix/X1 /tmp/.X11-unix/X0 \
--ro-bind /run/user/$UID/bus /run/user/$UID/bus \
--ro-bind /run/user/$UID/pulse /run/user/$UID/pulse \
--dev-bind /dev/video0 /dev/video0 \
--chdir / \
--unshare-all \
--share-net \
--hostname RESTRICTED \
--die-with-parent \
--new-session \
--setenv PATH /usr/bin \
--setenv HOME /home/r \
--setenv XDG_RUNTIME_DIR "/run/user/$UID" \
--setenv DISPLAY "$DISPLAY" \
--setenv DBUS_SESSION_BUS_ADDRESS "unix:path=/run/user/$UID/bus" \
/usr/share/skypeforlinux/skypeforlinuxNote: I changed the following line from the wiki because my X11 socket location changed:
--ro-bind /tmp/.X11-unix/X1 /tmp/.X11-unix/X0 \Curiously, if I try to launch the desktop file from the terminal using
gtk-launch skype-bubblewrapit does not report an error code, it just silently returns without doing anything. Also, if I change Terminal=false to Terminal=true in the desktop file and update the icon cache, a terminal appears and immediately disappears, as though it had the same behavior as being launched from the script.
Now for the life of me I cannot figure out why it would have different behavior depending on how it's launched like this, and I have no idea how to proceed with debugging. It's worth noting that Skype for Linux not Bubblewrapped runs fine, both from GNOME Shell and from just executing /usr/share/skypeforlinux/skypeforlinux. If anyone has any insights on how to proceed with fixing this or why the app would care so much about how it is launched, please let me know!
Here are some relevant package versions:
{user@t14s} ~ % pacman -Qs skypeforlinux-stable-bin
local/skypeforlinux-stable-bin 8.65.0.78-1
Skype for Linux - Stable/Release Version
{user@t14s} ~ % pacman -Qs bubblewrap
local/bubblewrap 0.4.1-1
Unprivileged sandboxing tool
{user@t14s} ~ % pacman -Qs gnome-shell
local/gnome-shell 1:3.38.1-1 (gnome)
Next generation desktop shellOffline