-
Notifications
You must be signed in to change notification settings - Fork 29.3k
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
Update rpm dependencies file for newer CXXABI requirement #115784
Comments
(Experimental duplicate detection) |
See Breaking Change section at https://code.visualstudio.com/updates/v1_53#_performance-improvements |
Same issue here. Unfortunately CentOS 7 is still wildly use in some areas, and the links pointed to by @gjsjohnmurray explains the cause, but unfortunately doesn't provide any workaround. |
From the changelog:
So I guess my next question would be why, if it's no longer a supported platform, is CentOS7 being given an RPM that's meant for CentOS8? |
@dcourtois previous versions can be downloaded by going to https://code.visualstudio.com/updates and choosing the version from the sidebar, then using the download link on its release notes. I assume you are using CentOS 7 as your desktop, right? And can't use any of the workarounds offered in the 1.53 release notes?
|
If you are affected by this issue, let me tell you what I did:
|
Sorry but we needed to move forward to support the new version of Electron. Here are your options:
|
Understood but the 1.53 RPM shouldn't install on a RHEL7/CentOS7 based system in the first place because RHEL7 has a standardized GLIBC that will be maintained throughout its lifecycle. The rpmspec should include a requires statement based on GLIBC version and the rpms should be provided in an EL compatible repository (i.e., RHEL7 and RHEL8 rpms are maintained in separate locations.) As it stands VS Code is breaking the packaging standards of the platform and causing problems for users. If you can direct me to the appropriate area I'll gladly open a bug request there. |
@tazerdev good point, @deepak1556 we need to update the deps in https://github.com/microsoft/vscode/blob/master/resources/linux/rpm/dependencies.json. Historically I just pull in whatever Chromium targets in their spec. |
Unable to open vscode debugg console and terminal after vs code update. Is there any solution yet. |
Not only Centos has been affected, but also other flavors like OL7 which is a variant of the RH7, etc... cat /etc/*release
Oracle Linux Server release 7.9
NAME="Oracle Linux Server"
VERSION="7.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Oracle Linux Server 7.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.9
Red Hat Enterprise Linux Server release 7.9 (Maipo)
Oracle Linux Server release 7.9 [16111:0206/123246.162480:INFO:CONSOLE(618)] "%c ERR color: #f33 /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/share/code/resources/app/node_modules.asar.unpacked/vscode-sqlite3/build/Release/sqlite.node): Error: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/share/code/resources/app/node_modules.asar.unpacked/vscode-sqlite3/build/Release/sqlite.node)
at process.func [as dlopen] (electron/js2c/asar_bundle.js:5:1812)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1250:18)
at Object.func [as .node] (electron/js2c/asar_bundle.js:5:2039)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at v (/usr/share/code/resources/app/out/vs/loader.js:3:12287)
at Object.<anonymous> (/usr/share/code/resources/app/node_modules.asar/vscode-sqlite3/lib/sqlite3.js:1:77)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at require (internal/modules/cjs/helpers.js:72:18)
at t (/usr/share/code/resources/app/out/vs/loader.js:4:101)
at r.load (/usr/share/code/resources/app/out/vs/loader.js:3:13249)
at r.load (/usr/share/code/resources/app/out/vs/loader.js:3:10262)
at c (/usr/share/code/resources/app/out/vs/loader.js:4:10314)
at Object.errorback (/usr/share/code/resources/app/out/vs/loader.js:4:10435)
at r.triggerErrorback (/usr/share/code/resources/app/out/vs/loader.js:3:10626)
at /usr/share/code/resources/app/out/vs/loader.js:3:10332
at r.load (/usr/share/code/resources/app/out/vs/loader.js:3:13266)
at r.load (/usr/share/code/resources/app/out/vs/loader.js:3:10262)
at c (/usr/share/code/resources/app/out/vs/loader.js:4:10314)
at r._loadModule (/usr/share/code/resources/app/out/vs/loader.js:4:10444)
at r._resolve (/usr/share/code/resources/app/out/vs/loader.js:5:452)
at r.defineModule (/usr/share/code/resources/app/out/vs/loader.js:4:6145)
at r._relativeRequire (/usr/share/code/resources/app/out/vs/loader.js:4:6831)
at n (/usr/share/code/resources/app/out/vs/loader.js:4:9420)
at /usr/share/code/resources/app/out/vs/code/electron-main/main.js:21:31382
at new Promise (<anonymous>)
at /usr/share/code/resources/app/out/vs/code/electron-main/main.js:21:31362
at new Promise (<anonymous>)
at n.doConnect (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:21:31342)
at n.connect (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:21:30812)
at new n (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:21:28194)
at Ot.doInitialize (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:29:16863)
at Ot.initialize (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:29:16753)
at M.init (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:47:2577)
at new M (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:47:2523)
at lt.openFirstWindow (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:55:82995)
at /usr/share/code/resources/app/out/vs/code/electron-main/main.js:55:77462
at E.invokeFunction (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:26:25463)
at lt.startup (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:55:77438)
at async Y.startup (/usr/share/code/resources/app/out/vs/code/electron-main/main.js:57:1448)", source: file:///usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js (618) |
In my view this change is not acceptable. Especially RHEL7 and derivatives are very widely used in enterprise environments and there is no way just 'to upgrade' as usually other commercial tools (in our case EDA simulators) do not even exist yet for RHEL8. This drops a bomb into the workflow of many I would suggest. At least there should be a very clear documentation on how to work around this and this should also be tested continuously for new releases in my view. The recommended remote server workflows are not compatbile with all IT setups where VS Code is being used. |
This worked like a charm! |
the same electon excuse has been raised for teams end of support on centos7... |
this is the workaround to have 1.53 working without CPU problem, right ? could you provide a zip of the package that we need to place in LD_LIBRARY_PATH + example of wrapper for vscode ? because i'm not familiar with this :/ |
I had the library already in my work environment, so I didn't need to download. I just exported the variable before running VSCode, e.g:
And this worked. I think you'd have to compile for your own environment. Here is where you can find the source code: http://ftp.gnu.org/gnu/gcc/gcc-10.2.0/ |
IMHO, the correct solution to this problem is to provide a version of vscode that runs on centos 7 native. This can easily be done using the softwarecollections project (www.softwarecollections.org). I was able to build the vscode open source using DevToolset-10 C++ compiler toolchain. This allows it to run native on centos-7 Devtoolset-10 is allows the entire thing to be built with compatible with centos7, using the latest gcc compiler. Steps I used:
Dockerfile I used to get dependencies:
|
I would suggest Devtoolset-7 considering the Ubuntu 18.04 CI they are treating as the primary linux target is GCC 7.4, but yes I absolutely agree that having an additional build route to maintain compatibility for Enterprise Linux 7 is not a big ask. |
We have a n easy workaround on our side with:
Instead of installing it with yum package manager, we install it through snapcraft.io First, install Snap on CentOS:
And then, install Visual Studio Code through Snap:
|
/verified I am more than happy to confirm that |
thanks. just to be sure, now we must also wait that stable version of vscode will get the correction. right ? |
Apologies that I missed the update. I won't be able to verify until Monday, but it's sufficient for me that others have been able to do so. I'll chime in once I am able to confirm. |
/verified Thanks for fixing this issue. |
/verified working now with 1.60 |
VS Code Version: 1.53.0
OS: RHEL7.9
Error:
The terminal process failed to launch: A native exception occurred during launch (/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/share/code/resources/app/node_modules.asar.unpacked/node-pty/build/Release/pty.node)).
The text was updated successfully, but these errors were encountered: