diff options
author | Douglas Chimento | 2021-11-03 22:19:36 +0200 |
---|---|---|
committer | Douglas Chimento | 2021-11-03 22:19:36 +0200 |
commit | fc666e8c0260baa6dcc3dfb407baa6fbf5acddc3 (patch) | |
tree | ee32b0979f10f267ab40229c03daa2d40e7143da | |
download | aur-fc666e8c0260baa6dcc3dfb407baa6fbf5acddc3.tar.gz |
init
-rw-r--r-- | .SRCINFO | 26 | ||||
-rwxr-xr-x | PKGBUILD | 59 | ||||
-rw-r--r-- | elements-core-01-systemd-sysusers.hook | 11 | ||||
-rw-r--r-- | elements-core-02-chown.hook | 11 | ||||
-rw-r--r-- | elements-sysusers.conf | 1 | ||||
-rw-r--r-- | elements.conf | 6 | ||||
-rw-r--r-- | elementsd-test.service | 65 | ||||
-rw-r--r-- | elementsd.service | 65 |
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 |