diff --git a/1000-fix-build-on-riscv64.patch b/1000-fix-build-on-riscv64.patch new file mode 100644 index 0000000000000000000000000000000000000000..87bc05ffde3f3f2525f188dac1b07fae5447ca1e --- /dev/null +++ b/1000-fix-build-on-riscv64.patch @@ -0,0 +1,113 @@ +From: Xin Liu + +Fix: Safely override Symbol.toStringTag in getRawTag using Object.defineProperty to prevent TypeError on riscv64 + +--- a/node_modules/rollup-plugin-typescript2/dist/rollup-plugin-typescript2.cjs.js 2025-05-26 23:00:09.159827784 +0800 ++++ b/node_modules/rollup-plugin-typescript2/dist/rollup-plugin-typescript2.cjs.js.fixed 2025-05-26 22:38:40.328887554 +0800 +@@ -7598,21 +7598,43 @@ + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { +- var isOwn = hasOwnProperty.call(value, symToStringTag), +- tag = value[symToStringTag]; ++ var isOwn = hasOwnProperty.call(value, symToStringTag); ++ var originalTagValue; ++ var originalOwnPropertyDescriptor; ++ ++ if (isOwn) { ++ originalTagValue = value[symToStringTag]; ++ originalOwnPropertyDescriptor = Object.getOwnPropertyDescriptor(value, symToStringTag); ++ } ++ ++ var unmasked = false; + + try { +- value[symToStringTag] = undefined$1; +- var unmasked = true; ++ Object.defineProperty(value, symToStringTag, { ++ value: undefined$1, ++ writable: true, ++ configurable: true, ++ enumerable: false ++ }); ++ unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); +- if (unmasked) { +- if (isOwn) { +- value[symToStringTag] = tag; +- } else { +- delete value[symToStringTag]; +- } ++ if (unmasked) { ++ try { ++ if (isOwn && originalOwnPropertyDescriptor) { ++ Object.defineProperty(value, symToStringTag, originalOwnPropertyDescriptor); ++ } else if (isOwn) { ++ Object.defineProperty(value, symToStringTag, { ++ value: originalTagValue, ++ writable: (originalOwnPropertyDescriptor ? originalOwnPropertyDescriptor.writable : true), ++ configurable: true, ++ enumerable: (originalOwnPropertyDescriptor ? originalOwnPropertyDescriptor.enumerable : false) ++ }); ++ } else { ++ delete value[symToStringTag]; ++ } ++ } catch (e) {} + } + return result; + } +@@ -19203,21 +19225,43 @@ + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { +- var isOwn = hasOwnProperty.call(value, symToStringTag), +- tag = value[symToStringTag]; ++ var isOwn = hasOwnProperty.call(value, symToStringTag); ++ var originalTagValue; ++ var originalOwnPropertyDescriptor; ++ ++ if (isOwn) { ++ originalTagValue = value[symToStringTag]; ++ originalOwnPropertyDescriptor = Object.getOwnPropertyDescriptor(value, symToStringTag); ++ } ++ ++ var unmasked = false; + + try { +- value[symToStringTag] = undefined; +- var unmasked = true; ++ Object.defineProperty(value, symToStringTag, { ++ value: undefined, ++ writable: true, ++ configurable: true, ++ enumerable: false ++ }); ++ unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { +- if (isOwn) { +- value[symToStringTag] = tag; +- } else { +- delete value[symToStringTag]; +- } ++ try { ++ if (isOwn && originalOwnPropertyDescriptor) { ++ Object.defineProperty(value, symToStringTag, originalOwnPropertyDescriptor); ++ } else if (isOwn) { ++ Object.defineProperty(value, symToStringTag, { ++ value: originalTagValue, ++ writable: (originalOwnPropertyDescriptor ? originalOwnPropertyDescriptor.writable : true), ++ configurable: true, ++ enumerable: (originalOwnPropertyDescriptor ? originalOwnPropertyDescriptor.enumerable : false) ++ }); ++ } else { ++ delete value[symToStringTag]; ++ } ++ } catch (e) {} + } + return result; + } diff --git a/oeDevPlugin-node_modules_extension-Linux-riscv64.tar.gz b/oeDevPlugin-node_modules_extension-Linux-riscv64.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bc360009385063fdd48235e6da6ca4b9b187405c Binary files /dev/null and b/oeDevPlugin-node_modules_extension-Linux-riscv64.tar.gz differ diff --git a/oeDevPlugin-node_modules_webview-Linux-riscv64.tar.gz b/oeDevPlugin-node_modules_webview-Linux-riscv64.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f991774a96bbabdb579c218bc4441be91458b05e Binary files /dev/null and b/oeDevPlugin-node_modules_webview-Linux-riscv64.tar.gz differ diff --git a/oeDevPlugin.spec b/oeDevPlugin.spec index 724e679900fead401765d3c93f170f1090ee6d3d..b3da50437fa683c850b77810cfe8da3d8e403805 100644 --- a/oeDevPlugin.spec +++ b/oeDevPlugin.spec @@ -1,6 +1,6 @@ Name: oeDevPlugin Version: 1.0.2 -Release: 2 +Release: 3 Summary: oeDevPlugin is designed for all developers, based on the widely-used IDE VSCode. License: MulanPSL-2.0 @@ -10,6 +10,10 @@ Source1: %{name}-node_modules_extension-Linux-x86_64.tar.gz Source2: %{name}-node_modules_webview-Linux-x86_64.tar.gz Source3: %{name}-node_modules_extension-Linux-aarch64.tar.gz Source4: %{name}-node_modules_webview-Linux-aarch64.tar.gz +Source5: %{name}-node_modules_extension-Linux-riscv64.tar.gz +Source6: %{name}-node_modules_webview-Linux-riscv64.tar.gz + +Patch1000: 1000-fix-build-on-riscv64.patch BuildRequires: nodejs Requires: vscodium @@ -33,6 +37,12 @@ tar -xzf %{SOURCE3} -C . tar -xzf %{SOURCE4} -C webview-ui %endif +%ifarch riscv64 +tar -xzf %{SOURCE5} -C . +%patch 1000 -p1 +tar -xzf %{SOURCE6} -C webview-ui +%endif + if [ ! -f LICENSE ]; then echo "MulanPSL-2.0 license file is missing" >&2 exit 1 @@ -53,6 +63,9 @@ cp -r webview-ui/build %{buildroot}%{_datadir}/vscodium/resources/app/extensions %{_datadir}/vscodium/resources/app/extensions/%{name}-%{version} %changelog +* Fri Jun 06 2025 misaka00251 - 1.0.2-3 +- Add riscv64 build + * Fri May 30 2025 Li Zixin 2271170409@qq.com - 1.0.2-2 - update docs