Arch Linux packages

We’ve added tropy and tropy-bin to the AUR. Both packages use the system’s Electron and are therefore much smaller than the regular releases. Also, both packages handle desktop integration for you (icons, mime-types, launcher etc.).

The difference between the packages is that tropy-bin uses libvips that is bundled with the Tropy release, while tropy links against the version of libvips installed on your system. This makes the tropy package a little more flexible (e.g., you can add imagemagick support or remove PDF support by installing or skipping the respective dependencies).

If you’re using Arch Linux we hope these packages are the best way to install Tropy! Let us know if you have any feedback or questions here or on the AUR.

1 Like

I can install tropy-bin from AUR, but not tropy:

error making: tropy-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
tropy - exit status 4

Error message doesn’t say what’s wrong, maybe some other packages need to be installed or are incompatible with tropy. I have libvips installed, of course.

You need to check the actual output of makepkg. It’s possible that there is a package missing that’s needed during the build process or some other error, but we can’t know the reason without the actual error message.

That’s the problem – makepkg shows very little information:

==> Making package: tropy 1.15.2-1 (Fri Nov  3 17:25:06 2023)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found
  -> Found v1.15.2.tar.gz
==> Validating source files with sha256sums... ... Passed
    v1.15.2.tar.gz ... Passed
==> Extracting sources...
  -> Extracting v1.15.2.tar.gz with bsdtar
==> Removing existing $pkgdir/ directory...
==> Starting build()...
==> ERROR: A failure occurred in build().

Huh, yes this is weird! It looks like the error occurs before it even starts the build process. The build directory is still there after the aborted build, right? Looking at the build script I think there is probably an error when we install the npm dependencies, but the error is sent to /dev/null so that’s not ideal. Could you modify the PKGBUILD and remove the 2&> /dev/null there? I think this will then tell us what’s wrong.

Yes, now it’s better:

==> Starting build()...
npm ERR! Cannot read property '@babel/plugin-syntax-import-assertions' of undefined

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/maras/.npm/_logs/2023-11-03T18_06_43_220Z-debug.log
==> ERROR: A failure occurred in build().

That should be the default logging level, I think :).
There was the same error in the npm log:

Cannot read property '@babel/plugin-syntax-import-assertions' of undefined

So I updated node and nvm:

info using npm@10.2.3
info using node@v20.9.0

But I can’t install tropy after that:

npm WARN deprecated @babel/plugin-proposal-export-namespace-from@7.18.9: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.
npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs
npm ERR! code 1
npm ERR! path /home/maras/.cache/yay/tropy/src/tropy-1.15.2/node_modules/electron
npm ERR! command failed
npm ERR! command sh -c node install.js
npm ERR! HTTPError: Response code 404 (Not Found)
npm ERR!     at Request._onResponseBase (/home/maras/.cache/yay/tropy/src/tropy-1.15.2/node_modules/got/dist/source/core/index.js:913:31)
npm ERR!     at Request._onResponse (/home/maras/.cache/yay/tropy/src/tropy-1.15.2/node_modules/got/dist/source/core/index.js:948:24)
npm ERR!     at ClientRequest.<anonymous> (/home/maras/.cache/yay/tropy/src/tropy-1.15.2/node_modules/got/dist/source/core/index.js:962:23)
npm ERR!     at Object.onceWrapper (node:events:629:26)
npm ERR!     at ClientRequest.emit (node:events:526:35)
npm ERR!     at origin.emit (/home/maras/.cache/yay/tropy/src/tropy-1.15.2/node_modules/@szmarczak/http-timer/dist/source/index.js:43:20)
npm ERR!     at HTTPParser.parserOnIncomingClient (node:_http_client:693:27)
npm ERR!     at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17)
npm ERR!     at TLSSocket.socketOnData (node:_http_client:535:22)
npm ERR!     at TLSSocket.emit (node:events:514:28)

npm ERR! A complete log of this run can be found in: /home/maras/.npm/_logs/2023-11-03T18_52_04_947Z-debug-0.log
==> KLAIDA: Kilo bėdų su build().

I’m not a programmer, that’s too much for me :). I can add log if that’ll help you.

The only reason why I’m installing tropy is that tropy-bin dosen’t work properly in Wayland. So I’ll use tropy-bin in XWayland for now.

OK in this case I’d suggest to leave it at that. I’m sure we could figure out the node/npm issue at hand, but installing this version of the package will not make a difference with regard to Wayland at all.

As mentioned in the other thread, I’d try the extra command line option first. If it works you can just add it to the .desktop file permanently. Otherwise the issue must be related to direct rendering support of the GPU under Wayland. Does WebGL work in your browser in Wayland?