Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
3 tasks done
ubidefeo opened this issue Apr 14, 2023 · 2 comments · Fixed by #2253
Closed
3 tasks done

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

ubidefeo opened this issue Apr 14, 2023 · 2 comments · Fixed by #2253
Assignees
Labels
conclusion: resolved Issue was resolved os: linux Specific to Linux operating system topic: infrastructure Related to project infrastructure type: imperfection Perceived defect in any part of project

Comments

@ubidefeo
Copy link

ubidefeo commented Apr 14, 2023

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 the issue tracker
  • I verified the problem still occurs when using the latest nightly build
  • My report contains all necessary details
@ubidefeo ubidefeo added the type: imperfection Perceived defect in any part of project label Apr 14, 2023
@ubidefeo ubidefeo pinned this issue Apr 14, 2023
@per1234 per1234 added topic: infrastructure Related to project infrastructure os: linux Specific to Linux operating system labels Apr 14, 2023
@theofficialgman
Copy link

@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
Copy link
Contributor

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

@per1234 per1234 self-assigned this Oct 10, 2023
@per1234 per1234 changed the title **BREAKING**: Current test/nightly builds not compatible with Ubuntu 18.04 Current test/nightly builds not compatible with Ubuntu 18.04 Oct 12, 2023
@per1234 per1234 unpinned this issue Oct 12, 2023
@per1234 per1234 added the conclusion: resolved Issue was resolved label Oct 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
conclusion: resolved Issue was resolved os: linux Specific to Linux operating system topic: infrastructure Related to project infrastructure type: imperfection Perceived defect in any part of project
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants