summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Hyttinen2024-01-11 08:52:47 +0200
committerMika Hyttinen2024-01-11 08:52:47 +0200
commit6b7e90d07714dd7472ad160b09e7530a2449fc00 (patch)
tree31d20938474d5948294a96c377231ad61b710720
downloadaur-6b7e90d07714dd7472ad160b09e7530a2449fc00.tar.gz
Add debug build
-rw-r--r--PKGBUILD64
-rw-r--r--cellframe-node-logrotate.service5
-rw-r--r--cellframe-node-logrotate.timer11
-rw-r--r--cellframe-node.install99
-rw-r--r--cellframe-node.logrotate8
-rw-r--r--cellframe-node.service20
6 files changed, 207 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..5561765b2cb3
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,64 @@
+# Maintainer: Mika Hyttinen <mika dot hyttinen+arch ät gmail dot com>
+pkgname=cellframe-node-debug
+_pkgname=cellframe-node
+pkgver=5.2.410
+pkgrel=1
+pkgdesc="Cellframe blockchain node with a powerful SDK"
+arch=('x86_64' 'aarch64')
+url="https://cellframe.net"
+license=('LGPL3')
+makedepends=(git cmake python3)
+depends=(logrotate libxcrypt-compat)
+provides=("cellframe-node" "cellframe-node-cli" "cellframe-node-tool")
+source=(git+https://gitlab.demlabs.net/cellframe/$_pkgname.git#commit=b6ce6fd5a94270f0812f318c7746cf154d78d23a
+ git+https://gitlab.demlabs.net/cellframe/cellframe-sdk.git#commit=7f612a1d6487e763a7e9fe35c095628f8c4aa8da
+ git+https://gitlab.demlabs.net/dap/dap-sdk.git#commit=2882fd16ccb94ecde7d6f57a283d985bdfceef55
+ git+https://gitlab.demlabs.net/cellframe/python-cellframe.git#commit=e6fe6abee22cc0819f674b486dabee9298ddb899
+ cellframe-node.logrotate
+ cellframe-node-logrotate.service
+ cellframe-node-logrotate.timer
+ cellframe-node.service)
+md5sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ '6a52220e0b285dc9e803082f36897ad4'
+ '7c1087eea7336d99c4af55119673b009'
+ '47edb0d55d537e72f3de07ec6a72ea78'
+ '72472d529b38f06a78f37ac659b18d65')
+install=$_pkgname.install
+conflicts=(cellframe-dashboard cellframe-wallet)
+options=(!buildflags !makeflags)
+
+prepare() {
+ rm -rf "$srcdir/$_pkgname/cellframe-sdk"
+ rm -rf "$srcdir/$_pkgname/python-cellframe"
+ rm -rf "$srcdir/$_pkgname/dap-sdk"
+ ln -sf "$srcdir/cellframe-sdk" "$srcdir/$_pkgname/cellframe-sdk"
+ ln -sf "$srcdir/python-cellframe" "$srcdir/$_pkgname/python-cellframe"
+ ln -sf "$srcdir/dap-sdk" "$srcdir/$_pkgname/dap-sdk"
+}
+
+build() {
+ cd "$_pkgname"
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE='RelWithDebInfo' \
+ -Wno-dev
+ cmake --build build -j$(nproc)
+}
+
+package() {
+ cd "$_pkgname"
+
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dm 644 "$srcdir/$_pkgname/LICENSE" -t "$pkgdir/usr/share/licenses/$_pkgname"
+
+ install -Dm 644 "$srcdir/$_pkgname.logrotate" "$pkgdir/etc/logrotate.d/$_pkgname"
+
+ install -Dm 644 "$srcdir/$_pkgname.service" -t "$pkgdir/usr/lib/systemd/system"
+
+ install -Dm 644 "$srcdir/$_pkgname-logrotate.service" -t "$pkgdir/usr/lib/systemd/system"
+
+ install -Dm 644 "$srcdir/$_pkgname-logrotate.timer" -t "$pkgdir/usr/lib/systemd/system"
+}
diff --git a/cellframe-node-logrotate.service b/cellframe-node-logrotate.service
new file mode 100644
index 000000000000..e74817a8f588
--- /dev/null
+++ b/cellframe-node-logrotate.service
@@ -0,0 +1,5 @@
+[Unit]
+Description="Manages cellframe-node log rotation"
+
+[Service]
+ExecStart=/usr/bin/logrotate -v /etc/logrotate.d/cellframe-node \ No newline at end of file
diff --git a/cellframe-node-logrotate.timer b/cellframe-node-logrotate.timer
new file mode 100644
index 000000000000..6eeef8a6f8b2
--- /dev/null
+++ b/cellframe-node-logrotate.timer
@@ -0,0 +1,11 @@
+[Unit]
+Description="Logrotate cellframe-node.log files"
+
+[Timer]
+OnBootSec=5min
+OnCalendar=*-*-* *:00:00
+Persistent=True
+Unit=cellframe-node-logrotate.service
+
+[Install]
+WantedBy=timers.target \ No newline at end of file
diff --git a/cellframe-node.install b/cellframe-node.install
new file mode 100644
index 000000000000..c1a2d83f885b
--- /dev/null
+++ b/cellframe-node.install
@@ -0,0 +1,99 @@
+showmsg() {
+ cat << EOF
+
+ ########################################################################
+ ########################################################################
+ ## ##
+ ## Cellframe node ##
+ ## ____________ ##
+ ## ##
+ ## To start Cellframe node manually: ##
+ ## ##
+ ## # Run from /opt/cellframe-node/bin ##
+ ## ##
+ ## Run automatically: ##
+ ## ##
+ ## # systemctl enable --now cellframe-node.service ##
+ ## ##
+ ## OPTIONAL (for more aggressive logrotating): ##
+ ## # systemctl enable --now cellframe-node-logrotate.timer ##
+ ## ##
+ ## Network configuration is set to full mode by default. ##
+ ## you can modify the network configuration parameters in: ##
+ ## ##
+ ## # /opt/cellframe-node/etc/network/*.cfg ##
+ ## ##
+ ## General configuration file: ##
+ ## ##
+ ## # /opt/cellframe-node/etc/cellframe-node.cfg ##
+ ## ##
+ ## Documentation: ##
+ ## ##
+ ## https://wiki.cellframe.net/en/home ##
+ ## ##
+ ## Setup a master node: ##
+ ## ##
+ ## https://wiki.cellframe.net/en/soft/masternode ##
+ ## ##
+ ########################################################################
+ ########################################################################
+EOF
+}
+
+post_install() {
+ echo "==> Creating directories..."
+ mkdir -p /opt/cellframe-node/var/{run,lib/wallet,lib/global_db,lib/plugins,log}
+ echo "==> Copying configuration files..."
+ cp /opt/cellframe-node/share/configs/cellframe-node.cfg.tpl /opt/cellframe-node/etc/cellframe-node.cfg
+ cp /opt/cellframe-node/share/configs/network/Backbone.cfg.tpl /opt/cellframe-node/etc/network/Backbone.cfg
+ echo "==> Generating default configuration files..."
+ sed -i 's|{DEBUG_MODE}|false|' /opt/cellframe-node/etc/cellframe-node.cfg
+ sed -i 's|{PREFIX}|/opt/cellframe-node|g' /opt/cellframe-node/etc/cellframe-node.cfg
+ sed -i 's|{AUTO_ONLINE}|true|' /opt/cellframe-node/etc/cellframe-node.cfg
+ sed -i 's|{SERVER_ENABLED}|true|' /opt/cellframe-node/etc/cellframe-node.cfg
+ sed -i 's|{SERVER_ADDR}|0.0.0.0|' /opt/cellframe-node/etc/cellframe-node.cfg
+ sed -i 's|{SERVER_PORT}|8079|' /opt/cellframe-node/etc/cellframe-node.cfg
+ sed -i 's|{NOTIFY_SRV_ADDR}|127.0.0.1|' /opt/cellframe-node/etc/cellframe-node.cfg
+ sed -i 's|{NOTIFY_SRV_PORT}|8080|' /opt/cellframe-node/etc/cellframe-node.cfg
+ sed -i "s|{DB_DRIVER}|mdbx|" /opt/cellframe-node/etc/cellframe-node.cfg
+ sed -i 's|{NODE_TYPE}|full|' /opt/cellframe-node/etc/network/Backbone.cfg
+
+ echo "==> Creating symbolic links for executables..."
+ for _executables in cellframe-node-cli cellframe-node-tool cellframe-node
+ do
+ ln -sf "/opt/cellframe-node/bin/$_executables" "/usr/local/bin/$_executables"
+ done
+
+ showmsg
+}
+
+pre_upgrade() {
+ for _executables in cellframe-node-cli cellframe-node-tool cellframe-node
+ do
+ if [[ -f "/usr/bin/$_executables" ]]; then unlink "/usr/bin/$_executables" && echo "==> Removing old symlink: ${_executables}"; fi
+ done
+}
+
+post_upgrade() {
+ systemctl is-active --quiet cellframe-node.service && systemctl daemon-reload && systemctl restart cellframe-node.service
+ if [[ $(vercmp $2 5.2.400-3) -lt 0 ]]; then
+ echo "==> It's recommended to enable cellframe-node-logrotate.timer with: systemctl enable --now cellframe-node-logrotate.timer"
+ fi
+}
+
+pre_remove() {
+ systemctl is-active --quiet cellframe-node.service && systemctl stop cellframe-node.service
+ systemctl is-active --quiet cellframe-node-logrotate.timer && systemctl stop cellframe-node-logrotate.timer
+ systemctl is-enabled --quiet cellframe-node.service && systemctl disable cellframe-node.service
+ systemctl is-enabled --quiet cellframe-node-logrotate.timer && systemctl disable cellframe-node-logrotate.timer
+ systemctl daemon-reload
+}
+
+post_remove() {
+ echo "==> Removing symbolic links for executables..."
+ for _executables in cellframe-node-cli cellframe-node-tool cellframe-node
+ do
+ unlink "/usr/local/bin/$_executables"
+ done
+}
+
diff --git a/cellframe-node.logrotate b/cellframe-node.logrotate
new file mode 100644
index 000000000000..410352a96ef8
--- /dev/null
+++ b/cellframe-node.logrotate
@@ -0,0 +1,8 @@
+"/opt/cellframe-node/var/log/*.log" {
+ copytruncate
+ minsize 200M
+ rotate 6
+ compress
+ missingok
+ notifempty
+}
diff --git a/cellframe-node.service b/cellframe-node.service
new file mode 100644
index 000000000000..74f03648ed9f
--- /dev/null
+++ b/cellframe-node.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Cellframe Node
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+WorkingDirectory=/opt/cellframe-node
+ExecStart=/opt/cellframe-node/bin/cellframe-node &
+ExecStop=/bin/kill -SIGTERM $MAINPID
+Restart=always
+User=root
+Group=root
+RestartSec=10
+LogNamespace=cellframe
+StandardOutput=null
+StandardError=journal
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_IPC_LOCK CAP_KILL CAP_LEASE CAP_MKNOD CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_RAWIO CAP_SYSLOG CAP_WAKE_ALARM CAP_SYS_RESOURCE CAP_DAC_READ_SEARCH
+
+[Install]
+WantedBy=multi-user.target \ No newline at end of file