libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 42f005cc20a5b794926260e5a40982b467805ac5
parent 99264b0bd65fab6302dbab2c5965225d6887c7cd
Author: Florian Dold <florian@dold.me>
Date:   Mon, 27 Nov 2023 11:57:59 +0100

debian packaging

Diffstat:
MMakefile | 43+++++++++++++++++++++++--------------------
Rcontrib/libeufin-bank.conf -> contrib/bank.conf | 0
Rdebian/usr/bin/libeufin-bank-dbconfig -> contrib/libeufin-bank-dbconfig | 0
Rdebian/usr/bin/libeufin-bank-dbinit -> contrib/libeufin-bank-dbinit | 0
Rcontrib/libeufin-nexus.conf -> contrib/nexus.conf | 0
Mdebian/control | 27+++++++++++++++++++++++----
Mdebian/etc/libeufin/libeufin-bank.conf | 3+--
Adebian/etc/libeufin/libeufin-nexus.conf | 6++++++
Mdebian/libeufin-bank.install | 18++++++++++++++++--
Adebian/libeufin-common.install | 2++
Adebian/libeufin-nexus.install | 10++++++++++
Adebian/libeufin-nexus.libeufin-nexus-ebics-fetch.service | 11+++++++++++
Adebian/libeufin-nexus.libeufin-nexus-ebics-submit.service | 11+++++++++++
Adebian/libeufin-nexus.postinst | 37+++++++++++++++++++++++++++++++++++++
Adebian/libeufin-nexus.tmpfiles | 2++
Mdebian/rules | 8++++++--
Ddebian/usr/share/libeufin-bank/spa/settings.js | 2--
17 files changed, 148 insertions(+), 32 deletions(-)

