Skip to content

Current test/nightly builds not compatible with Ubuntu 18.04 #2018

Closed
@ubidefeo

Description

@ubidefeo

Describe the problem

TLDR:

For the time being we cannot support nightly and tester builds for Ubuntu 18.04

Keep going, I'm interested:

A few days back GitHub phased out runners based on Ubuntu 18.04, which resulted in breaking builds on our PR and alerted us on looking deep into the issue.
Unfortunately it seems that building Arduino IDE 2 on Ubuntu 20.04 (lowest version available for Linux runners) will not start on Ubuntu 18.04 yielding the following error

Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /tmp/.mount_arduinLHEbAx/resources/app/node_modules/nsfw/build/Release/nsfw.node)
    at process.func [as dlopen] (node:electron/js2c/asar_bundle:5:1800)
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1170:18)
    at Object.func [as .node] (node:electron/js2c/asar_bundle:5:1800)
    at Module.load (node:internal/modules/cjs/loader:982:32)
    at Module._load (node:internal/modules/cjs/loader:823:12)
    at Function.c._load (node:electron/js2c/asar_bundle:5:13331)
    at Module.require (node:internal/modules/cjs/loader:1006:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at Object.<anonymous> (/tmp/.mount_arduinLHEbAx/resources/app/node_modules/nsfw/js/src/index.js:4:14)
    at Module._compile (node:internal/modules/cjs/loader:1110:14) {
  code: 'ERR_DLOPEN_FAILED'
}

We are aware that some of our users are still on this version, hence it is only fair that we notify you of this.

This is only true for test and nightly, of course, as we will be using 18.04 for release builds and make them available for download.
We are investigating possible ways of building compatible builds in the available GitHub runners, and have some plan B in case this cannot be fixed.

If you want to contribute to our investigation building on 22.04 and testing on 18.04 to help us find what the breaking point might be, we'd be glad to listen to your feedback.

For the time being we are still committed to making Arduino IDE 2 available to those users who need to run Ubuntu 18.04, but we're aware that a day will come when we'll have to deprecate support for it.

Thank you for your support 🙏🏼
Arduino Tooling Team

To reproduce

  1. Download a pull request test build or nightly build for Linux.
  2. Attempt to start the build on a machine that has a version of the libstdc++ shared libraries <3.4.26, or glibc <2.33.

🐛 Arduino IDE fails to start with an error like:

Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/per/Downloads/arduino-ide_nightly-20231006_Linux_64bit/resources/app/lib/backend/native/nsfw.node)

or:

Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/per/Downloads/arduino-ide_2.0.5-snapshot-90b1f67_Linux_64bit/resources/app/node_modules/nsfw/build/Release/nsfw.node)

Expected behavior

Arduino IDE is compatible with a reasonable range of Linux distro versions (e.g., >=Ubuntu 18.04).

Arduino IDE version

any

Operating system

Linux

Operating system version

18.04

Additional context

Additional reports

Related

Issue checklist

  • I searched for previous reports in
    I verified the problem still occurs when using the latest
    My report contains all necessary details

Activity

pinned this issue on Apr 14, 2023
theofficialgman

theofficialgman commented on Jun 21, 2023

@theofficialgman

@ubidefeo you might want to look into what chromium does to lower the required GLIBC and GLIBCXX as part of the chromium sysroot creation scripts.

I have implemented these in other projects as part of github actions and have been able to successfully lower the required GLIBC version there.

libgdx/Jamepad@5eb5f30

I am not sure if the above changes would fix this particular issue though. Chromium to my knowledge avoids anything newer than C++17. The nsfw.node binary is probably being built targeting C++20. What symbols is getting linked to when you build the nsfw.node binary? you should be able to see them by doing an objdump -T nsfw.node on the binary

kittaakos

kittaakos commented on Aug 1, 2023

@kittaakos
Contributor

Let's keep an eye on the work-in-progress changes in Theia: eclipse-theia/theia#12784.

self-assigned this
on Oct 10, 2023
changed the title [-]**BREAKING**: Current test/nightly builds not compatible with Ubuntu 18.04[/-] [+]Current test/nightly builds not compatible with Ubuntu 18.04[/+] on Oct 12, 2023
unpinned this issue on Oct 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Participants

    @kittaakos@ubidefeo@per1234@theofficialgman

    Issue actions

      Current test/nightly builds not compatible with Ubuntu 18.04 · Issue #2018 · arduino/arduino-ide