Does org.freedesktop.Sdk.Extension.vala extension no more required for runtime 49?

It used to required to add org.freedesktop.Sdk.Extension.vala to compile Vala project on GNOME runtimes, like the first example.

With runtime 49, the second example also apperas to be working.

I’m I missing an important change?

{
    "id": "org.gnome.baobab",
    "runtime": "org.gnome.Platform",
    "runtime-version": "48",
    "sdk": "org.gnome.Sdk",
    "sdk-extensions": [
        "org.freedesktop.Sdk.Extension.vala"
    ],
    "build-options": {
        "prepend-path": "/usr/lib/sdk/vala/bin/",
        "prepend-ld-library-path": "/usr/lib/sdk/vala/lib"
    },
    "command": "baobab",
    "finish-args": [
        "--device=dri",
        "--share=ipc",
        "--socket=fallback-x11",
        "--socket=wayland",
        "--filesystem=host",
        "--filesystem=~/.var/app",
        "--metadata=X-DConf=migrate-path=/org/gnome/baobab/",
        "--talk-name=org.gtk.vfs.*",
        "--system-talk-name=org.freedesktop.hostname1",
        "--filesystem=xdg-run/gvfs",
        "--filesystem=xdg-run/gvfsd"
    ],
    "cleanup": [
        "/share/man"
    ],
    "modules": [
        {
            "name": "baobab",
            "buildsystem": "meson",
            "sources": [
                {
                    "type": "archive",
                    "url": "https://download.gnome.org/sources/baobab/49/baobab-49.1.tar.xz",
                    "sha256": "6243c92002be7e91f5decd249612face2a4a12d3742afd88b086a94b875dffe0",
                    "x-checker-data": {
                        "type": "gnome",
                        "name": "baobab"
                    }
                }
            ]
        }
    ]
}
{
    "id": "org.gnome.baobab",
    "runtime": "org.gnome.Platform",
    "runtime-version": "49",
    "sdk": "org.gnome.Sdk",
    "command": "baobab",
    "finish-args": [
        "--device=dri",
        "--share=ipc",
        "--socket=fallback-x11",
        "--socket=wayland",
        "--filesystem=host",
        "--filesystem=~/.var/app",
        "--metadata=X-DConf=migrate-path=/org/gnome/baobab/",
        "--talk-name=org.gtk.vfs.*",
        "--system-talk-name=org.freedesktop.hostname1",
        "--filesystem=xdg-run/gvfs",
        "--filesystem=xdg-run/gvfsd"
    ],
    "cleanup": [
        "/share/man"
    ],
    "modules": [
        {
            "name": "baobab",
            "buildsystem": "meson",
            "sources": [
                {
                    "type": "archive",
                    "url": "https://download.gnome.org/sources/baobab/49/baobab-49.1.tar.xz",
                    "sha256": "6243c92002be7e91f5decd249612face2a4a12d3742afd88b086a94b875dffe0",
                    "x-checker-data": {
                        "type": "gnome",
                        "name": "baobab"
                    }
                }
            ]
        }
    ]
}

Some general comments, without details:

  • If it compiles, it’s already a good sign :wink:
  • You can open a shell inside the sandbox for the new Sdk, and see if valac is present.
  • It’s possible to look at the sources for the Sdk, to see if Vala is explicitly added.

The vala compiler was always part of the (stable) GNOME SDK flatpak runtime. The SDK extension was created to add related tools that could not be in the runtime (e.g. the LSP server). There was an attempt to remove the vala compiler from the SDK given that the extension is available, but there were issues and it was reverted before it reached any stable runtime.

So if the vala extension is added it’s probably either:

  • for convenience of the developers to use things like the LSP server
  • to use a slightly newer version than what is in the runtime (since vala no longer follows the release schedule)
  • to prepare for removing vala from the sdk, which never happened
  • cargo-culted from another flatpak that wanted one of the above

Either way, it should be safe to remove it if it doesn’t break the build. But you might want to ask whoever added it if it’s still needed.

1 Like