From b2d93940c081e22765a6c1cbc95c36a675aad144 Mon Sep 17 00:00:00 2001 From: Alex Garcia Date: Sat, 18 May 2024 10:22:56 -0500 Subject: [PATCH] Enable RPM package build for PPC64LE --- package_linux_bin.sh | 12 +- patches/ppc64le-and-riscv64-support.patch | 222 ++++++++++++++++++++++ 2 files changed, 233 insertions(+), 1 deletion(-) diff --git a/package_linux_bin.sh b/package_linux_bin.sh index 3fecf7cb8b4..c5fd98616a6 100755 --- a/package_linux_bin.sh +++ b/package_linux_bin.sh @@ -16,6 +16,12 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; } export VSCODE_SKIP_NODE_VERSION_CHECK=1 export VSCODE_SYSROOT_PREFIX='-glibc-2.17' +if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then + export VSCODE_SYSROOT_REPO='VSCodium/vscode-linux-build-agent' + export VSCODE_SYSROOT_VERSION='20240129-253798' + export VSCODE_SYSROOT_PREFIX='-glibc-2.28' +fi + if [[ -d "../patches/${OS_NAME}/client/" ]]; then for file in "../patches/${OS_NAME}/client/"*.patch; do if [[ -f "${file}" ]]; then @@ -37,7 +43,11 @@ for i in {1..5}; do # try 5 times echo "Yarn failed $i, trying again..." done -./build/azure-pipelines/linux/setup-env.sh +if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then + source ./build/azure-pipelines/linux/setup-env.sh +else + ./build/azure-pipelines/linux/setup-env.sh +fi for i in {1..5}; do # try 5 times yarn --check-files && break diff --git a/patches/ppc64le-and-riscv64-support.patch b/patches/ppc64le-and-riscv64-support.patch index 6f98d1cf84f..022f9471871 100644 --- a/patches/ppc64le-and-riscv64-support.patch +++ b/patches/ppc64le-and-riscv64-support.patch @@ -468,6 +468,228 @@ index e97485ef128..24fe452f7fe 100644 - return ['amd64', 'armhf', 'arm64'].includes(s); + return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s); } +diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js +index bd84fc146dc..50b195e1a98 100644 +--- a/build/linux/rpm/dep-lists.js ++++ b/build/linux/rpm/dep-lists.js +@@ -310,6 +310,106 @@ exports.referenceGeneratedDepsByArch = { + 'rpmlib(FileDigests) <= 4.6.0-1', + 'rtld(GNU_HASH)', + 'xdg-utils' ++ ], ++ "ppc64le": [ ++ 'ca-certificates', ++ 'ld-linux-x86-64.so.2()(64bit)', ++ 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)', ++ 'ld64.so.2()(64bit)', ++ 'ld64.so.2(GLIBC_2.17)(64bit)', ++ 'libX11.so.6()(64bit)', ++ 'libXcomposite.so.1()(64bit)', ++ 'libXdamage.so.1()(64bit)', ++ 'libXext.so.6()(64bit)', ++ 'libXfixes.so.3()(64bit)', ++ 'libXrandr.so.2()(64bit)', ++ 'libasound.so.2()(64bit)', ++ 'libasound.so.2(ALSA_0.9)(64bit)', ++ 'libasound.so.2(ALSA_0.9.0rc4)(64bit)', ++ 'libatk-1.0.so.0()(64bit)', ++ 'libatk-bridge-2.0.so.0()(64bit)', ++ 'libatspi.so.0()(64bit)', ++ 'libc.so.6()(64bit)', ++ 'libc.so.6(GLIBC_2.14)(64bit)', ++ 'libc.so.6(GLIBC_2.17)(64bit)', ++ 'libc.so.6(GLIBC_2.2.5)(64bit)', ++ 'libc.so.6(GLIBC_2.28)(64bit)', ++ 'libc.so.6(GLIBC_2.4)(64bit)', ++ 'libc.so.6(GLIBC_2.9)(64bit)', ++ 'libcairo.so.2()(64bit)', ++ 'libcups.so.2()(64bit)', ++ 'libcurl.so.4()(64bit)', ++ 'libdbus-1.so.3()(64bit)', ++ 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)', ++ 'libdl.so.2()(64bit)', ++ 'libdl.so.2(GLIBC_2.17)(64bit)', ++ 'libdrm.so.2()(64bit)', ++ 'libexpat.so.1()(64bit)', ++ 'libgbm.so.1()(64bit)', ++ 'libgcc_s.so.1()(64bit)', ++ 'libgcc_s.so.1(GCC_3.0)(64bit)', ++ 'libgcc_s.so.1(GCC_3.4.4)(64bit)', ++ 'libgio-2.0.so.0()(64bit)', ++ 'libglib-2.0.so.0()(64bit)', ++ 'libgobject-2.0.so.0()(64bit)', ++ 'libgssapi_krb5.so.2()(64bit)', ++ 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)', ++ 'libgtk-3.so.0()(64bit)', ++ 'libkrb5.so.3()(64bit)', ++ 'libkrb5.so.3(krb5_3_MIT)(64bit)', ++ 'libm.so.6()(64bit)', ++ 'libm.so.6(GLIBC_2.17)(64bit)', ++ 'libm.so.6(GLIBC_2.2.5)(64bit)', ++ 'libm.so.6(GLIBC_2.27)(64bit)', ++ 'libnspr4.so()(64bit)', ++ 'libnss3.so()(64bit)', ++ 'libnss3.so(NSS_3.11)(64bit)', ++ 'libnss3.so(NSS_3.12)(64bit)', ++ 'libnss3.so(NSS_3.12.1)(64bit)', ++ 'libnss3.so(NSS_3.2)(64bit)', ++ 'libnss3.so(NSS_3.22)(64bit)', ++ 'libnss3.so(NSS_3.3)(64bit)', ++ 'libnss3.so(NSS_3.30)(64bit)', ++ 'libnss3.so(NSS_3.4)(64bit)', ++ 'libnss3.so(NSS_3.5)(64bit)', ++ 'libnss3.so(NSS_3.9.2)(64bit)', ++ 'libnssutil3.so()(64bit)', ++ 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)', ++ 'libpango-1.0.so.0()(64bit)', ++ 'libpthread.so.0()(64bit)', ++ 'libpthread.so.0(GLIBC_2.17)(64bit)', ++ 'libpthread.so.0(GLIBC_2.2.5)(64bit)', ++ 'libpthread.so.0(GLIBC_2.3.2)(64bit)', ++ 'libpthread.so.0(GLIBC_2.3.3)(64bit)', ++ 'libsmime3.so()(64bit)', ++ 'libsmime3.so(NSS_3.10)(64bit)', ++ 'libsmime3.so(NSS_3.2)(64bit)', ++ 'libssl3.so(NSS_3.28)(64bit)', ++ 'libstdc++.so.6()(64bit)', ++ 'libstdc++.so.6(CXXABI_1.3)(64bit)', ++ 'libstdc++.so.6(CXXABI_1.3.5)(64bit)', ++ 'libstdc++.so.6(CXXABI_1.3.8)(64bit)', ++ 'libstdc++.so.6(CXXABI_1.3.9)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)', ++ 'libutil.so.1()(64bit)', ++ 'libutil.so.1(GLIBC_2.2.5)(64bit)', ++ 'libxcb.so.1()(64bit)', ++ 'libxkbcommon.so.0()(64bit)', ++ 'libxkbcommon.so.0(V_0.5.0)(64bit)', ++ 'libxkbfile.so.1()(64bit)', ++ 'rpmlib(FileDigests) <= 4.6.0-1', ++ 'rtld(GNU_HASH)', ++ 'xdg-utils' + ] + }; + //# sourceMappingURL=dep-lists.js.map +\ No newline at end of file +diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts +index 82a4fe7698d..1ba4c5848e3 100644 +--- a/build/linux/rpm/dep-lists.ts ++++ b/build/linux/rpm/dep-lists.ts +@@ -309,5 +309,105 @@ export const referenceGeneratedDepsByArch = { + 'rpmlib(FileDigests) <= 4.6.0-1', + 'rtld(GNU_HASH)', + 'xdg-utils' ++ ], ++ "ppc64le": [ ++ 'ca-certificates', ++ 'ld-linux-x86-64.so.2()(64bit)', ++ 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)', ++ 'ld64.so.2()(64bit)', ++ 'ld64.so.2(GLIBC_2.17)(64bit)', ++ 'libX11.so.6()(64bit)', ++ 'libXcomposite.so.1()(64bit)', ++ 'libXdamage.so.1()(64bit)', ++ 'libXext.so.6()(64bit)', ++ 'libXfixes.so.3()(64bit)', ++ 'libXrandr.so.2()(64bit)', ++ 'libasound.so.2()(64bit)', ++ 'libasound.so.2(ALSA_0.9)(64bit)', ++ 'libasound.so.2(ALSA_0.9.0rc4)(64bit)', ++ 'libatk-1.0.so.0()(64bit)', ++ 'libatk-bridge-2.0.so.0()(64bit)', ++ 'libatspi.so.0()(64bit)', ++ 'libc.so.6()(64bit)', ++ 'libc.so.6(GLIBC_2.14)(64bit)', ++ 'libc.so.6(GLIBC_2.17)(64bit)', ++ 'libc.so.6(GLIBC_2.2.5)(64bit)', ++ 'libc.so.6(GLIBC_2.28)(64bit)', ++ 'libc.so.6(GLIBC_2.4)(64bit)', ++ 'libc.so.6(GLIBC_2.9)(64bit)', ++ 'libcairo.so.2()(64bit)', ++ 'libcups.so.2()(64bit)', ++ 'libcurl.so.4()(64bit)', ++ 'libdbus-1.so.3()(64bit)', ++ 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)', ++ 'libdl.so.2()(64bit)', ++ 'libdl.so.2(GLIBC_2.17)(64bit)', ++ 'libdrm.so.2()(64bit)', ++ 'libexpat.so.1()(64bit)', ++ 'libgbm.so.1()(64bit)', ++ 'libgcc_s.so.1()(64bit)', ++ 'libgcc_s.so.1(GCC_3.0)(64bit)', ++ 'libgcc_s.so.1(GCC_3.4.4)(64bit)', ++ 'libgio-2.0.so.0()(64bit)', ++ 'libglib-2.0.so.0()(64bit)', ++ 'libgobject-2.0.so.0()(64bit)', ++ 'libgssapi_krb5.so.2()(64bit)', ++ 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)', ++ 'libgtk-3.so.0()(64bit)', ++ 'libkrb5.so.3()(64bit)', ++ 'libkrb5.so.3(krb5_3_MIT)(64bit)', ++ 'libm.so.6()(64bit)', ++ 'libm.so.6(GLIBC_2.17)(64bit)', ++ 'libm.so.6(GLIBC_2.2.5)(64bit)', ++ 'libm.so.6(GLIBC_2.27)(64bit)', ++ 'libnspr4.so()(64bit)', ++ 'libnss3.so()(64bit)', ++ 'libnss3.so(NSS_3.11)(64bit)', ++ 'libnss3.so(NSS_3.12)(64bit)', ++ 'libnss3.so(NSS_3.12.1)(64bit)', ++ 'libnss3.so(NSS_3.2)(64bit)', ++ 'libnss3.so(NSS_3.22)(64bit)', ++ 'libnss3.so(NSS_3.3)(64bit)', ++ 'libnss3.so(NSS_3.30)(64bit)', ++ 'libnss3.so(NSS_3.4)(64bit)', ++ 'libnss3.so(NSS_3.5)(64bit)', ++ 'libnss3.so(NSS_3.9.2)(64bit)', ++ 'libnssutil3.so()(64bit)', ++ 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)', ++ 'libpango-1.0.so.0()(64bit)', ++ 'libpthread.so.0()(64bit)', ++ 'libpthread.so.0(GLIBC_2.17)(64bit)', ++ 'libpthread.so.0(GLIBC_2.2.5)(64bit)', ++ 'libpthread.so.0(GLIBC_2.3.2)(64bit)', ++ 'libpthread.so.0(GLIBC_2.3.3)(64bit)', ++ 'libsmime3.so()(64bit)', ++ 'libsmime3.so(NSS_3.10)(64bit)', ++ 'libsmime3.so(NSS_3.2)(64bit)', ++ 'libssl3.so(NSS_3.28)(64bit)', ++ 'libstdc++.so.6()(64bit)', ++ 'libstdc++.so.6(CXXABI_1.3)(64bit)', ++ 'libstdc++.so.6(CXXABI_1.3.5)(64bit)', ++ 'libstdc++.so.6(CXXABI_1.3.8)(64bit)', ++ 'libstdc++.so.6(CXXABI_1.3.9)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)', ++ 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)', ++ 'libutil.so.1()(64bit)', ++ 'libutil.so.1(GLIBC_2.2.5)(64bit)', ++ 'libxcb.so.1()(64bit)', ++ 'libxkbcommon.so.0()(64bit)', ++ 'libxkbcommon.so.0(V_0.5.0)(64bit)', ++ 'libxkbfile.so.1()(64bit)', ++ 'rpmlib(FileDigests) <= 4.6.0-1', ++ 'rtld(GNU_HASH)', ++ 'xdg-utils' + ] + }; diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js index a20b9c2fe02..99a8cff7856 100644 --- a/build/linux/rpm/types.js