wpilibsuite / allwpilib

Official Repository of WPILibJ and WPILibC
https://wpilib.org/
Other
1.06k stars 614 forks source link

2023 beta OutlineViewer does not run on Ubuntu 20.04 #4737

Closed fovea1959 closed 1 year ago

fovea1959 commented 1 year ago

Describe the bug OutlineViewer does not run on Ubuntu 20.04; it throws error messages about GLIBC and GLIBCXX version missing.

To Reproduce Steps to reproduce the behavior:

  1. Boot Ubuntu 20.04.
  2. Install from WPILib_Linux-2023.1.1-beta-4.tar.gz, per instructions for 'Tools Only'.
  3. cd ~/wpilib/2023/tools
  4. ./OutlineViewer.py

Expected behavior OutlineViewer window should appear.

Screenshots

/home/wegscd/wpilib/2023/tools/outlineviewer: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/wegscd/wpilib/2023/tools/outlineviewer)
/home/wegscd/wpilib/2023/tools/outlineviewer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/wegscd/wpilib/2023/tools/outlineviewer)
/home/wegscd/wpilib/2023/tools/outlineviewer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/wegscd/wpilib/2023/tools/outlineviewer)
/home/wegscd/wpilib/2023/tools/outlineviewer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/wegscd/wpilib/2023/tools/outlineviewer)

Desktop (please complete the following information):

Additional context OutlineViewer from WPILib_Linux-2022.4.1 works fine.

ThadHouse commented 1 year ago

2023 WPIlib requires Ubuntu 22.04 at minimum.

fovea1959 commented 1 year ago

please reconsider that restriction. From the 2022 official WPILIB documentation:

The following OSes will be unsupported starting 2023: Ubuntu 18.04, Windows 7, Windows 8.1, and any 32-bit Windows. MacOS 10.14 is no longer supported as of 2022.
ThadHouse commented 1 year ago

2022 supported 20.04, for 2023 the documentation has been updated to require 22.04. It also removed Windows 7 and 8, and older macOS as well. We needed version bumps to get better c++20 support and newer compilers. We’ve pretty much always required the latest Ubuntu LTS.

calcmogul commented 1 year ago

Our next upgrade will likely be in fall 2024 to Ubuntu 24.04 LTS, so we'll be on 22.04 for the 2023 and 2024 seasons.

image

fovea1959 commented 1 year ago

Can OutlineViewer be built to run on 20.04?

I am fine with dropping of Ubuntu 18.04, Windows 7, Windows 8, and 32 bit; we were warned last year. Dropping support of 20.04 LTS is a bit of a surprise; having to upgrade my OS to something less than a year old is a little aggressive....

calcmogul commented 1 year ago

having to upgrade my OS to something less than a year old is a little aggressive

Why is that aggressive?

ThadHouse commented 1 year ago

Its not easy to revert back, the entire dependency chain is built against 22.04. I also think the 18.04 note from the doc last year was a typo, and should have been 20.04. 18.04 wasn't supported last year.

We've been pretty fast at keeping up to date OS's. It usually results in better support and less problems.

fovea1959 commented 1 year ago

Upgrades break old things. This laptop is not devoted to WPIlib.

My advice (37 years in the industry): supporting current version - 1 is a Good Thing; not all customers in industry can upgrade to the latest at the drop of a hat.

Closing the ticket, ain't gonna waste anyone's time on it. Can workaround.

ThadHouse commented 1 year ago

Its kind of a hard choice. Staying on old versions generally requires losing features, especially in C++, since linux decides to ship the compilers with the OS. When all the other OS's support new C++ versions, including the roboRIO, the choice becomes hold back the entire ecosystem because of 1 OS, or update that OS. When theres a new LTS we can upgrade to, that choice becomes fairly easy, especially when desktop linux is a fairly small portion of the user base. We know its hard to upgrade, but we'd rather not hold back the entire ecosystem.

PeterJohnson commented 1 year ago

As a workaround, you should be able to install GCC-10 on 20.04 and build allwpilib from source with cmake. The reason we don't do this for our builds is because of the support downside: C++ teams building on 20.04 for simulation could easily run into issues because the default compiler is GCC 9.