bitwarden/desktop_native-rust-arch.patch
Bruno Pitrus ef14054aaa - New upstream release 2024.8.0
* Allow biometric unlock of browser extension without requiring desktop app to be unlocked
  * Add support for users to set a master password when their organization updates member decryption options
  * Added support for multi-thread encryption to improve performance
  * Add support for biometric unlock on Linux
  * Add support for vault timeout on system lock on Linux

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/bitwarden?expand=0&rev=65
2024-08-25 15:45:59 +00:00

211 lines
6.5 KiB
Diff

Replace wrong path to Rust native module with something we actually control (we aren't using the napi-rs script which is awful).
I have no idea wtf musl is even doing there, as Electron is officially supported only on GNU systems.
--- clients/apps/desktop/desktop_native/napi/index.js.orig 2024-07-15 19:10:33.919215714 +0200
+++ clients/apps/desktop/desktop_native/napi/index.js 2024-07-15 19:33:23.753781579 +0200
@@ -1,203 +1,7 @@
-const { existsSync, readFileSync } = require('fs')
-const { join } = require('path')
-
-const { platform, arch } = process
-
let nativeBinding = null
-let localFileExisted = false
let loadError = null
-function isMusl() {
- // For Node 10
- if (!process.report || typeof process.report.getReport !== 'function') {
- try {
- return readFileSync('/usr/bin/ldd', 'utf8').includes('musl')
- } catch (e) {
- return true
- }
- } else {
- const { glibcVersionRuntime } = process.report.getReport().header
- return !glibcVersionRuntime
- }
-}
-
-switch (platform) {
- case 'android':
- switch (arch) {
- case 'arm64':
- localFileExisted = existsSync(join(__dirname, 'desktop_napi.android-arm64.node'))
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.android-arm64.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-android-arm64')
- }
- } catch (e) {
- loadError = e
- }
- break
- case 'arm':
- localFileExisted = existsSync(join(__dirname, 'desktop_napi.android-arm-eabi.node'))
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.android-arm-eabi.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-android-arm-eabi')
- }
- } catch (e) {
- loadError = e
- }
- break
- default:
- throw new Error(`Unsupported architecture on Android ${arch}`)
- }
- break
- case 'win32':
- switch (arch) {
- case 'x64':
- localFileExisted = existsSync(
- join(__dirname, 'desktop_napi.win32-x64-msvc.node')
- )
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.win32-x64-msvc.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-win32-x64-msvc')
- }
- } catch (e) {
- loadError = e
- }
- break
- case 'ia32':
- localFileExisted = existsSync(
- join(__dirname, 'desktop_napi.win32-ia32-msvc.node')
- )
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.win32-ia32-msvc.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-win32-ia32-msvc')
- }
- } catch (e) {
- loadError = e
- }
- break
- case 'arm64':
- localFileExisted = existsSync(
- join(__dirname, 'desktop_napi.win32-arm64-msvc.node')
- )
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.win32-arm64-msvc.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-win32-arm64-msvc')
- }
- } catch (e) {
- loadError = e
- }
- break
- default:
- throw new Error(`Unsupported architecture on Windows: ${arch}`)
- }
- break
- case 'darwin':
- switch (arch) {
- case 'x64':
- localFileExisted = existsSync(join(__dirname, 'desktop_napi.darwin-x64.node'))
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.darwin-x64.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-darwin-x64')
- }
- } catch (e) {
- loadError = e
- }
- break
- case 'arm64':
- localFileExisted = existsSync(
- join(__dirname, 'desktop_napi.darwin-arm64.node')
- )
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.darwin-arm64.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-darwin-arm64')
- }
- } catch (e) {
- loadError = e
- }
- break
- default:
- throw new Error(`Unsupported architecture on macOS: ${arch}`)
- }
- break
- case 'freebsd':
- if (arch !== 'x64') {
- throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
- }
- localFileExisted = existsSync(join(__dirname, 'desktop_napi.freebsd-x64.node'))
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.freebsd-x64.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-freebsd-x64')
- }
- } catch (e) {
- loadError = e
- }
- break
- case 'linux':
- switch (arch) {
- case 'x64':
- localFileExisted = existsSync(
- join(__dirname, 'desktop_napi.linux-x64-musl.node')
- )
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.linux-x64-musl.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-linux-x64-musl')
- }
- } catch (e) {
- loadError = e
- }
- break
- case 'arm64':
- localFileExisted = existsSync(
- join(__dirname, 'desktop_napi.linux-arm64-musl.node')
- )
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.linux-arm64-musl.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-linux-arm64-musl')
- }
- } catch (e) {
- loadError = e
- }
- break
- case 'arm':
- localFileExisted = existsSync(
- join(__dirname, 'desktop_napi.linux-arm-gnueabihf.node')
- )
- try {
- if (localFileExisted) {
- nativeBinding = require('./desktop_napi.linux-arm-gnueabihf.node')
- } else {
- nativeBinding = require('@bitwarden/desktop-napi-linux-arm-gnueabihf')
- }
- } catch (e) {
- loadError = e
- }
- break
- default:
- throw new Error(`Unsupported architecture on Linux: ${arch}`)
- }
- break
- default:
- throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
-}
+nativeBinding = require('./desktop_napi.node')
if (!nativeBinding) {
if (loadError) {