[arch-commits] Commit in kresus/trunk (PKGBUILD kresus.service)

Bruno Pagani archange at gemini.archlinux.org
Sat May 21 13:51:48 UTC 2022


    Date: Saturday, May 21, 2022 @ 13:51:48
  Author: archange
Revision: 1209541

upgpkg: kresus 0.18.0-2

Actually use the built source instead of ditching everything and downloading
from npm. :facepalm:

AF_NETLINK is now required by node, else it errors with:

node:os:68
      throw new ERR_SYSTEM_ERROR(ctx);
      ^
SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_interface_addresses returned Unknown system error 97 (Unknown system error 97)
    at Object.networkInterfaces (node:os:259:16)
    at Object.<anonymous> (/usr/lib/kresus/node_modules/nodemailer/lib/shared/index.js:15:66)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/usr/lib/kresus/node_modules/nodemailer/lib/mailer/index.js:4:16)
    at Module._compile (node:internal/modules/cjs/loader:1105:14) {
  code: 'ERR_SYSTEM_ERROR',
  info: {
    errno: 97,
    code: 'Unknown system error 97',
    message: 'Unknown system error 97',
    syscall: 'uv_interface_addresses'
  },
  errno: [Getter/Setter],
  syscall: [Getter/Setter]
}

Modified:
  kresus/trunk/PKGBUILD
  kresus/trunk/kresus.service

----------------+
 PKGBUILD       |   28 +++++++++++++++++-----------
 kresus.service |    6 +++---
 2 files changed, 20 insertions(+), 14 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-05-21 11:45:35 UTC (rev 1209540)
+++ PKGBUILD	2022-05-21 13:51:48 UTC (rev 1209541)
@@ -2,7 +2,7 @@
 
 pkgname=kresus
 pkgver=0.18.0
-pkgrel=1
+pkgrel=2
 pkgdesc="Self-hosted personal finance manager"
 arch=(x86_64)
 url="https://kresus.org"
@@ -9,7 +9,7 @@
 license=(MIT)
 backup=('etc/webapps/kresus/config.ini')
 depends=(python nodejs-lts-gallium woob)
-makedepends=(yarn npm libpng)
+makedepends=(yarn libpng node-gyp)
 optdepends=('python-pdfminer: La Banque Postale support')
 source=(https://framagit.org/kresusapp/kresus/-/archive/${pkgver}/${pkgname}-${pkgver}.tar.bz2
         config.ini
@@ -18,7 +18,7 @@
         ${pkgname}.tmpfiles)
 sha256sums=('2bbade2feafc1ab60218f136fb5b5bb6c5b3d88a4936b2a39704c8b12cd64e68'
             '2a1de56c469b9a8e899614e6cb6ff8d6f205b5df8d30141230f1d0bc2bf15f40'
-            'f57bac585629200877e03d75631b174cafa7d8fd42ca815db9aecc9e166d200c'
+            '14d1373b0ba27b5695d75119af066348328be4104028d4d7a981252f7c9b1265'
             'd9d30f5470c7165e4917487b69d7ab82e463da4e1355056e1035ee501d3f1adc'
             'ba8ad7d9eb5d2b47fde5f6a3ab98596e5c679141b78d76d54b44830604b67632')
 
@@ -35,19 +35,25 @@
 
 package() {
     cd ${pkgname}-${pkgver}
-    export CFLAGS+=" -ffat-lto-objects"
-    DESTDIR="${pkgdir}" npm -g install kresus --no-audit --no-fund
+    # Remove building modules and install production ones only
+    rm -rf node_modules
+    yarn install --production --no-fund
+    # Move to install point
+    install -d "${pkgdir}"/usr/{bin,lib/kresus/}
+    mv bin build node_modules "${pkgdir}"/usr/lib/kresus/
+    # Symlink executable
+    ln -s /usr/lib/kresus/bin/kresus.js "${pkgdir}"/usr/bin/kresus
 
     # Remove useless stuff
-    rm -r "${pkgdir}"/usr/lib/node_modules/kresus/support
-    find "${pkgdir}"/usr/lib/node_modules/kresus/ -type d \( -name 'test*' -o -name '.github' \) -exec rm -rf {} \+
-    find "${pkgdir}"/usr/lib/node_modules/kresus/ -type f \( -name '*\.md' -o -name 'LICENSE*' -o -name 'license' -o -name '\.*' \) -delete
+    find "${pkgdir}"/usr/lib/kresus/ -type d \( -name 'test' -o -name 'tests' -o -name 'tools' -o -name '\.github' \) -exec rm -rv {} \+
+    find "${pkgdir}"/usr/lib/kresus/ -type f \( -name '*\.md' -o -name '*\.txt' -o -name 'AUTHORS' -o -iname 'LICENSE*' -o -name 'Dockerfile' -o -name 'Makefile' -o -iname 'README*' -o -name '\.*' \) -delete -print
     # No -o -name 'package.json' because they seem required
     # node-expat artifacts
-    rm -r "${pkgdir}"/usr/lib/node_modules/kresus/node_modules/node-expat/{binding.gyp,build/{Makefile,Release/{.deps,obj.target},binding.Makefile,config.gypi,deps,node_expat.target.mk},deps/,node-expat.cc}
+    rm -rv "${pkgdir}"/usr/lib/kresus/node_modules/node-expat/{build/{Release/{.deps,obj.target,libexpat.a},binding.Makefile,deps,node_expat.target.mk},deps,node-expat.cc}
 
-    # Fix npm crazyness
-    chown -R root:root "${pkgdir}"/usr
+    # Fix permissions
+    chmod -R go-w "${pkgdir}"/usr/lib/kresus
+    chown -R root:root "${pkgdir}"/usr/lib/kresus
 
     install -Dm644 LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/
 

Modified: kresus.service
===================================================================
--- kresus.service	2022-05-21 11:45:35 UTC (rev 1209540)
+++ kresus.service	2022-05-21 13:51:48 UTC (rev 1209541)
@@ -22,15 +22,15 @@
 PrivateTmp=true
 PrivateUsers=true
 ProtectClock=true
-ProtectControlGroups=yes
+ProtectControlGroups=true
 ProtectHome=true
 ProtectHostname=true
 ProtectKernelLogs=true
-ProtectKernelModules=yes
+ProtectKernelModules=true
 ProtectKernelTunables=true
 ProtectProc=invisible
 ProtectSystem=strict
-RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
+RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
 RestrictNamespaces=true
 RestrictRealtime=true
 RestrictSUIDSGID=true



More information about the arch-commits mailing list