diff options
author | Mika Hyttinen | 2024-01-11 08:52:47 +0200 |
---|---|---|
committer | Mika Hyttinen | 2024-01-11 08:52:47 +0200 |
commit | 6b7e90d07714dd7472ad160b09e7530a2449fc00 (patch) | |
tree | 31d20938474d5948294a96c377231ad61b710720 | |
download | aur-6b7e90d07714dd7472ad160b09e7530a2449fc00.tar.gz |
Add debug build
-rw-r--r-- | PKGBUILD | 64 | ||||
-rw-r--r-- | cellframe-node-logrotate.service | 5 | ||||
-rw-r--r-- | cellframe-node-logrotate.timer | 11 | ||||
-rw-r--r-- | cellframe-node.install | 99 | ||||
-rw-r--r-- | cellframe-node.logrotate | 8 | ||||
-rw-r--r-- | cellframe-node.service | 20 |
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 |