summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorIsabell Cowan2018-10-28 10:38:13 -0500
committerIsabell Cowan2018-10-28 10:40:14 -0500
commit5a7a564fc75c8938800c406806f2e36d89a91350 (patch)
tree8d33cf0a11bd15ee85a07ed93b84a73e3cb4d723
downloadaur-5a7a564fc75c8938800c406806f2e36d89a91350.tar.gz
Initial Commit, version 2.1.2-1.
* Migrated from https://aur.archlinux.org/ardor.git. * Created ardor user and group for process to run. * Locked down system with systemd service. * Configured JVM options with an environment file. * Created a ardor desktop file to open the ardor wallet. * Moved log and database directories to /var. * Locked down ardor write access to just nxt_db, logs, and conf/data. * Installed licenses in the correct location. * Various other improvements.
-rw-r--r--.SRCINFO50
-rw-r--r--.gitignore9
-rw-r--r--PKGBUILD112
-rw-r--r--ardor-system.install64
-rw-r--r--ardor.default5
-rw-r--r--ardor.desktop10
-rw-r--r--ardor.service21
7 files changed, 271 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..5907c5b8a23f
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,50 @@
+pkgbase = ardor-system
+ pkgdesc = The Ardor Reference Software Client -- Secure System Installation.
+ pkgver = 2.1.2
+ pkgrel = 1
+ url = https://www.ardorplatform.org
+ install = ardor-system.install
+ arch = any
+ license = MIT
+ license = GPL
+ depends = jre8-openjdk
+ provides = ardor
+ conflicts = ardor
+ options = !strip
+ options = emptydirs
+ backup = opt/ardor/conf/data/PUBLIC_KEY.json
+ backup = opt/ardor/conf/data/IGNIS-testnet.json
+ backup = opt/ardor/conf/data/AEUR.json
+ backup = opt/ardor/conf/data/ARDR-testnet.json
+ backup = opt/ardor/conf/data/ACCOUNT_CONTROL.json
+ backup = opt/ardor/conf/data/BITSWIFT.json
+ backup = opt/ardor/conf/data/PUBLIC_KEY-testnet.json
+ backup = opt/ardor/conf/data/ACCOUNT_PROPERTIES.json
+ backup = opt/ardor/conf/data/ASSETS-testnet.json
+ backup = opt/ardor/conf/data/IGNIS.json
+ backup = opt/ardor/conf/data/IGNIS_CURRENCIES-testnet.json
+ backup = opt/ardor/conf/data/ASSETS.json
+ backup = opt/ardor/conf/data/IGNIS_ALIASES.json
+ backup = opt/ardor/conf/data/ACCOUNT_INFO.json
+ backup = opt/ardor/conf/data/IGNIS_ALIASES-testnet.json
+ backup = opt/ardor/conf/data/BITSWIFT-testnet.json
+ backup = opt/ardor/conf/data/ACCOUNT_INFO-testnet.json
+ backup = opt/ardor/conf/data/ARDR.json
+ backup = opt/ardor/conf/data/AEUR-testnet.json
+ backup = opt/ardor/conf/data/IGNIS_CURRENCIES.json
+ backup = opt/ardor/conf/data/ACCOUNT_CONTROL-testnet.json
+ backup = opt/ardor/conf/data/ACCOUNT_PROPERTIES-testnet.json
+ backup = opt/ardor/conf/nxt-default.properties
+ backup = opt/ardor/conf/logging-default.properties
+ backup = etc/default/ardor
+ source = https://bitbucket.org/Jelurida/ardor/downloads/ardor-client-2.1.2.zip
+ source = ardor.desktop
+ source = ardor.default
+ source = ardor.service
+ sha256sums = 02e5e70d862e89df8fc5b8c49705efdacd30c9df53bfbc01a2007afbbae9a2b6
+ sha256sums = a6787a24aad510f3b4f8b6c724221a9518c34298425c9b93f9ac4ded94ba4544
+ sha256sums = 1fd2eb63c2778279f9e17cafa650399ed67bc8ba2428745bd56a01d41e949ff5
+ sha256sums = 9e9540a65c661f6ece0113726549df11735ee75b122b4751412cae79f9c4b362
+
+pkgname = ardor-system
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..52c61205f479
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+# .gitignore
+
+/src
+/pkg
+/ardor-client-*.zip
+/ardor-system-*-any.pkg.tar*
+/ardor-system-*.src.tar*
+
+# vim: set syn=config:
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..bcae5b9d7f3e
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,112 @@
+# Maintainer: Isabell Cowan < izzi at izzette com >
+# Contributer: Martin Trigaux <me@mart-e.be>
+
+_pkgname='ardor'
+
+pkgbase="$_pkgname-system"
+pkgname=("$pkgbase")
+pkgver=2.1.2
+pkgrel=1
+pkgdesc="The Ardor Reference Software Client -- Secure System Installation."
+url="https://www.ardorplatform.org"
+license=('MIT' 'GPL')
+install="${pkgname[0]}.install"
+source=("https://bitbucket.org/Jelurida/ardor/downloads/ardor-client-$pkgver.zip"
+ 'ardor.desktop'
+ 'ardor.default'
+ 'ardor.service')
+sha256sums=('02e5e70d862e89df8fc5b8c49705efdacd30c9df53bfbc01a2007afbbae9a2b6'
+ 'a6787a24aad510f3b4f8b6c724221a9518c34298425c9b93f9ac4ded94ba4544'
+ '1fd2eb63c2778279f9e17cafa650399ed67bc8ba2428745bd56a01d41e949ff5'
+ '9e9540a65c661f6ece0113726549df11735ee75b122b4751412cae79f9c4b362')
+arch=('any')
+backup=('opt/ardor/conf/data/PUBLIC_KEY.json'
+ 'opt/ardor/conf/data/IGNIS-testnet.json'
+ 'opt/ardor/conf/data/AEUR.json'
+ 'opt/ardor/conf/data/ARDR-testnet.json'
+ 'opt/ardor/conf/data/ACCOUNT_CONTROL.json'
+ 'opt/ardor/conf/data/BITSWIFT.json'
+ 'opt/ardor/conf/data/PUBLIC_KEY-testnet.json'
+ 'opt/ardor/conf/data/ACCOUNT_PROPERTIES.json'
+ 'opt/ardor/conf/data/ASSETS-testnet.json'
+ 'opt/ardor/conf/data/IGNIS.json'
+ 'opt/ardor/conf/data/IGNIS_CURRENCIES-testnet.json'
+ 'opt/ardor/conf/data/ASSETS.json'
+ 'opt/ardor/conf/data/IGNIS_ALIASES.json'
+ 'opt/ardor/conf/data/ACCOUNT_INFO.json'
+ 'opt/ardor/conf/data/IGNIS_ALIASES-testnet.json'
+ 'opt/ardor/conf/data/BITSWIFT-testnet.json'
+ 'opt/ardor/conf/data/ACCOUNT_INFO-testnet.json'
+ 'opt/ardor/conf/data/ARDR.json'
+ 'opt/ardor/conf/data/AEUR-testnet.json'
+ 'opt/ardor/conf/data/IGNIS_CURRENCIES.json'
+ 'opt/ardor/conf/data/ACCOUNT_CONTROL-testnet.json'
+ 'opt/ardor/conf/data/ACCOUNT_PROPERTIES-testnet.json'
+ 'opt/ardor/conf/nxt-default.properties'
+ 'opt/ardor/conf/logging-default.properties'
+ 'etc/default/ardor')
+depends=('jre8-openjdk')
+conflicts=('ardor')
+provides=('ardor')
+# Takes forever, is pointless ...
+options=('!strip' 'emptydirs')
+
+package() {
+ msg2 "Installing ardor client..."
+ install -dm755 "$pkgdir/opt/ardor"
+ cp -r "$_pkgname/." "$pkgdir/opt/ardor"
+ rm -f "$pkgdir/opt/ardor/conf/.lock"
+ rm -rf --preserve-root "$pkgdir/opt/ardor/logs"
+ install -dm755 "$pkgdir/opt/ardor/.ardor"
+
+ msg2 "Removing unneeded files for windows..."
+ rm -f -- "$pkgdir/opt/ardor"/*.{bat,exe}
+
+ msg2 "Correcting permissions..."
+ find "$pkgdir/opt/ardor" -type d -exec chmod 0755 \{\} +
+ find "$pkgdir/opt/ardor" -maxdepth 1 -type f -executable -name \*.sh -exec chmod 0755 \{\} +
+ find "$pkgdir/opt/ardor" -type f \! \( -executable -a -name \*.sh \) -exec chmod 0644 \{\} +
+ chmod 0750 "$pkgdir/opt/ardor/conf/data"
+ chmod 0640 "$pkgdir/opt/ardor/conf/nxt-default.properties"
+
+ msg2 "Installing ardor icon..."
+ install -Dm644 \
+ "$srcdir/$_pkgname/html/www/img/nxt-icon-32x32.png" \
+ "$pkgdir/usr/share/icons/hicolor/32x32/apps/ardor.png"
+
+ msg2 "Installing ardor.desktop..."
+ install -Dm644 \
+ "$srcdir/ardor.desktop" \
+ "$pkgdir/usr/share/applications/ardor.desktop"
+
+ msg2 "Installing ardor ${license[0]} license(s)..."
+ install -dm755 "$pkgdir/usr/share/licenses/ardor"
+ mv \
+ "$pkgdir/opt/ardor/LICENSE.txt" \
+ "$pkgdir/opt/ardor/3RD-PARTY-LICENSES.txt" \
+ "$pkgdir/usr/share/licenses/ardor/"
+
+ msg2 "Creating ardor database directory..."
+ install -dm750 "$pkgdir/var/lib/ardor"
+ ln -s \
+ "/var/lib/ardor" \
+ "$pkgdir/opt/ardor/nxt_db"
+
+ msg2 "Creating ardor log directory..."
+ install -dm755 "$pkgdir/var/log/ardor"
+ ln -s \
+ "/var/log/ardor" \
+ "$pkgdir/opt/ardor/logs"
+
+ msg2 "Installing ardor.default..."
+ install -Dm644 \
+ "$srcdir/ardor.default" \
+ "$pkgdir/etc/default/ardor"
+
+ msg2 "Installing ardor systemd service..."
+ install -Dm644 \
+ "$srcdir/ardor.service" \
+ "$pkgdir/usr/lib/systemd/system/ardor.service"
+}
+
+# vim: set ts=2 sw=2 et syn=sh:
diff --git a/ardor-system.install b/ardor-system.install
new file mode 100644
index 000000000000..dc8b5aabab69
--- /dev/null
+++ b/ardor-system.install
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+ardor_user='ardor'
+ardor_home='/opt/ardor'
+ardor_log_path='/var/log/ardor'
+ardor_db_path='/var/lib/ardor'
+ardor_old_db_path='/opt/ardor/nxt_db'
+ardor_conf_dir='/opt/ardor/conf'
+ardor_pid_dir='/opt/ardor/.ardor'
+
+move_existing_ardor_db() {
+ set -e
+
+ if [ -e "$ardor_old_db_path" ] && [ "$(stat -c %F "$ardor_old_db_path")" = 'directory' ]; then
+ mv -T "$ardor_old_db_path" "$ardor_db_path"
+ fi
+}
+
+correct_ardor_ownerships() {
+ set -e
+
+ touch "$ardor_conf_dir/.lock"
+ chown -R "$ardor_user":"$(id -gn "$ardor_user")" \
+ "$ardor_log_path" \
+ "$ardor_db_path" \
+ "$ardor_conf_dir/data" \
+ "$ardor_conf_dir/.lock" \
+ "$ardor_pid_dir"
+
+ chgrp "$(id -gn "$ardor_user")" \
+ "$ardor_conf_dir/nxt-default.properties"
+}
+
+ensure_ardor_user() {
+ set -e
+
+ if ! id "$ardor_user" > /dev/null 2>&1; then
+ useradd -rd "$ardor_home" -s '/bin/false' "$ardor_user"
+ else
+ usermod -d "$ardor_home" -s '/bin/false' "$ardor_user" > /dev/null
+ fi
+}
+
+pre_install() {
+ set -e
+
+ move_existing_ardor_db
+}
+
+post_install() {
+ set -e
+
+ ensure_ardor_user
+ correct_ardor_ownerships
+}
+
+post_upgrade() {
+ set -e
+
+ ensure_ardor_user
+ correct_ardor_ownerships
+}
+
+# vim: set ts=2 sw=2 et syn=sh:
diff --git a/ardor.default b/ardor.default
new file mode 100644
index 000000000000..a84ecdd301c6
--- /dev/null
+++ b/ardor.default
@@ -0,0 +1,5 @@
+# /etc/default/ardor
+
+ARDOR_JVM_OPTS="-Xms256M -cp classes:lib/*:conf:addons/classes:addons/lib/*"
+
+# vim: set syn=config:
diff --git a/ardor.desktop b/ardor.desktop
new file mode 100644
index 000000000000..e23eafb788c7
--- /dev/null
+++ b/ardor.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Name=Ardor Wallet API
+GenericName=Ardor Wallet
+Comment=Open Ardor Wallets
+Type=Application
+Exec=xdg-open http://localhost:27876/
+Icon=ardor
+Categories=Utility;Application;Finance;
+Keywords=cryptocurrency;wallet;ardor;nxt;ignis;
diff --git a/ardor.service b/ardor.service
new file mode 100644
index 000000000000..1eb20dfe02a3
--- /dev/null
+++ b/ardor.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Ardor Blockchain Client
+Wants=network.target
+After=network.target
+RequiresMountsFor=/opt/ardor /var/lib/ardor /var/log/ardor
+
+[Service]
+Type=simple
+EnvironmentFile=-/etc/default/ardor
+User=ardor
+ProtectSystem=strict
+PrivateDevices=true
+ProtectKernelTunables=true
+ProtectControlGroups=true
+ReadWritePaths=/opt/ardor/conf /var/lib/ardor /var/log/ardor
+WorkingDirectory=/opt/ardor
+ExecStart=/usr/bin/java $ARDOR_JVM_OPTS nxt.Nxt
+Restart=on-abort
+
+[Install]
+WantedBy=multi-user.target