Package Details: actual-server 25.4.0-3

Git Clone URL: https://aur.archlinux.org/actual-server.git (read-only, click to copy)
Package Base: actual-server
Description: Actual Budget Server
Upstream URL: https://github.com/actualbudget/actual
Keywords: actual budget finance
Licenses: MIT
Submitter: pikl
Maintainer: pikl (POGMAN)
Last Packager: POGMAN
Votes: 5
Popularity: 0.28
First Submitted: 2023-07-09 11:15 (UTC)
Last Updated: 2025-04-16 18:56 (UTC)

Pinned Comments

pikl commented on 2024-05-27 09:01 (UTC) (edited on 2024-05-27 09:02 (UTC) by pikl)

Linux kernels >= v6.9-arch1 have a bug that prevents the server running and the AUR package being built. Downgrade to v6.8.9-arch1 or use linux-lts.

Latest Comments

1 2 Next › Last »

feinedsquirrel commented on 2025-04-16 21:19 (UTC)

Confirming that solved the issue. I appreciate your work finding the solution! I was apparently looking in all the wrong spots.

POGMAN commented on 2025-04-16 19:04 (UTC) (edited on 2025-04-16 19:30 (UTC) by POGMAN)

I pushed 25.4.0-3 that adds 'npm' as makedepends and it seems to work fine now.

Honestly this release has been a mess to package, see: https://github.com/actualbudget/actual/issues/4746

