XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    libfuse.so: error adding symbols: File in wrong format

    Scheduled Pinned Locked Moved Xen Orchestra
    45 Posts 7 Posters 12.6k Views 7 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M Offline
      mavoff @julien-f
      last edited by

      @julien-f thanks. in the meanwhile let me ask @Ezka when you rebuilt did you use npm i instead of yarn or just the plain old yard command?

      EzkaE 1 Reply Last reply Reply Quote 0
      • EzkaE Offline
        Ezka @mavoff
        last edited by

        @maverick

        I've use something like :

        npm install && npm run build
        

        and in doubt I've rebuild with:

        npm install && yarn build
        

        both work, no surprises here.

        Note that the npm install step on arm64 takes ages โ˜  in comparison to the x86_64 arch. It was already slow with yarn, but npm is a pain. I've try to build it on Github infra to release a multiarch docker but it reaches the max execution time ๐Ÿคท

        1 Reply Last reply Reply Quote 0
        • T Offline
          tamas
          last edited by

          I am also affected by this error message and now, according to the suggestions posted here, I had been able to build the version. However, now when I want to start the xo-server, I get the following message:

          # /usr/local/bin/node ./dist/cli.mjs
          node:internal/modules/cjs/loader:985
            const err = new Error(message);
                        ^
          
          Error: Cannot find module 'strnum'
          Require stack:
          - /opt/xen-orchestra/packages/xo-server/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js
          - /opt/xen-orchestra/packages/xo-server/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js
          - /opt/xen-orchestra/packages/xo-server/node_modules/fast-xml-parser/src/fxp.js
              at Function.Module._resolveFilename (node:internal/modules/cjs/loader:985:15)
              at Function.Module._load (node:internal/modules/cjs/loader:833:27)
              at Module.require (node:internal/modules/cjs/loader:1057:19)
              at require (node:internal/modules/cjs/helpers:103:18)
              at Object.<anonymous> (/opt/xen-orchestra/packages/xo-server/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js:7:18)
              at Module._compile (node:internal/modules/cjs/loader:1155:14)
              at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)
              at Module.load (node:internal/modules/cjs/loader:1033:32)
              at Function.Module._load (node:internal/modules/cjs/loader:868:12)
              at Module.require (node:internal/modules/cjs/loader:1057:19)
              at require (node:internal/modules/cjs/helpers:103:18)
              at Object.<anonymous> (/opt/xen-orchestra/packages/xo-server/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js:2:26)
              at Module._compile (node:internal/modules/cjs/loader:1155:14)
              at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)
              at Module.load (node:internal/modules/cjs/loader:1033:32)
              at Function.Module._load (node:internal/modules/cjs/loader:868:12) {
            code: 'MODULE_NOT_FOUND',
            requireStack: [
              '/opt/xen-orchestra/packages/xo-server/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js',
              '/opt/xen-orchestra/packages/xo-server/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js',
              '/opt/xen-orchestra/packages/xo-server/node_modules/fast-xml-parser/src/fxp.js'
            ]
          }
          

          What can I do here to get the interface working again?

          TIA

          florentF 1 Reply Last reply Reply Quote 0
          • florentF Offline
            florent Vates ๐Ÿช XO Team @tamas
            last edited by

            @tamas said in libfuse.so: error adding symbols: File in wrong format:

            fast-xml-parser

            fast-xml-parser is an older deps (last change is at least a few months old). Do you know which is the last working version on your system ?

            T 1 Reply Last reply Reply Quote 0
            • T Offline
              tamas @florent
              last edited by

              @florent said in libfuse.so: error adding symbols: File in wrong format:

              @tamas said in libfuse.so: error adding symbols: File in wrong format:

              fast-xml-parser

              fast-xml-parser is an older deps (last change is at least a few months old). Do you know which is the last working version on your system ?

              Unglรผcklicherweise weiรŸ ich das nicht. Die funktionierende Version hatte ich vor circa 3 Monaten installiert.

              1 Reply Last reply Reply Quote 0
              • M Offline
                Mark C @florent
                last edited by

                @florent said in libfuse.so: error adding symbols: File in wrong format:

                @maverick using system li b will add a tight dependency, it will be harder to make it work on exotic systems

                I pushed a new patch on the same branch, can you tell me if it solves the problem ?

                Hi @florent,

                I know this is an old topic, but I was looking to build XO on ARM64 recently and I ran across the issue that the node fuse-native package doesn't support arm64 and appears to be abandoned, and your branch with making it an optional dependancy. Thanks!

                However, digging a bit more, I found https://github.com/sagemathinc/fuse-native which looks to be a very recent derivation of the published fuse-native module that has been adjusted to use system libraries on the build host rather than binaries bundled into the module.

                Reworking this fix to use this alternative might give working fuse support on ARM64.

                What do you think? I guess in terms of the non-ARM64 builds, it is a risk/new dependancy to use the system's fuse libraries but maybe a better approach long term as the libfuse.so in fuse-friends is increasingly old and lacking in updates.

                Mark

                1 Reply Last reply Reply Quote 0
                • olivierlambertO Online
                  olivierlambert Vates ๐Ÿช Co-Founder CEO
                  last edited by

                  Sounds like a good idea ๐Ÿ™‚ However, I don't think our current XOAs are shipped with fuse libs directly, so that might break for our XOA users ๐Ÿค”

                  At least we can take a look to test it!

                  M 1 Reply Last reply Reply Quote 0
                  • M Offline
                    Mark C @olivierlambert
                    last edited by

                    @olivierlambert - thanks for getting back on this.

                    My limited testing so far was to substitute the alternate fuse-native module. ( There's probably a better way to do this but I didn't really want to fork the repo for some quick tests! )

                    • Make a build folder, then git clone https://github.com/sagemathinc/fuse-native
                    • Edit the sagemathinc package.json so that the name and version match the fuse-friends version (to avoid having to adjust any of the xen-orchestra files directly)
                    • git clone https://github.com/vatesfr/xen-orchestra.git
                    • copy the modified fuse-native folder into the xen-orchestra folder
                    • Run 'yarn link' in xen-orchestra/fuse-native folder to tell yarn to use this local module instead of the fuse-friends version
                    • Run 'yarn link fuse-native' in the xen-orchestra folder to have the xen-orchestra build use the local version
                    • Run yarn and yarn build as per the build-from-source page

                    I got a version of xo-server built from current master, and it started up. I haven't done anything with it yet beyond the initial smoke-test.

                    Wrinkles - I needed to add pkg-config to the debian 12 build and host VM as sagemathinc's fuse-native module uses that to locate the system libfuse libraries. So if you're looking at the XOA side, then pkg-config would be a new build dependancy in addition to the host's libfuse libraries.

                    Sincerely,

                    Mark

                    xo-server 5.120.2 / xo-web 5.122.2 / commit 3baa378

                    1 Reply Last reply Reply Quote 0
                    • olivierlambertO Online
                      olivierlambert Vates ๐Ÿช Co-Founder CEO
                      last edited by

                      It's not a problem per se to add a new package in XOA, it's just that we can't do that for all existing/running XOAs for our existing customers. So we can't afford to break it. What we usually do, is to regen a new XOA from time to time (a fresh one is coming in September) on Debian 12.

                      I'll check to see if we can add a package for fuse, but this won't solve it for our existing users ๐Ÿ™‚

                      1 Reply Last reply Reply Quote 0
                      • florentF Offline
                        florent Vates ๐Ÿช XO Team
                        last edited by florent

                        @Mark-C I can't test easily for now, but I think there may be an easier path after reviewing your solution

                        fuse-native use fuse-shared-library 1.0.2
                        from version 1.1 , fuse-shared-library should support ARM , maybe it is possible to bump it in the dependencies of fuse-native ?

                        This way , it should still work without libfuse on the system, but also build it on arm

                        M 1 Reply Last reply Reply Quote 0
                        • M Offline
                          Mark C @florent
                          last edited by Mark C

                          @florent said in libfuse.so: error adding symbols: File in wrong format:

                          @Mark-C I can't test easily for now, but I think there may be an easier path after reviewing your solution

                          fuse-native use fuse-shared-library 1.0.2
                          from version 1.1 , fuse-shared-library should support ARM , maybe it is possible to bump it in the dependencies of fuse-native ?

                          This way , it should still work without libfuse on the system, but also build it on arm

                          Hi @florent ,

                          I am building on aarch64 / ARM64 rather than just arm.

                          I did look at fuse-shared-library-linux-arm library - the embedded libfuse.so in that is a 32 bit version rather than 64 bit from what I could see:

                          root@xo-aarch64:/home/xo/xoi/xo-builds/xen-orchestra-202308250931/node_modules/fuse-shared-library-linux-arm/libfuse/lib# file libfuse.so
                          libfuse.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=6ed4a4b321ab69af9aeef3db322ba67396f4d52b, stripped

                          That's in contrast to the system library:

                          /usr/lib/aarch64-linux-gnu/libfuse.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=29ce785f4418d869ead1b31501c4a82446de0cfe, stripped

                          @olivierlambert - I do appreciate the support issue for existing platforms and users. This is very much me looking at using a turing pi 2 as a low power setup in my home lab and I appreciate it is a niche case.

                          The more supportable fix would be to add ARM64 support into the fuse-friends version of fuse-native, but it seems that node's current policies don't allow adoption of orphaned/abandoned modules to avoid supply-chain attacks. [ https://docs.npmjs.com/policies/disputes - When not to use this process ].

                          M 1 Reply Last reply Reply Quote 1
                          • M mavoff referenced this topic on
                          • M Offline
                            mavoff @Mark C
                            last edited by

                            Looking for a long term fix. Thanks.

                            M 1 Reply Last reply Reply Quote 0
                            • M Offline
                              Mark C @mavoff
                              last edited by

                              Hi @maverick,

                              I've not done much with this since my 'bodge' to build an ARM64 version back in August.

                              The version I have running on a Raspberry Pi CM4 from back then does appear to be functioning as expected for everything I have tried. ( Basic start / stop / backup / restore / create / destroy for a small XCP-NG cluster running on x64. ). That satisfies my use case to have XO from the sources running on something that isn't the cluster it is managing.

                              I do understand the support issues @olivierlambert flagged up in August, and I don't have any good solutions to resolve those for existing deployments of XOA doing upgrades rather than fresh installs. That's something the real maintainers will have to consider around the (minor) benefit of building for ARM64 vs any related support overheads of existing XOA upgrade issues.

                              Sincerely,

                              Mark

                              M 1 Reply Last reply Reply Quote 0
                              • M Offline
                                mavoff @Mark C
                                last edited by mavoff

                                @Mark-C Hi there

                                I had this fuse fix for arm working for a long while.
                                Recently due to another issue I was pushed towards updating, only to get a broken XO and issue abandoned. Even when shown that I was on this branch specifically, fix_fuse_dependancy_arm.

                                Also tried your suggestion as a fix, but not quite working.

                                # yarn
                                yarn install v1.22.19
                                [1/5] Validating package.json...
                                [2/5] Resolving packages...
                                [3/5] Fetching packages...
                                [4/5] Linking dependencies...
                                warning "workspace-aggregator-7976f8d6-c4ac-4618-ae07-8b737c9d1cc1 > @xen-orchestra/fs > @aws-sdk/lib-storage@3.171.0" has unmet peer dependency "@aws-sdk/abort-controller@^3.0.0".
                                warning Workspaces can only be enabled in private projects.
                                [5/5] Building fresh packages...
                                [1/12] โ  husky
                                [6/12] โ  argon2
                                [3/12] โ  highlight.js
                                [4/12] โ  esbuild
                                warning Error running install script for optional dependency: "/opt/xen-orchestra/node_modules/fuse-native: Command failed.
                                Exit code: 1
                                Command: node-gyp-build
                                Arguments: 
                                Directory: /opt/xen-orchestra/node_modules/fuse-native
                                Output:
                                node:events:495
                                      throw er; // Unhandled 'error' event
                                      ^
                                
                                Error: spawn node-gyp ENOENT
                                    at ChildProcess._handle.onexit (node:internal/child_process:284:19)
                                    at onErrorNT (node:internal/child_process:477:16)
                                    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
                                Emitted 'error' event on ChildProcess instance at:
                                    at ChildProcess._handle.onexit (node:internal/child_process:290:12)
                                    at onErrorNT (node:internal/child_process:477:16)
                                    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
                                  errno: -2,
                                  code: 'ENOENT',
                                  syscall: 'spawn node-gyp',
                                  path: 'node-gyp',
                                  spawnargs: [ 'rebuild' ]
                                [10/12] โ   core-js
                                [6/12] โ   argon2
                                [8/12] โ   vuepress
                                [7/12] โ   leveldown
                                error /opt/xen-orchestra/node_modules/leveldown: Command failed.
                                Exit code: 1
                                Command: node-gyp-build
                                Arguments: 
                                Directory: /opt/xen-orchestra/node_modules/leveldown
                                Output:
                                node:events:495
                                      throw er; // Unhandled 'error' event
                                      ^
                                
                                Error: spawn node-gyp ENOENT
                                    at ChildProcess._handle.onexit (node:internal/child_process:284:19)
                                    at onErrorNT (node:internal/child_process:477:16)
                                    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
                                Emitted 'error' event on ChildProcess instance at:
                                    at ChildProcess._handle.onexit (node:internal/child_process:290:12)
                                    at onErrorNT (node:internal/child_process:477:16)
                                    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
                                  errno: -2,
                                  code: 'ENOENT',
                                  syscall: 'spawn node-gyp',
                                  path: 'node-gyp',
                                  spawnargs: [ 'rebuild' ]
                                

                                Thank you for your reply either way. Cheers

                                M 1 Reply Last reply Reply Quote 0
                                • M Offline
                                  Mark C @mavoff
                                  last edited by Mark C

                                  @maverick Hi Maverick,

                                  I just tried a test build prep and it seems to work for me. I created a new user, xo_test and swapped to it, then:

                                  
                                  xo_test@xo2:~$ mkdir build
                                  xo_test@xo2:~$ cd build/
                                  xo_test@xo2:~/build$ git clone https://github.com/sagemathinc/fuse-native
                                  Cloning into 'fuse-native'...
                                  remote: Enumerating objects: 409, done.
                                  remote: Counting objects: 100% (409/409), done.
                                  remote: Compressing objects: 100% (160/160), done.
                                  remote: Total 409 (delta 259), reused 396 (delta 246), pack-reused 0
                                  Receiving objects: 100% (409/409), 150.36 KiB | 2.64 MiB/s, done.
                                  Resolving deltas: 100% (259/259), done.
                                  
                                  xo_test@xo2:~/build$ git clone https://github.com/vatesfr/xen-orchestra.git
                                  Cloning into 'xen-orchestra'...
                                  remote: Enumerating objects: 119983, done.
                                  remote: Counting objects: 100% (3095/3095), done.
                                  remote: Compressing objects: 100% (1400/1400), done.
                                  remote: Total 119983 (delta 2143), reused 2278 (delta 1654), pack-reused 116888
                                  Receiving objects: 100% (119983/119983), 64.38 MiB | 9.78 MiB/s, done.
                                  Resolving deltas: 100% (86309/86309), done.
                                  
                                  xo_test@xo2:~/build$ cp -a fuse-native fuse-native.orig
                                  xo_test@xo2:~/build/fuse-native$ nano -w fuse-native/package.json 
                                  
                                  xo_test@xo2:~/build$ diff -u fuse-native.orig fuse-native
                                  Common subdirectories: fuse-native.orig/.git and fuse-native/.git
                                  diff -u fuse-native.orig/package.json fuse-native/package.json
                                  --- fuse-native.orig/package.json	2023-10-23 14:25:18.067638984 +0100
                                  +++ fuse-native/package.json	2023-10-23 14:29:19.703990676 +0100
                                  @@ -1,6 +1,6 @@
                                   {
                                  -  "name": "@cocalc/fuse-native",
                                  -  "version": "2.4.0",
                                  +  "name": "fuse-native",
                                  +  "version": "2.2.6",
                                     "description": "Node.js bindings for the FUSE api (Filesystem in Userspace)",
                                     "main": "index.js",
                                     "bin": {
                                  @@ -28,7 +28,7 @@
                                     },
                                     "repository": {
                                       "type": "git",
                                  -    "url": "https://github.com/sagemathinc/fuse-native.git"
                                  +    "url": "https://github.com/fuse-friends/fuse-native.git"
                                     },
                                     "author": {
                                       "name": "William Stein (SageMath, Inc.)",
                                  @@ -44,7 +44,7 @@
                                     "author": " ()",
                                     "license": "MIT",
                                     "bugs": {
                                  -    "url": "https://github.com/sagemathinc/fuse-native/issues"
                                  +    "url": "https://github.com/fuse-friends/fuse-native/issues"
                                     },
                                  -  "homepage": "https://github.com/sagemathinc/fuse-native"
                                  +  "homepage": "https://github.com/fuse-friends/fuse-native"
                                   }
                                  Common subdirectories: fuse-native.orig/test and fuse-native/test
                                  
                                  xo_test@xo2:~/build$ cp -a fuse-native xen-orchestra
                                  xo_test@xo2:~/build$ cd xen-orchestra/
                                  xo_test@xo2:~/build/xen-orchestra$ cd fuse-native/
                                  xo_test@xo2:~/build/xen-orchestra/fuse-native$ yarn link
                                  yarn link v1.22.19
                                  success Registered "fuse-native".
                                  info You can now run `yarn link "fuse-native"` in the projects where you want to use this package and it will be used instead.
                                  Done in 0.15s.
                                  
                                  xo_test@xo2:~/build/xen-orchestra/fuse-native$ cd ..
                                  xo_test@xo2:~/build/xen-orchestra$ yarn link fuse-native
                                  yarn link v1.22.19
                                  success Using linked package for "fuse-native".
                                  Done in 0.13s.
                                  
                                  xo_test@xo2:~/build/xen-orchestra$ yarn
                                  yarn install v1.22.19
                                  [1/5] Validating package.json...
                                  [2/5] Resolving packages...
                                  [3/5] Fetching packages...
                                  warning url-loader@1.1.2: Invalid bin field for "url-loader".
                                  [4/5] Linking dependencies...
                                  warning "workspace-aggregator-6dab12fa-fabf-4759-8627-2058ff251bdf > @vates/node-vsphere-soap > soap@1.0.0" has incorrect peer dependency "axios@^0.27.2".
                                  warning Workspaces can only be enabled in private projects.
                                  [5/5] Building fresh packages...
                                  $ husky install
                                  husky - Git hooks installed
                                  Done in 425.65s.
                                  

                                  I haven't kicked off the yarn build, but it was the yarn stage that failed for you.

                                  Does the above help? [ As I said back in August, manually editing the package.json for sagemathinc's fuse-native to match the fuse-friends one that is called out in the xen-orchestra git tree is a completely horrible hack, but it does seem to work for me. ]

                                  xo_test@xo2:~/build$ cat /etc/debian_version 
                                  12.2
                                  

                                  Cheers,

                                  Mark

                                  EDIT 24/Oct/2023: The build needs node-gyp and node-gyp-build packages installing with npm, and the fuse libraries and devel packages and pkg-config for the operating system, along with the pre-reqs noted in the XO from the Sources build instructions in the wiki. The build host needs a decent amount of RAM - it built for me in 3GB but failed with 1GB. Once built, it runs fine for me with 1GB.

                                  M 1 Reply Last reply Reply Quote 1
                                  • M Offline
                                    Mark C @Mark C
                                    last edited by

                                    Sorry for the bad paste of the diff. Quoted properly here.

                                    xo_test@xo2:~/build$ diff -u fuse-native.orig fuse-native
                                    Common subdirectories: fuse-native.orig/.git and fuse-native/.git
                                    diff -u fuse-native.orig/package.json fuse-native/package.json
                                    --- fuse-native.orig/package.json	2023-10-23 14:25:18.067638984 +0100
                                    +++ fuse-native/package.json	2023-10-23 14:29:19.703990676 +0100
                                    @@ -1,6 +1,6 @@
                                     {
                                    -  "name": "@cocalc/fuse-native",
                                    -  "version": "2.4.0",
                                    +  "name": "fuse-native",
                                    +  "version": "2.2.6",
                                       "description": "Node.js bindings for the FUSE api (Filesystem in Userspace)",
                                       "main": "index.js",
                                       "bin": {
                                    @@ -28,7 +28,7 @@
                                       },
                                       "repository": {
                                         "type": "git",
                                    -    "url": "https://github.com/sagemathinc/fuse-native.git"
                                    +    "url": "https://github.com/fuse-friends/fuse-native.git"
                                       },
                                       "author": {
                                         "name": "William Stein (SageMath, Inc.)",
                                    @@ -44,7 +44,7 @@
                                       "author": " ()",
                                       "license": "MIT",
                                       "bugs": {
                                    -    "url": "https://github.com/sagemathinc/fuse-native/issues"
                                    +    "url": "https://github.com/fuse-friends/fuse-native/issues"
                                       },
                                    -  "homepage": "https://github.com/sagemathinc/fuse-native"
                                    +  "homepage": "https://github.com/fuse-friends/fuse-native"
                                     }
                                    Common subdirectories: fuse-native.orig/test and fuse-native/test
                                    
                                    M 1 Reply Last reply Reply Quote 1
                                    • M Offline
                                      mavoff @Mark C
                                      last edited by

                                      @Mark-C Hi Mark,

                                      Thanks for all the trouble, I tried to replicate your steps but unfortunately without success.

                                      [root@xo-admin ~]# cd /opt
                                      [root@xo-admin opt]# git clone https://github.com/vatesfr/xen-orchestra
                                      Cloning into 'xen-orchestra'...
                                      remote: Enumerating objects: 120119, done.
                                      remote: Counting objects: 100% (3260/3260), done.
                                      remote: Compressing objects: 100% (1430/1430), done.
                                      remote: Total 120119 (delta 2274), reused 2458 (delta 1787), pack-reused 116859
                                      Receiving objects: 100% (120119/120119), 63.88 MiB | 39.84 MiB/s, done.
                                      Resolving deltas: 100% (86372/86372), done.
                                      [root@xo-admin opt]# mkdir /usr/local/build && cd /usr/local/build
                                      [root@xo-admin build]# git clone https://github.com/sagemathinc/fuse-native
                                      Cloning into 'fuse-native'...
                                      remote: Enumerating objects: 409, done.
                                      remote: Counting objects: 100% (409/409), done.
                                      remote: Compressing objects: 100% (160/160), done.
                                      remote: Total 409 (delta 259), reused 396 (delta 246), pack-reused 0
                                      Receiving objects: 100% (409/409), 150.36 KiB | 6.26 MiB/s, done.
                                      Resolving deltas: 100% (259/259), done.
                                      [root@xo-admin build]# cp -a fuse-native fuse-native.orig
                                      [root@xo-admin build]# vim fuse-native/package.json 
                                      [root@xo-admin build]# diff -u fuse-native.orig fuse-native
                                      Common subdirectories: fuse-native.orig/.git and fuse-native/.git
                                      diff -u fuse-native.orig/package.json fuse-native/package.json
                                      --- fuse-native.orig/package.json	2023-10-23 18:51:45.481550145 +0000
                                      +++ fuse-native/package.json	2023-10-23 18:57:55.147358162 +0000
                                      @@ -1,6 +1,6 @@
                                       {
                                      -  "name": "@cocalc/fuse-native",
                                      -  "version": "2.4.0",
                                      +  "name": "fuse-native",
                                      +  "version": "2.2.6",
                                         "description": "Node.js bindings for the FUSE api (Filesystem in Userspace)",
                                         "main": "index.js",
                                         "bin": {
                                      @@ -28,7 +28,7 @@
                                         },
                                         "repository": {
                                           "type": "git",
                                      -    "url": "https://github.com/sagemathinc/fuse-native.git"
                                      +    "url": "https://github.com/fuse-friends/fuse-native.git"
                                         },
                                         "author": {
                                           "name": "William Stein (SageMath, Inc.)",
                                      @@ -44,7 +44,7 @@
                                         "author": " ()",
                                         "license": "MIT",
                                         "bugs": {
                                      -    "url": "https://github.com/sagemathinc/fuse-native/issues"
                                      +    "url": "https://github.com/fuse-friends/fuse-native/issues"
                                         },
                                      -  "homepage": "https://github.com/sagemathinc/fuse-native"
                                      +  "homepage": "https://github.com/fuse-friends/fuse-native"
                                       }
                                      Common subdirectories: fuse-native.orig/test and fuse-native/test
                                      [root@xo-admin build]# cp -a fuse-native /opt/xen-orchestra && cd /opt/xen-orchestra/fuse-native
                                      [root@xo-admin fuse-native]# yarn link
                                      yarn link v1.22.19
                                      success Registered "fuse-native".
                                      info You can now run `yarn link "fuse-native"` in the projects where you want to use this package and it will be used instead.
                                      Done in 0.07s.
                                      [root@xo-admin fuse-native]# cd ..
                                      [root@xo-admin xen-orchestra]# yarn link fuse-native
                                      yarn link v1.22.19
                                      success Using linked package for "fuse-native".
                                      Done in 0.06s.
                                      [root@xo-admin xen-orchestra]# yarn
                                      yarn install v1.22.19
                                      [1/5] Validating package.json...
                                      [2/5] Resolving packages...
                                      [3/5] Fetching packages...
                                      [4/5] Linking dependencies...
                                      warning "workspace-aggregator-a38c624e-a713-4a04-9b77-b644fa3bdb45 > @vates/node-vsphere-soap > soap@1.0.0" has incorrect peer dependency "axios@^0.27.2".
                                      warning Workspaces can only be enabled in private projects.
                                      [5/5] Building fresh packages...
                                      [6/19] โ  vue-demi
                                      [2/19] โ  highlight.js
                                      [3/19] โ  esbuild
                                      [4/19] โ  fuse-native
                                      error /opt/xen-orchestra/node_modules/fuse-native: Command failed.
                                      Exit code: 1
                                      Command: node-gyp-build
                                      Arguments: 
                                      Directory: /opt/xen-orchestra/node_modules/fuse-native
                                      Output:
                                      node:events:495
                                            throw er; // Unhandled 'error' event
                                            ^
                                      
                                      Error: spawn node-gyp ENOENT
                                          at ChildProcess._handle.onexit (node:internal/child_process:284:19)
                                          at onErrorNT (node:internal/child_process:477:16)
                                          at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
                                      Emitted 'error' event on ChildProcess instance at:
                                          at ChildProcess._handle.onexit (node:internal/child_process:290:12)
                                          at onErrorNT (node:internal/child_process:477:16)
                                          at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
                                        errno: -2,
                                        code: 'ENOENT',
                                        syscall: 'spawn node-gyp',
                                        path: 'node-gyp',
                                        spawnargs: [ 'rebuild' ]
                                      
                                      
                                      
                                      
                                      [root@xo-admin xen-orchestra]# 
                                      

                                      The instance is an ARM based instance on Oracle Cloud Infrastructure running

                                      [root@xo-admin xen-orchestra]# cat /etc/os-release 
                                      NAME="Oracle Linux Server"
                                      VERSION="8.8"
                                      ID="ol"
                                      ID_LIKE="fedora"
                                      VARIANT="Server"
                                      VARIANT_ID="server"
                                      VERSION_ID="8.8"
                                      PLATFORM_ID="platform:el8"
                                      PRETTY_NAME="Oracle Linux Server 8.8"
                                      ANSI_COLOR="0;31"
                                      CPE_NAME="cpe:/o:oracle:linux:8:8:server"
                                      HOME_URL="https://linux.oracle.com/"
                                      BUG_REPORT_URL="https://github.com/oracle/oracle-linux"
                                      
                                      ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
                                      ORACLE_BUGZILLA_PRODUCT_VERSION=8.8
                                      ORACLE_SUPPORT_PRODUCT="Oracle Linux"
                                      ORACLE_SUPPORT_PRODUCT_VERSION=8.8
                                      

                                      Cheers

                                      M 1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        Mark C @mavoff
                                        last edited by Mark C

                                        @maverick

                                        I don't have an oracle 8.8 build environment to check directly, but this error seems to imply node-gyp can't be found / started, or it is looking in the wrong place / there's a path difference between Oracle and Debian build environments.

                                        code: 'ENOENT',
                                          syscall: 'spawn node-gyp',
                                          path: 'node-gyp',
                                          spawnargs: [ 'rebuild' ]
                                        

                                        Try 'npm install -g node-gyp' to make sure it is present? The same for node-gyp-build.

                                        Do you also have the pkg-config rpm installed? And the native fuse libs rpm? The sagemathinc package will need these.

                                        Cheers,

                                        Mark

                                        PS. I did run a 'yarn build' in my Debian VM and it built successfully after I gave it 3GB of RAM.

                                        EDIT 24/Oct/2023: the -devel fuse libraries are needed too.

                                        M 1 Reply Last reply Reply Quote 1
                                        • M Offline
                                          mavoff @Mark C
                                          last edited by mavoff

                                          @Mark-C Hello Mark good morning and once more thanks for your feedback.

                                          So, regarding installed libs, they are:

                                          # dnf list installed | grep fuse
                                          fuse-common.aarch64                         3.3.0-16.0.1.el8                                   @ol8_baseos_latest    
                                          fuse-libs.aarch64                           2.9.7-16.0.1.el8                                   @ol8_baseos_latest    
                                          fuse3.aarch64                               3.3.0-16.0.1.el8                                   @ol8_baseos_latest    
                                          fuse3-libs.aarch64                          3.3.0-16.0.1.el8                                   @ol8_baseos_latest    
                                          

                                          the node-gyp ... was installed before, as every yarn ran on the fix_fuse_dependancy_arm before the pull ran successfully but worth the try:

                                          ]# npm install -g node-gyp
                                          
                                          added 129 packages in 6s
                                          
                                          17 packages are looking for funding
                                            run `npm fund` for details
                                          [root@xo-admin ~]# npm install -g node-gyp-build
                                          
                                          added 1 package in 465ms
                                          [root@xo-admin ~]# cd /opt/xen-orchestra
                                          [root@xo-admin xen-orchestra]# yarn
                                          yarn install v1.22.19
                                          [1/5] Validating package.json...
                                          [2/5] Resolving packages...
                                          [3/5] Fetching packages...
                                          [4/5] Linking dependencies...
                                          warning "workspace-aggregator-81db5e50-50e8-4d08-ac0a-85a8882fd055 > @vates/node-vsphere-soap > soap@1.0.0" has incorrect peer dependency "axios@^0.27.2".
                                          warning Workspaces can only be enabled in private projects.
                                          [5/5] Building fresh packages...
                                          [14/19] โ   argon2
                                          [13/19] โ   esbuild
                                          [12/19] โ   vue-echarts
                                          [4/19] โ   fuse-native
                                          error /opt/xen-orchestra/node_modules/fuse-native: Command failed.
                                          Exit code: 1
                                          Command: node-gyp-build
                                          Arguments: 
                                          Directory: /opt/xen-orchestra/node_modules/fuse-native
                                          Output:
                                          gyp info it worked if it ends with ok
                                          gyp info using node-gyp@9.4.0
                                          gyp info using node@18.18.2 | linux | arm64
                                          gyp info find Python using Python version 3.6.8 found at "/usr/bin/python3"
                                          gyp info spawn /usr/bin/python3
                                          gyp info spawn args [
                                          gyp info spawn args   '/usr/local/lib/node_modules/node-gyp/gyp/gyp_main.py',
                                          gyp info spawn args   'binding.gyp',
                                          gyp info spawn args   '-f',
                                          gyp info spawn args   'make',
                                          gyp info spawn args   '-I',
                                          gyp info spawn args   '/opt/xen-orchestra/fuse-native/build/config.gypi',
                                          gyp info spawn args   '-I',
                                          gyp info spawn args   '/usr/local/lib/node_modules/node-gyp/addon.gypi',
                                          gyp info spawn args   '-I',
                                          gyp info spawn args   '/root/.cache/node-gyp/18.18.2/include/node/common.gypi',
                                          gyp info spawn args   '-Dlibrary=shared_library',
                                          gyp info spawn args   '-Dvisibility=default',
                                          gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/18.18.2',
                                          gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/node-gyp',
                                          gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/18.18.2/<(target_arch)/node.lib',
                                          gyp info spawn args   '-Dmodule_root_dir=/opt/xen-orchestra/fuse-native',
                                          gyp info spawn args   '-Dnode_engine=v8',
                                          gyp info spawn args   '--depth=.',
                                          gyp info spawn args   '--no-parallel',
                                          gyp info spawn args   '--generator-output',
                                          gyp info spawn args   'build',
                                          gyp info spawn args   '-Goutput_dir=.'
                                          gyp info spawn args ]
                                          Package fuse was not found in the pkg-config search path.
                                          Perhaps you should add the directory containing `fuse.pc'
                                          to the PKG_CONFIG_PATH environment variable
                                          Package 'fuse', required by 'virtual:world', not found
                                          Package fuse was not found in the pkg-config search path.
                                          Perhaps you should add the directory containing `fuse.pc'
                                          to the PKG_CONFIG_PATH environment variable
                                          Package 'fuse', required by 'virtual:world', not found
                                          gyp: Call to 'pkg-config --libs-only-L --libs-only-l fuse' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
                                          gyp ERR! configure error 
                                          gyp ERR! stack Error: `gyp` failed with exit code: 1
                                          gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/node-gyp/lib/configure.js:325:16)
                                          gyp ERR! stack     at ChildProcess.emit (node:events:517:28)
                                          gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:292:12)
                                          gyp ERR! System Linux 5.4.17-2136.324.5.3.el8uek.aarch64
                                          gyp ERR! command "/usr/local/bin/node" "/usr/local/bin/node-gyp" "rebuild"
                                          gyp ERR! cwd /opt/xen-orchestra/fuse-native
                                          
                                          # find / -type f -iname fuse.pc
                                          
                                          # dnf whatprovides *fuse.pc
                                          Last metadata expiration check: 3:09:58 ago on Tue 24 Oct 2023 06:22:10 AM GMT.
                                          fuse-devel-2.9.7-12.0.1.el8.aarch64 : File System in Userspace (FUSE) v2 devel files
                                          Repo        : ol8_baseos_latest
                                          Matched from:
                                          Other       : *fuse.pc
                                          
                                          fuse-devel-2.9.7-12.0.2.el8.aarch64 : File System in Userspace (FUSE) v2 devel files
                                          Repo        : ol8_baseos_latest
                                          Matched from:
                                          Other       : *fuse.pc
                                          
                                          fuse-devel-2.9.7-12.0.3.el8.aarch64 : File System in Userspace (FUSE) v2 devel files
                                          Repo        : ol8_baseos_latest
                                          Matched from:
                                          Other       : *fuse.pc
                                          
                                          fuse-devel-2.9.7-12.0.4.el8.aarch64 : File System in Userspace (FUSE) v2 devel files
                                          Repo        : ol8_baseos_latest
                                          Matched from:
                                          Other       : *fuse.pc
                                          
                                          fuse-devel-2.9.7-15.0.2.el8.aarch64 : File System in Userspace (FUSE) v2 devel files
                                          Repo        : ol8_baseos_latest
                                          Matched from:
                                          Other       : *fuse.pc
                                          
                                          fuse-devel-2.9.7-16.0.1.el8.aarch64 : File System in Userspace (FUSE) v2 devel files
                                          Repo        : ol8_baseos_latest
                                          Matched from:
                                          Other       : *fuse.pc
                                          
                                          libconfuse-devel-3.3-7.el8.aarch64 : Development files for libconfuse
                                          Repo        : epel
                                          Matched from:
                                          Other       : *fuse.pc
                                          
                                          squashfuse-devel-0.1.104-1.el8.aarch64 : Development files for squashfuse
                                          Repo        : epel
                                          Matched from:
                                          Other       : *fuse.pc
                                          
                                          
                                          # dnf install -y fuse-devel
                                          Last metadata expiration check: 3:10:38 ago on Tue 24 Oct 2023 06:22:10 AM GMT.
                                          Dependencies resolved.
                                          ============================================================================================================================================================================================================================================
                                           Package                                               Architecture                                       Version                                                        Repository                                                    Size
                                          ============================================================================================================================================================================================================================================
                                          Installing:
                                           fuse-devel                                            aarch64                                            2.9.7-16.0.1.el8                                               ol8_baseos_latest                                             44 k
                                          
                                          Transaction Summary
                                          ============================================================================================================================================================================================================================================
                                          Install  1 Package
                                          
                                          Total download size: 44 k
                                          Installed size: 124 k
                                          Downloading Packages:
                                          fuse-devel-2.9.7-16.0.1.el8.aarch64.rpm                                                                                                                                                                     422 kB/s |  44 kB     00:00    
                                          --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                          Total                                                                                                                                                                                                       410 kB/s |  44 kB     00:00     
                                          Running transaction check
                                          Transaction check succeeded.
                                          Running transaction test
                                          Transaction test succeeded.
                                          Running transaction
                                            Preparing        :                                                                                                                                                                                                                    1/1 
                                            Installing       : fuse-devel-2.9.7-16.0.1.el8.aarch64                                                                                                                                                                                1/1 
                                            Running scriptlet: fuse-devel-2.9.7-16.0.1.el8.aarch64                                                                                                                                                                                1/1 
                                            Verifying        : fuse-devel-2.9.7-16.0.1.el8.aarch64                                                                                                                                                                                1/1 
                                          
                                          Installed:
                                            fuse-devel-2.9.7-16.0.1.el8.aarch64                                                                                                                                                                                                       
                                          
                                          Complete!
                                          [root@xo-admin xen-orchestra]# yarn
                                          yarn install v1.22.19
                                          [1/5] Validating package.json...
                                          [2/5] Resolving packages...
                                          [3/5] Fetching packages...
                                          [4/5] Linking dependencies...
                                          warning "workspace-aggregator-fe799cd0-9fa4-4eaa-b335-8bcb3fdfd4a2 > @vates/node-vsphere-soap > soap@1.0.0" has incorrect peer dependency "axios@^0.27.2".
                                          warning Workspaces can only be enabled in private projects.
                                          [5/5] Building fresh packages...
                                          $ husky install
                                          husky - Git hooks installed
                                          Done in 50.84s.
                                          

                                          Going for the build now

                                          1 Reply Last reply Reply Quote 0
                                          • M Offline
                                            mavoff
                                            last edited by

                                            @Mark-C kudus to you mate. Many thanks for your help, finally got it back.

                                            ]# yarn build
                                            yarn run v1.22.19
                                            $ turbo run build --scope xo-server --scope xo-server-'*' --scope xo-web
                                            โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
                                            โ”‚                                                                        โ”‚
                                            โ”‚                  Update available v1.10.15 โ‰ซ v1.10.16                  โ”‚
                                            โ”‚    Changelog: https://github.com/vercel/turbo/releases/tag/v1.10.16    โ”‚
                                            โ”‚               Run "npx @turbo/codemod update" to update                โ”‚
                                            โ”‚                                                                        โ”‚
                                            โ”‚      Follow @turborepo for updates: https://twitter.com/turborepo      โ”‚
                                            โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
                                             WARNING  failed to contact turbod. Continuing in standalone mode: connection to turbo daemon process failed.
                                            	To quickly resolve the issue, try running:
                                            	- $ turbo daemon clean
                                            
                                            	To debug further - please ensure the following:
                                            	- the process identified by the pid in the file at /tmp/turbod/8288938151d980a6/turbod.pid is not running, and remove /tmp/turbod/8288938151d980a6/turbod.pid
                                            	- check the logs at /root/.local/share/turborepo/logs/8288938151d980a6-xen-orchestra.log
                                            	- the unix domain socket at /tmp/turbod/8288938151d980a6/turbod.sock has been removed
                                            
                                            	You can also run without the daemon process by passing --no-daemon
                                            โ€ข Packages in scope: xo-server, xo-server-audit, xo-server-auth-github, xo-server-auth-google, xo-server-auth-ldap, xo-server-auth-oidc, xo-server-auth-saml, xo-server-backup-reports, xo-server-load-balancer, xo-server-netbox, xo-server-perf-alert, xo-server-sdn-controller, xo-server-test, xo-server-test-plugin, xo-server-transport-email, xo-server-transport-icinga2, xo-server-transport-nagios, xo-server-transport-slack, xo-server-transport-xmpp, xo-server-usage-report, xo-server-web-hooks, xo-web
                                            โ€ข Running build in 22 packages
                                            โ€ข Remote caching disabled
                                            
                                             Tasks:    26 successful, 26 total
                                            Cached:    0 cached, 26 total
                                              Time:    2m38.144s 
                                            
                                            Done in 159.10s.
                                            

                                            Screenshot 2023-10-24 at 10.45.12.png

                                            Super! Cheers mate!!

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post