Missing Sdk Extension for nodejs when building the default "GNOME Application" Javascript template

I’m your typical web developer - I do not have that much familiarity when it comes to developing desktop apps.

Since I started using GNOME, the excellent ecosystem of applications developed for it made me want to also get my hands dirty and possibly even make something for the community in the future (had the idea to develop an app for installing xone + xpadneo kernel modules through a GUI in order to make this easier for Linux newcomers as it normally requires you to clone repos, run scripts in the terminal and when things go wrong, deal with dkms. IMO this currently presents a real issue for non-technical people trying to make the switch from other operating systems).

However, I can’t even get past building the default Javascript template through Gnome Builder in order to start my adventure learning GTK / native desktop app development for this due to a missing dependency.

After creating the project, accepting and waiting for Builder to install missing SDKs / deps I try to run it for the very first time but get the following error:

Downloading sources
Stopping at module gtk-testing
Initializing build dir
error: Requested extension org.freedesktop.Sdk.Extension.node18/x86_64/47 not installed
Error: Child process exited with code 1

Searched the internet around but couldn’t find a solution to this, while also running into similar issues with some of the supported languages, notably Vala that didn’t shine much light into my situation.

Taking matters into my own hands, at first, I simply tried installing the missing dependency on my system manually but got no luck with it:

flatpak install --user org.freedesktop.Sdk.Extension.node18/x86_64/47
Looking for matches…
error: No remote refs found for ‘org.freedesktop.Sdk.Extension.node18/x86_64/47’

Thinking that nodejs 18 is really old and that GNOME 47 probably expects a newer runtime I have also tried changing the nodejs version to 20 in the Flatpak manifest of the template app - as that seems to be one of the versions of the Sdk extension available for installation on Builder’s “Preferences > SDK” list, but that also didn’t work.

What am I doing wrong here? What version of this nodejs SDK extension do I have to use, how do I get it installed and why does the template come in this broken state by default? For the record, I’m running Fedora 41 beta (GNOME 47).

There’s something getting messed up with the version numbers of those extensions. I’m not sure what is going wrong, but it looks like org.freedesktop.Sdk.Extension.node18/x86_64/47 is getting the GNOME version number of 47. But that’s not a GNOME extension; it should have the Freedesktop version number of 24.08 or whatever.

1 Like

It seems like the problem is with the TypeScript extension; I just tried removing that line and it built for node20.

EDIT: Ah, it seems like after doing the above, I can add back the TypeScript extension and it works. Does that work for you?

1 Like

Thank you for your help! It didn’t work by only removing the Typescript extension, I also had to go to the build dropdown menu and click “Update dependencies…”.

I’m now set up to start learning GTK :sunglasses:

1 Like

Hi having the same problem solved by replacing org.freedesktop.Sdk.Extension.node18 by org.freedesktop.Sdk.Extension.node20

 "sdk-extensions" : [
        "org.freedesktop.Sdk.Extension.node18",
        "org.freedesktop.Sdk.Extension.typescript"
    ],
 "sdk-extensions" : [
        "org.freedesktop.Sdk.Extension.node20",
        "org.freedesktop.Sdk.Extension.typescript"
    ],
1 Like

Thanks for reporting back! I opened a merge request for GNOME Builder to update the template based on your feedback.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.