commit 42f005cc20a5b794926260e5a40982b467805ac5
parent 99264b0bd65fab6302dbab2c5965225d6887c7cd
Author: Florian Dold <florian@dold.me>
Date: Mon, 27 Nov 2023 11:57:59 +0100
debian packaging
Diffstat:
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