diff options
author | Isabell Cowan | 2018-10-28 10:38:13 -0500 |
---|---|---|
committer | Isabell Cowan | 2018-10-28 10:40:14 -0500 |
commit | 5a7a564fc75c8938800c406806f2e36d89a91350 (patch) | |
tree | 8d33cf0a11bd15ee85a07ed93b84a73e3cb4d723 | |
download | aur-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-- | .SRCINFO | 50 | ||||
-rw-r--r-- | .gitignore | 9 | ||||
-rw-r--r-- | PKGBUILD | 112 | ||||
-rw-r--r-- | ardor-system.install | 64 | ||||
-rw-r--r-- | ardor.default | 5 | ||||
-rw-r--r-- | ardor.desktop | 10 | ||||
-rw-r--r-- | ardor.service | 21 |
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 |