summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Chimento2021-11-03 22:19:36 +0200
committerDouglas Chimento2021-11-03 22:19:36 +0200
commitfc666e8c0260baa6dcc3dfb407baa6fbf5acddc3 (patch)
treeee32b0979f10f267ab40229c03daa2d40e7143da
downloadaur-fc666e8c0260baa6dcc3dfb407baa6fbf5acddc3.tar.gz
init
-rw-r--r--.SRCINFO26
-rwxr-xr-xPKGBUILD59
-rw-r--r--elements-core-01-systemd-sysusers.hook11
-rw-r--r--elements-core-02-chown.hook11
-rw-r--r--elements-sysusers.conf1
-rw-r--r--elements.conf6
-rw-r--r--elementsd-test.service65
-rw-r--r--elementsd.service65
8 files changed, 244 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..b14d649f380d
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,26 @@
+pkgbase = elements-project
+ pkgdesc = Elements blockchain platform, a collection of feature experiments and extensions to the Bitcoin protocol
+ pkgver = 0.21.0
+ pkgrel = 1
+ url = https://github.com/ElementsProject/elements
+ arch = aarch64
+ arch = x86_64
+ license = MIT
+ backup = etc/elements/elements.conf
+ source = elements.conf
+ source = elementsd.service
+ source = elementsd-test.service
+ source = elements-sysusers.conf
+ source = elements-core-01-systemd-sysusers.hook
+ source = elements-core-02-chown.hook
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ source_aarch64 = https://github.com/ElementsProject/elements/releases/download/elements-0.21.0/elements-elements-0.21.0-aarch64-linux-gnu.tar.gz
+ source_x86_64 = https://github.com/ElementsProject/elements/releases/download/elements-0.21.0/elements-elements-0.21.0-x86_64-linux-gnu.tar.gz
+ sha256sums_x86_64 = 37129b7227f107ba918a60d2901e6a0a2f5043ab353dd8fb2a8e55f8741a7991
+
+pkgname = elements-project
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100755
index 000000000000..045d68d7e2de
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,59 @@
+# Maintainer: Douglas Chimento <dchimento @ gmail.com>
+pkgname=elements-project
+pkgver=0.21.0
+pkgrel=1
+arch=('aarch64' 'x86_64')
+pkgdesc="Elements blockchain platform, a collection of feature experiments and extensions to the Bitcoin protocol"
+url="https://github.com/ElementsProject/elements"
+license=('MIT')
+backup=('etc/elements/elements.conf')
+source_x86_64=("https://github.com/ElementsProject/elements/releases/download/elements-${pkgver}/elements-elements-${pkgver}-x86_64-linux-gnu.tar.gz")
+source_aarch64=("https://github.com/ElementsProject/elements/releases/download/elements-${pkgver}/elements-elements-${pkgver}-aarch64-linux-gnu.tar.gz")
+source=(elements.conf
+ elementsd.service
+ elementsd-test.service
+ elements-sysusers.conf
+ elements-core-01-systemd-sysusers.hook
+ elements-core-02-chown.hook)
+
+sha256sums_x86_64=('37129b7227f107ba918a60d2901e6a0a2f5043ab353dd8fb2a8e55f8741a7991')
+sha256sums_aarch54=('eaf8c7f33f373c3817e4540ad45f32fe4b27d941c1cac75d50964a89091809c3')
+sha256sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP')
+
+package() {
+ cd "$srcdir/elements-elements-${pkgver}"
+ msg2 'Installing essential directories'
+ install -dm 700 "$pkgdir/etc/elements"
+ install -dm 750 "$pkgdir/var/lib/elementsd"
+
+ msg2 'Installing element.conf...'
+ install -Dm 600 "$srcdir/elements.conf" -t "$pkgdir/etc/elements"
+
+ msg2 'Installing elementd.service...'
+ install -Dm 644 "$srcdir/elementsd.service" -t "$pkgdir/usr/lib/systemd/system"
+ install -Dm 644 "$srcdir/elementsd-test.service" -t "$pkgdir/usr/lib/systemd/system"
+
+ msg2 'Installing element-sysusers.conf...'
+ install -Dm 644 "$srcdir/elements-sysusers.conf" "$pkgdir/usr/lib/sysusers.d/elements.conf"
+
+ msg2 'Installing element...'
+ for i in elements-cli elementsd elements-qt elements-tx elements-wallet ; do
+ install -Dm 755 "bin/$i" "$pkgdir/usr/bin/$i"
+ done
+ msg2 'Installing libs...'
+ install -Dm 755 lib/libelementsconsensus.so.0.0.0 "$pkgdir/usr/lib/libelementsconsensus.so.0.0.0"
+ ln -s libelementsconsensus.so.0.0.0 "$pkgdir/usr/lib/libelementsconsensus.so.0"
+ ln -s libelementsconsensus.so.0.0.0 "$pkgdir/usr/lib/libelementsconsensus.so"
+
+ msg2 'Installing man...'
+ for i in elements-cli.1 elementsd.1 elements-tx.1 elements-wallet.1; do
+ install -Dm 644 "share/man/man1/$i" "$pkgdir/usr/share/man/man1/$i"
+ done
+ msg2 'Installing pacman hooks...'
+ install -Dm 644 "$srcdir"/*.hook -t "$pkgdir/usr/share/libalpm/hooks"
+}
diff --git a/elements-core-01-systemd-sysusers.hook b/elements-core-01-systemd-sysusers.hook
new file mode 100644
index 000000000000..ef99e4adfc46
--- /dev/null
+++ b/elements-core-01-systemd-sysusers.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Operation = Install
+Operation = Upgrade
+Type = Package
+Target = elements-project
+
+[Action]
+Description = Adding bitcoin daemon user...
+Depends = systemd
+When = PostTransaction
+Exec = /usr/bin/systemd-sysusers /usr/lib/sysusers.d/elements.conf
diff --git a/elements-core-02-chown.hook b/elements-core-02-chown.hook
new file mode 100644
index 000000000000..6ad07b5c7d71
--- /dev/null
+++ b/elements-core-02-chown.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Operation = Install
+Operation = Upgrade
+Type = Package
+Target = elements-project
+
+[Action]
+Description = Setting elements daemon user directory permissions...
+Depends = coreutils
+When = PostTransaction
+Exec = /usr/bin/chown -R elements:elements /etc/elements /var/lib/elementsd
diff --git a/elements-sysusers.conf b/elements-sysusers.conf
new file mode 100644
index 000000000000..195c749ce072
--- /dev/null
+++ b/elements-sysusers.conf
@@ -0,0 +1 @@
+u elements - "element daemon user" /etc/elements -
diff --git a/elements.conf b/elements.conf
new file mode 100644
index 000000000000..e589c5fe76fe
--- /dev/null
+++ b/elements.conf
@@ -0,0 +1,6 @@
+rpcuser=liquid
+rpcpassword=secret
+rpcthreads=4
+rpctimeout=300
+txindex=1
+server=1
diff --git a/elementsd-test.service b/elementsd-test.service
new file mode 100644
index 000000000000..8463bc7f440c
--- /dev/null
+++ b/elementsd-test.service
@@ -0,0 +1,65 @@
+[Unit]
+Description=Elements Liquid Blockchain (test chain)
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/elementsd -daemon -chain=liquidv1test \
+ -pid=/run/elementsd/elementsd-test.pid \
+ -conf=/etc/elements/elements.conf \
+ -datadir=/var/lib/elementsd
+
+# Make sure the config directory is readable by the service user
+PermissionsStartOnly=true
+ExecStartPre=/bin/chgrp elements /etc/elements
+
+# Process management
+####################
+
+Type=forking
+PIDFile=/run/elementsd/elementsd-test.pid
+Restart=on-failure
+
+# Directory creation and permissions
+####################################
+
+# Run as elements:elements
+User=elements
+Group=elements
+
+# /run/elementsd
+RuntimeDirectory=elementsd
+RuntimeDirectoryMode=0710
+
+# /etc/elements
+ConfigurationDirectory=elements
+ConfigurationDirectoryMode=0710
+
+# /var/lib/elementsd
+#StateDirectory=elementsd
+#StateDirectoryMode=0710
+
+# Hardening measures
+####################
+
+# Provide a private /tmp and /var/tmp.
+PrivateTmp=true
+
+# Mount /usr, /boot/ and /etc read-only for the process.
+ProtectSystem=full
+
+# Deny access to /home, /root and /run/user
+ProtectHome=true
+
+# Disallow the process and all of its children to gain
+# new privileges through execve().
+NoNewPrivileges=true
+
+# Use a new /dev namespace only populated with API pseudo devices
+# such as /dev/null, /dev/zero and /dev/random.
+PrivateDevices=true
+
+# Deny the creation of writable and executable memory mappings.
+MemoryDenyWriteExecute=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/elementsd.service b/elementsd.service
new file mode 100644
index 000000000000..400fcc0c63cc
--- /dev/null
+++ b/elementsd.service
@@ -0,0 +1,65 @@
+[Unit]
+Description=Elements Liquid Blockchain
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/elements -daemon \
+ -pid=/run/elementsd/elementsd.pid \
+ -conf=/etc/elements/elements.conf \
+ -datadir=/var/lib/elementsd
+
+# Make sure the config directory is readable by the service user
+PermissionsStartOnly=true
+ExecStartPre=/bin/chgrp elements /etc/elements
+
+# Process management
+####################
+
+Type=forking
+PIDFile=/run/elementsd/elementsd.pid
+Restart=on-failure
+
+# Directory creation and permissions
+####################################
+
+# Run as elements:elements
+User=elements
+Group=elements
+
+# /run/elementsd
+RuntimeDirectory=elementsd
+RuntimeDirectoryMode=0710
+
+# /etc/elements
+ConfigurationDirectory=elements
+ConfigurationDirectoryMode=0710
+
+# /var/lib/elementsd
+#StateDirectory=elementsd
+#StateDirectoryMode=0710
+
+# Hardening measures
+####################
+
+# Provide a private /tmp and /var/tmp.
+PrivateTmp=true
+
+# Mount /usr, /boot/ and /etc read-only for the process.
+ProtectSystem=full
+
+# Deny access to /home, /root and /run/user
+ProtectHome=true
+
+# Disallow the process and all of its children to gain
+# new privileges through execve().
+NoNewPrivileges=true
+
+# Use a new /dev namespace only populated with API pseudo devices
+# such as /dev/null, /dev/zero and /dev/random.
+PrivateDevices=true
+
+# Deny the creation of writable and executable memory mappings.
+MemoryDenyWriteExecute=true
+
+[Install]
+WantedBy=multi-user.target