Hopefully next release will be smoother thanks to the way they plan to package the server (https://github.com/actualbudget/actual/pull/4798)

feinedsquirrel commented on 2025-04-16 16:10 (UTC) (edited on 2025-04-16 16:10 (UTC) by feinedsquirrel)

building in a clean chroot fails. I've tried both nodejs and nodejs-lts-jod. I'm wondering if this is an upstream issue, but I haven't found any comments on their github repo. Here is the error:

➤ YN0000: · Yarn 4.7.0
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed
➤ YN0000: ┌ Post-resolution validation
➤ YN0002: │ actual@workspace:. doesn't provide @types/node (pb83aa), requested by ts-node.
➤ YN0086: │ Some peer dependencies are incorrectly met by your project; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code.
➤ YN0086: │ Some peer dependencies are incorrectly met by dependencies; run yarn explain peer-requirements for details.
➤ YN0000: └ Completed

running yarn explain peer-requirements pb83aa gives:

Package actual@workspace:. is requested to provide @types/node by its descendants

actual@workspace:.
└─ ts-node@npm:10.9.2 [0d005] (via *)

✘ Package actual@workspace:. does not provide @types/node.

pikl commented on 2025-02-24 18:40 (UTC)

@POGMAN - sorry I must have missed this message but seen your orphan request. Happy adding you as a co-maintainer since I've proved I haven't kept up this up to date recently.

POGMAN commented on 2025-02-12 11:06 (UTC) (edited on 2025-02-14 16:10 (UTC) by POGMAN)

Since I am not sure that this package is still maintained I made a fork/mirror on github that prepare the PKGBUILD for the upcoming merge of Actual's repositories (actual-server into actual): https://github.com/pogman-code/actual-aur

I tested it against master and works well, also it works with nodejs/linux (no need for *-lts versions anymore it seems)

@pikl, I can help co-maintain or if don't plan to continue I can maintain it :)

feinedsquirrel commented on 2024-12-14 08:35 (UTC)

instead of having to create a new patch when the load-config.js file changes, consider replacing the patch line in the prepare() function with something like this:

sed -i 's/^let[[:space:]]defaultDataDir .*$/let defaultDataDir \= \x27\/var\/lib\/actual\x27;/' src/load-config.js

There are probably better ways to formulate this line, but this is just something I was able to hack together that worked. I am no expert at sed.

feinedsquirrel commented on 2024-05-28 14:29 (UTC) (edited on 2024-05-28 14:34 (UTC) by feinedsquirrel)

Ah, thanks for the greater detail.

I'm happy to stick with the nodejs-lts-*. And just as a data point, I was using linux-lts already. :shrug: I did just try using nodejs v21 and it also failed there. So to summarize, nodejs v21 and v22 both on linux-lts failed for me. It's working great on nodejs-lts-iron and linux-lts.

I emphasize "for me" because I'm not an expert on nodejs nor arch-nspawn, so again, just an fyi. Probably something silly I messed up. :) I appreciate your effort on maintaining this package for us!

pikl commented on 2024-05-27 09:01 (UTC) (edited on 2024-05-27 09:02 (UTC) by pikl)

Linux kernels >= v6.9-arch1 have a bug that prevents the server running and the AUR package being built. Downgrade to v6.8.9-arch1 or use linux-lts.

pikl commented on 2024-05-27 08:37 (UTC) (edited on 2024-05-27 09:03 (UTC) by pikl)

@feinedsquirrel thanks for this. I had noticed the same yesterday but failed to find root cause until now. It is not actually the nodejs version (I thought the same initially) but the kernel version. The server stops working and build fails for the same reason - both generating Internal Error: spawn ETXTBSY error. This can be seen in journalctl -b -u actual-server.service and in the yarn build log (/tmp/xfs-eb807551/build.log in your example).

Kernel v6.9-arch1 appears to introduce a bug as reported here. The offending commit confirmed between v6.8.9-arch1 and v6.9-arch1 in the archlinux/linux github.

git --no-pager log --pretty=oneline v6.8.9-arch1..v6.9-arch1 | grep af5d68
af5d68f8892f8ee8f137648b79ceb2abc153a19b io_uring/sqpoll: manage task_work privately

Either downgrade to kernel v6.8.9 or use linux-lts for now.

(Note that I've had separate problems building with nodejs and generally use nodejs-lts-hydrogen since that's what the upstream docker image uses. It doesn't surprise me that you've found nodejs-lts-iron works too but I haven't tested yet.)

feinedsquirrel commented on 2024-05-27 05:19 (UTC) (edited on 2024-05-27 05:38 (UTC) by feinedsquirrel)

I noticed my server was no longer online, and found your note below about the nodejs version not matching. I have the plain nodejs installed to my system, and am using a clean chroot. I'm getting the following error(s).

==> Starting build()...
➤ YN0000: Successfully set enableTelemetry to false
➤ YN0000: · Yarn 4.0.1
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed
➤ YN0000: ┌ Post-resolution validation
➤ YN0002: │ actual-sync@workspace:. doesn't provide @babel/core (pd13b1), requested by @babel/preset-typescript.
➤ YN0086: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code.
➤ YN0000: └ Completed
➤ YN0000: ┌ Fetch step
➤ YN0013: │ 629 packages were added to the project (+ 237.82 MiB).
➤ YN0000: └ Completed in 3s 50ms
➤ YN0000: ┌ Link step
➤ YN0007: │ bcrypt@npm:5.1.0 must be built because it never has been before or the last one failed
➤ YN0007: │ better-sqlite3@npm:9.1.1 must be built because it never has been before or the last one failed
➤ YN0009: │ better-sqlite3@npm:9.1.1 couldn't be built successfully (exit code 1, logs can be found here: /tmp/xfs-eb807551/build.log)
➤ YN0000: └ Completed in 1s 698ms
➤ YN0000: · Failed with errors in 4s 860ms
==> ERROR: A failure occurred in build().
    Aborting...

I found this: https://github.com/actualbudget/actual-server/pull/357 which references node-abi complaints in https://github.com/actualbudget/actual/pull/2763

But I'm not entirely convinced that is the issue, because even checking out the previous PKGBUILD (24.4), I cannot build successfully from source in a clean chroot.

Any ideas appreciated

EDIT: I installed nodejs-lts-iron into the chroot and it successfully built 24.5.0-1.

Could be that actual server is not compatible with nodejs 22. I am not sure how long ago the server stopped syncing for me. I don't use it super frequently. I checked just now and it looks like the Arch package for nodejs went from 21.x to 22.x a few weeks ago.