Vala Language Server unable to be spawned due to wiped environment variables
Affected version
- Nightly flatpak: Yes
Steps to reproduce
- Create default Vala GNOME application (Assume all required flatpak SDKs are installed!)
- Open a vala file.
- Output:
/bin/sh: line 3: vala-language-server: command not found
and no vls spawns
Current behavior
/bin/sh: line 3: vala-language-server: command not found
as output
Expected behavior
VLS spawns
Additional information
A bit of speculation ahead
If I run using -vvvvvvvvv
, I get as output:
16:56:08.1978 ide-subprocess-launcher[ 2]: DEBUG: Launching flatpak-spawn --host --watch-bus --env=CCACHE_DIR=/home/user/.var/app/org.gnome.Builder.Devel/cache/gnome-builder/flatpak-builder/ccache --env=COLORTERM=truecolor --env=FLATPAK_CONFIG_DIR=/home/user/.var/app/org.gnome.Builder.Devel/data/gnome-builder/flatpak/etc --env=TERM=xterm-256color flatpak build --with-appdir --allow=devel --die-with-parent --filesystem=/home/user/Projects/valatest --filesystem=/home/user/.var/app/org.gnome.Builder.Devel/cache/gnome-builder/projects/valatest/builds/org.gnome.Example.json-flatpak-org.gnome.Platform-master-x86_64-main --filesystem=/home/user/.var/app/org.gnome.Builder.Devel/cache/gnome-builder --nofilesystem=host --share=network --env=PATH=/app/bin:/usr/bin:/usr/lib/sdk/vala/bin /home/user/.var/app/org.gnome.Builder.Devel/cache/gnome-builder/projects/valatest/flatpak/staging/x86_64-main /bin/sh -c . '/home/user/.var/app/org.gnome.Builder.Devel/cache/gnome-builder/projects/valatest/builds/org.gnome.Example.json-flatpak-org.gnome.Platform-master-x86_64-main/.gnome-builder-devenv'
cd '/home/user/Projects/valatest'
'vala-language-server'
[env ] [directory .] inheriting parent environment
This basically does as far as I understand:
. /home/user/.var/app/org.gnome.Builder.Devel/cache/gnome-builder/projects/valatest/builds/org.gnome.Example.json-flatpak-org.gnome.Platform-master-x86_64-main/.gnome-builder-devenv
cd cd '/home/user/Projects/valatest'
'vala-language-server'
The file that is sourced has this content:
PKG_CONFIG_PATH=/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/home/user/.var/app/org.gnome.Builder.Devel/cache/gnome-builder/projects/valatest/builds/org.gnome.Example.json-flatpak-org.gnome.Platform-master-x86_64-main/meson-uninstalled
export PKG_CONFIG_PATH
MESON_PROJECT_NAME=valatest
export MESON_PROJECT_NAME
MESON_DEVENV=1
export MESON_DEVENV
PATH=/home/user/.var/app/org.gnome.Builder.Devel/cache/gnome-builder/projects/valatest/builds/org.gnome.Example.json-flatpak-org.gnome.Platform-master-x86_64-main/src:/home/user/.cargo/bin:/usr/lib64/ccache:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/user/.dotnet/tools
export PATH
It overwrites the PATH variable with a fixed set of paths and re-exports it, thus ignoring append-path
from the manifest.
If I change this line:
PATH=...
to
PATH=...:$PATH
it works.