Confirming that solved the issue. I appreciate your work finding the solution! I was apparently looking in all the wrong spots.
Search Criteria
Package Details: actual-server 25.4.0-3
Package Actions
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) |
Dependencies (4)
- nodejs (nodejs-gitAUR, python-nodejs-wheelAUR, nodejs-lts-iron, nodejs-lts-jod)
- yarn (yarn-pnpm-corepackAUR, corepackerAUR, yarn-berryAUR)
- git (git-gitAUR, git-glAUR) (make)
- npm (corepackerAUR, python-nodejs-wheelAUR) (make)
Required by (0)
Sources (5)
feinedsquirrel commented on 2025-04-16 21:19 (UTC)
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.
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 tov6.8.9-arch1
or uselinux-lts
.