diff --git a/Makefile b/Makefile @@ -15,13 +15,9 @@ endef # Absolute DESTDIR or empty string if DESTDIR unset/empty abs_destdir=$(abspath $(DESTDIR)) -bank_sql_dir=$(abs_destdir)$(prefix)/share/libeufin-bank/sql -bank_config_dir=$(abs_destdir)$(prefix)/share/libeufin-bank/config.d -spa_dir=$(abs_destdir)$(prefix)/share/libeufin-bank/spa - -# NOT installyed yet along "make install" -nexus_sql_dir=$(abs_destdir)$(prefix)/share/libeufin-nexus/sql -nexus_config_dir=$(abs_destdir)$(prefix)/share/libeufin-nexus/config.d +spa_dir=$(abs_destdir)$(prefix)/share/libeufin/spa +sql_dir=$(abs_destdir)$(prefix)/share/libeufin/sql +config_dir=$(abs_destdir)$(prefix)/share/libeufin/config.d .PHONY: dist dist: @@ -34,31 +30,38 @@ deb: dpkg-buildpackage -rfakeroot -b -uc -us .PHONY: install -install: install-bank +install: install-bank install-nexus + + +.PHONY: install-common +install-common: + install -D -t $(config_dir) contrib/currencies.conf + install -D -t $(sql_dir) database-versioning/versioning.sql +.PHONY: install-bank-files install-bank-files: - install -d $(bank_config_dir) - install contrib/libeufin-bank.conf $(bank_config_dir)/ - install contrib/currencies.conf $(bank_config_dir)/ - install -D database-versioning/libeufin-bank*.sql -t $(bank_sql_dir) - install -D database-versioning/libeufin-conversion*.sql -t $(bank_sql_dir) - install -D database-versioning/versioning.sql -t $(bank_sql_dir) + install -D -t $(config_dir) contrib/bank.conf + install -D -t $(sql_dir) database-versioning/libeufin-bank*.sql + install -D -t $(sql_dir) database-versioning/libeufin-conversion*.sql .PHONY: install-bank -install-bank: install-bank-files +install-bank: install-common install-bank-files install -d $(spa_dir) cp contrib/wallet-core/demobank/* $(spa_dir)/ ./gradlew bank:installShadowDist install -d $(abs_destdir)$(prefix) + rm -f bank/build/install/bank-shadow/bin/*.bat cp -r bank/build/install/bank-shadow/* -d $(abs_destdir)$(prefix) cp -r contrib/libeufin-tan-*.sh -d $(abs_destdir)$(prefix)/bin + cp contrib/libeufin-bank-dbinit -d $(abs_destdir)$(prefix)/bin + cp contrib/libeufin-bank-dbconfig -d $(abs_destdir)$(prefix)/bin -install-nexus: - install -d $(nexus_config_dir) - install contrib/libeufin-nexus.conf $(nexus_config_dir)/ - install -D database-versioning/libeufin-nexus*.sql -t $(nexus_sql_dir) - install -D database-versioning/versioning.sql -t $(nexus_sql_dir) +.PHONY: install-nexus +install-nexus: install-common + install -D -t $(config_dir) contrib/nexus.conf + install -D -t $(sql_dir) database-versioning/libeufin-nexus*.sql ./gradlew nexus:installShadowDist + rm -f nexus/build/install/nexus-shadow/bin/*.bat cp -r nexus/build/install/nexus-shadow/* -d $(abs_destdir)$(prefix) .PHONY: assemble diff --git a/contrib/libeufin-bank.conf b/contrib/bank.conf diff --git a/debian/usr/bin/libeufin-bank-dbconfig b/contrib/libeufin-bank-dbconfig diff --git a/debian/usr/bin/libeufin-bank-dbinit b/contrib/libeufin-bank-dbinit diff --git a/contrib/libeufin-nexus.conf b/contrib/nexus.conf diff --git a/debian/control b/debian/control @@ -11,10 +11,29 @@ Standards-Version: 4.1.0 Vcs-Git: https://git.taler.net/libeufin.git Homepage: https://taler.net/ +Package: libeufin-common +Architecture: all +Depends: ${misc:Depends} +Description: Common files for other libeufin packages. + Package: libeufin-bank Architecture: all -Depends: openjdk-17-jdk-headless | openjdk-17-jdk | openjdk-18-jdk-headless | openjdk-18-jdk | openjdk-19-jdk-headless | openjdk-19-jdk | openjdk-20-jdk-headless | openjdk-20-jdk | openjdk-21-jdk-headless | openjdk-21-jdk, - ${misc:Depends} -Recommends: apache2 | nginx | httpd, - postgresql (>= 13.0) +Depends: + openjdk-17-jdk-headless | openjdk-17-jdk | openjdk-18-jdk-headless | openjdk-18-jdk | openjdk-19-jdk-headless | openjdk-19-jdk | openjdk-20-jdk-headless | openjdk-20-jdk | openjdk-21-jdk-headless | openjdk-21-jdk, + libeufin-common (= ${binary:Version}), + ${misc:Depends} +Recommends: + apache2 | nginx | httpd, + postgresql (>= 13.0) Description: Software package to provide a regional bank with optional EBICS access. + +Package: libeufin-nexus +Architecture: all +Depends: + openjdk-17-jdk-headless | openjdk-17-jdk | openjdk-18-jdk-headless | openjdk-18-jdk | openjdk-19-jdk-headless | openjdk-19-jdk | openjdk-20-jdk-headless | openjdk-20-jdk | openjdk-21-jdk-headless | openjdk-21-jdk, + libeufin-common (= ${binary:Version}), + ${misc:Depends} +Recommends: + apache2 | nginx | httpd, + postgresql (>= 13.0) +Description: Software package to access a bank accounts via the EBICS protocol. diff --git a/debian/etc/libeufin/libeufin-bank.conf b/debian/etc/libeufin/libeufin-bank.conf @@ -3,4 +3,4 @@ # FIXME: provide sane template here with # all applicable options and make sure it is # consistent with the reverse proxy configuration -# deployed by the Debian package -\ No newline at end of file +# deployed by the Debian package diff --git a/debian/etc/libeufin/libeufin-nexus.conf b/debian/etc/libeufin/libeufin-nexus.conf @@ -0,0 +1,6 @@ +# This is the main configuration entrypoint for the libeufin-nexus. + +# FIXME: provide sane template here with +# all applicable options and make sure it is +# consistent with the reverse proxy configuration +# deployed by the Debian package diff --git a/debian/libeufin-bank.install b/debian/libeufin-bank.install @@ -1,3 +1,17 @@ -debian/etc/* etc/ -debian/usr/* usr/ +debian/etc/libeufin/libeufin-bank.conf etc/libeufin/libeufin-bank.conf +debian/etc/libeufin/settings.json etc/libeufin/settings.json +usr/bin/libeufin-bank +usr/bin/libeufin-bank-dbinit +usr/bin/libeufin-bank-dbconfig +usr/bin/libeufin-tan-*.sh + +usr/share/libeufin/sql/libeufin-bank-*.sql +usr/share/libeufin/sql/libeufin-conversion-*.sql + +usr/share/libeufin/spa + +usr/share/libeufin/config.d/bank.conf + +# FIXME: This name should be prefixed! +usr/lib/bank-*.jar diff --git a/debian/libeufin-common.install b/debian/libeufin-common.install @@ -0,0 +1,2 @@ +usr/share/libeufin/config.d/currencies.conf +usr/share/libeufin/sql/versioning.sql diff --git a/debian/libeufin-nexus.install b/debian/libeufin-nexus.install @@ -0,0 +1,10 @@ +debian/etc/libeufin/libeufin-nexus.conf etc/libeufin/libeufin-nexus.conf + +usr/bin/libeufin-nexus + +usr/share/libeufin/sql/libeufin-nexus-*.sql + +usr/share/libeufin/config.d/nexus.conf + +# FIXME: This name should be prefixed! +usr/lib/nexus-*.jar diff --git a/debian/libeufin-nexus.libeufin-nexus-ebics-fetch.service b/debian/libeufin-nexus.libeufin-nexus-ebics-fetch.service @@ -0,0 +1,11 @@ +[Unit] +Description=LibEuFin Nexus EBICS fetch service. + +[Service] +User=libeufin-nexus +ExecStart=/usr/bin/libeufin-nexus ebics-fetch -c /etc/libeufin/libeufin-nexus.conf +Restart=on-failure +RestartSec=1s + +[Install] +WantedBy=multi-user.target diff --git a/debian/libeufin-nexus.libeufin-nexus-ebics-submit.service b/debian/libeufin-nexus.libeufin-nexus-ebics-submit.service @@ -0,0 +1,11 @@ +[Unit] +Description=LibEuFin Nexus EBICS submit service. + +[Service] +User=libeufin-nexus +ExecStart=/usr/bin/libeufin-nexus ebics-submit -c /etc/libeufin/libeufin-nexus.conf +Restart=on-failure +RestartSec=1s + +[Install] +WantedBy=multi-user.target diff --git a/debian/libeufin-nexus.postinst b/debian/libeufin-nexus.postinst @@ -0,0 +1,37 @@ +#!/bin/bash + +set -e + +. /usr/share/debconf/confmodule + +case "${1}" in +configure) + + if ! getent group libeufin-nexus >/dev/null; then + addgroup --quiet --system libeufin-nexus + fi + + # Create users if needed + if ! getent passwd libeufin-nexus >/dev/null; then + adduser --quiet \ + --system \ + --disabled-password \ + --no-create-home \ + --shell /bin/bash \ + --ingroup libeufin-nexus \ + --home /var/lib/libeufin-nexus \ + libeufin-nexus + fi + ;; + +abort-upgrade | abort-remove | abort-deconfigure) ;; + +*) + echo "postinst called with unknown argument \`${1}'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/libeufin-nexus.tmpfiles b/debian/libeufin-nexus.tmpfiles @@ -0,0 +1,2 @@ +# Type Path Mode UID GID Age Argument +d /var/lib/libeufin-nexus 0700 libeufin-bank libeufin-nexus - - diff --git a/debian/rules b/debian/rules @@ -10,10 +10,11 @@ DEV = FULLVER = $(DEB_VERSION_UPSTREAM)$(DEV) %: - dh ${@} + dh ${@} --no-parallel clean: rm -rf libeufin-bank-$(FULLVER) + rm -rf libeufin-nexus-$(FULLVER) # Override the build step, because we current need to do it manually # outside the regular Debian package build. @@ -22,7 +23,8 @@ override_dh_auto_build: override_dh_auto_test: true override_dh_auto_configure: - true + ./configure --prefix=/usr + # Override this step because it's very slow and likely # unnecessary for us. @@ -38,6 +40,8 @@ override_dh_installsystemd: # Need to specify units manually, since we have multiple # and dh_installsystemd by default only looks for "<package>.service". dh_installsystemd -plibeufin-bank --name=libeufin-bank --no-start --no-enable + dh_installsystemd -plibeufin-nexus --name=libeufin-nexus-ebics-submit --no-start --no-enable + dh_installsystemd -plibeufin-nexus --name=libeufin-nexus-ebics-fetch --no-start --no-enable # final invocation to generate daemon reload dh_installsystemd diff --git a/debian/usr/share/libeufin-bank/spa/settings.js b/debian/usr/share/libeufin-bank/spa/settings.js @@ -1 +0,0 @@ -../../../../etc/libeufin/settings.js -\ No newline at end of file