diff --git a/package/deb/debian/control b/package/deb/debian/control index 30063c68fa..ec9c634fde 100644 --- a/package/deb/debian/control +++ b/package/deb/debian/control @@ -4,7 +4,7 @@ Priority: optional Maintainer: XRPL Foundation Rules-Requires-Root: no Build-Depends: - debhelper-compat (= 13), + debhelper-compat (= 13) Standards-Version: 4.7.0 Homepage: https://github.com/XRPLF/rippled Vcs-Git: https://github.com/XRPLF/rippled.git diff --git a/package/deb/debian/xrpld.links b/package/deb/debian/xrpld.links index 888943fec3..2cafd2ffac 100644 --- a/package/deb/debian/xrpld.links +++ b/package/deb/debian/xrpld.links @@ -7,7 +7,5 @@ opt/xrpld/bin/xrpld opt/xrpld/bin/rippled opt/xrpld/bin/xrpld usr/bin/rippled opt/xrpld/bin/xrpld usr/local/bin/rippled opt/xrpld/etc/xrpld.cfg opt/xrpld/etc/rippled.cfg -var/log/xrpld var/log/rippled -var/lib/xrpld var/lib/rippled opt/xrpld opt/ripple etc/opt/xrpld etc/opt/ripple diff --git a/package/rpm/xrpld.spec.in b/package/rpm/xrpld.spec.in index ac73392ca7..89912302d4 100644 --- a/package/rpm/xrpld.spec.in +++ b/package/rpm/xrpld.spec.in @@ -51,9 +51,7 @@ install -Dm0755 %{SOURCE0} %{buildroot}%{_opt_prefix}/bin/xrpld install -Dm0644 %{SOURCE1} %{buildroot}%{_opt_prefix}/etc/xrpld.cfg install -Dm0644 %{SOURCE2} %{buildroot}%{_opt_prefix}/etc/validators.txt -# Compatibility symlinks (matches debian/xrpld.links). -mkdir -p %{buildroot}/etc/opt %{buildroot}/usr/bin %{buildroot}/usr/local/bin \ - %{buildroot}/var/log %{buildroot}/var/lib +mkdir -p %{buildroot}/etc/opt %{buildroot}/usr/bin %{buildroot}/usr/local/bin ln -s %{_opt_prefix}/etc %{buildroot}/etc/opt/xrpld ln -s %{_opt_prefix}/bin/xrpld %{buildroot}/usr/bin/xrpld @@ -64,8 +62,6 @@ ln -s %{_opt_prefix}/bin/xrpld %{buildroot}/usr/local/bin/rippled ln -s xrpld.cfg %{buildroot}%{_opt_prefix}/etc/rippled.cfg ln -s %{_opt_prefix} %{buildroot}/opt/ripple ln -s /etc/opt/xrpld %{buildroot}/etc/opt/ripple -ln -s xrpld %{buildroot}/var/log/rippled -ln -s xrpld %{buildroot}/var/lib/rippled # Install systemd/sysusers/tmpfiles support files. install -Dm0644 %{SOURCE3} %{buildroot}%{_unitdir}/xrpld.service @@ -91,28 +87,33 @@ systemd-tmpfiles --create %{_tmpfilesdir}/xrpld.conf || : %files %license %{SOURCE9} %doc %{SOURCE10} + %dir %{_opt_prefix} %dir %{_opt_prefix}/bin +%dir %{_opt_prefix}/etc + %{_opt_prefix}/bin/xrpld %{_opt_prefix}/bin/xrpld.logrotate %{_opt_prefix}/bin/update-xrpld.sh %{_opt_prefix}/bin/update-xrpld-cron -%{_opt_prefix}/bin/rippled + /usr/bin/xrpld -/usr/bin/rippled -/usr/local/bin/rippled -%dir %{_opt_prefix}/etc +/etc/opt/xrpld + %config(noreplace) %{_opt_prefix}/etc/xrpld.cfg %config(noreplace) %{_opt_prefix}/etc/validators.txt -%{_opt_prefix}/etc/rippled.cfg -/etc/opt/xrpld -/etc/opt/ripple -/opt/ripple + %{_unitdir}/xrpld.service %{_sysusersdir}/xrpld.conf %{_tmpfilesdir}/xrpld.conf -/var/log/rippled -/var/lib/rippled -%ghost %dir /var/opt/ripple -%ghost %dir /var/opt/ripple/lib -%ghost %dir /var/opt/ripple/log + +%ghost %dir /var/lib/xrpld +%ghost %dir /var/log/xrpld + +# TODO: remove when rippled deprecated +%{_opt_prefix}/bin/rippled +/usr/bin/rippled +/usr/local/bin/rippled +%{_opt_prefix}/etc/rippled.cfg +/etc/opt/ripple +/opt/ripple diff --git a/package/shared/update-xrpld.sh b/package/shared/update-xrpld.sh index ac05e6d0e9..22e54c6272 100755 --- a/package/shared/update-xrpld.sh +++ b/package/shared/update-xrpld.sh @@ -23,26 +23,24 @@ if ! mkdir "$LOCKDIR" 2>/dev/null; then fi trap cleanup EXIT -source /etc/os-release can_update=false -if [[ "$ID" == "ubuntu" || "$ID" == "debian" ]] ; then - # Silent update +if command -v apt-get &>/dev/null; then apt-get update -qq - # The next line is an "awk"ward way to check if the package needs to be updated. - XRPLD=$(apt-get install -s --only-upgrade xrpld | awk '/^Inst/ { print $2 }') - test "$XRPLD" == "xrpld" && can_update=true + if apt-get -s --only-upgrade install xrpld 2>/dev/null | grep -q '^Inst xrpld'; then + can_update=true + fi function apply_update { DEBIAN_FRONTEND=noninteractive apt-get install -y -qq xrpld } -elif [[ "$ID" == "fedora" || "$ID" == "centos" || "$ID" == "rhel" || "$ID" == "scientific" ]] ; then - RIPPLE_REPO=${RIPPLE_REPO-stable} - yum --disablerepo=* --enablerepo="ripple-${RIPPLE_REPO}" clean expire-cache +elif command -v yum &>/dev/null; then + REPO=${REPO-stable} + yum --disablerepo=* --enablerepo="ripple-${REPO}" clean expire-cache # yum check-update exits 100 when updates are available, 0 for none, 1 for errors. - yum check-update -q --enablerepo="ripple-${RIPPLE_REPO}" xrpld + yum check-update -q --enablerepo="ripple-${REPO}" xrpld rc=$? if [ $rc -eq 100 ]; then can_update=true @@ -52,10 +50,10 @@ elif [[ "$ID" == "fedora" || "$ID" == "centos" || "$ID" == "rhel" || "$ID" == "s fi function apply_update { - yum update -y --enablerepo="ripple-${RIPPLE_REPO}" xrpld + yum update -y --enablerepo="ripple-${REPO}" xrpld } else - echo "unrecognized distro!" + echo "No supported package manager found (apt-get or yum)" exit 1 fi diff --git a/package/shared/xrpld.service b/package/shared/xrpld.service index 19528f4f34..64f236dd45 100644 --- a/package/shared/xrpld.service +++ b/package/shared/xrpld.service @@ -2,11 +2,14 @@ Description=XRP Ledger Daemon After=network-online.target Wants=network-online.target +StartLimitIntervalSec=60 +StartLimitBurst=3 [Service] Type=simple ExecStart=/opt/xrpld/bin/xrpld --net --silent --conf /etc/opt/xrpld/xrpld.cfg Restart=on-failure +RestartSec=5 NoNewPrivileges=true ProtectSystem=full PrivateTmp=true diff --git a/package/shared/xrpld.tmpfiles b/package/shared/xrpld.tmpfiles index a1677a5cbd..ff9b4d95c2 100644 --- a/package/shared/xrpld.tmpfiles +++ b/package/shared/xrpld.tmpfiles @@ -1,5 +1,2 @@ d /var/lib/xrpld 0750 xrpld xrpld - -d /var/lib/xrpld/db 0750 xrpld xrpld - d /var/log/xrpld 0750 xrpld xrpld - -d /var/opt/ripple/lib 0750 xrpld xrpld - -d /var/opt/ripple/log 0750 xrpld xrpld -