commit 58ed443667b14f3bece69dcf4648fe9d1e55d2d9
parent f6d45d6bce90d68f5917a2c374e9b2cc252f9009
Author: Antoine A <>
Date: Tue, 18 Nov 2025 18:29:33 +0100
magnet-bank: migrate deb logic from cargo-deb to dpkg-buildpackage
Diffstat:
18 files changed, 120 insertions(+), 120 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -5,4 +5,6 @@ configure
test-suite.log
target
dev.conf
-keys.json
-\ No newline at end of file
+keys.json
+debian/.debhelper
+debian/taler-magnet-bank
+\ No newline at end of file
diff --git a/Cargo.lock b/Cargo.lock
@@ -102,9 +102,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]]
name = "axum"
-version = "0.8.6"
+version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871"
+checksum = "5b098575ebe77cb6d14fc7f32749631a6e44edbef6b796f89b020e99ba20d425"
dependencies = [
"axum-core",
"bytes",
@@ -260,9 +260,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.5.51"
+version = "4.5.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5"
+checksum = "aa8120877db0e5c011242f96806ce3c94e0737ab8108532a76a3300a01db2ab8"
dependencies = [
"clap_builder",
"clap_derive",
@@ -270,9 +270,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.5.51"
+version = "4.5.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a"
+checksum = "02576b399397b659c26064fbc92a75fede9d18ffd5f80ca1cd74ddab167016e1"
dependencies = [
"anstream",
"anstyle",
@@ -1904,9 +1904,9 @@ dependencies = [
[[package]]
name = "serde_with"
-version = "3.15.1"
+version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04"
+checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1"
dependencies = [
"serde_core",
"serde_with_macros",
@@ -1914,9 +1914,9 @@ dependencies = [
[[package]]
name = "serde_with_macros"
-version = "3.15.1"
+version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955"
+checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b"
dependencies = [
"darling",
"proc-macro2",
diff --git a/Makefile b/Makefile
@@ -47,7 +47,7 @@ doc:
.PHONY: deb
deb:
- cargo deb -v -p taler-magnet-bank --deb-version=$(shell ./contrib/ci/version.sh)
+ dpkg-buildpackage -b -uc -us
.PHONY: ci
ci:
diff --git a/build-system/configure.py b/build-system/configure.py
@@ -5,5 +5,6 @@ from talerbuildconfig import *
b = BuildConfig()
b.enable_prefix()
b.enable_configmk()
-b.add_tool(PosixTool("find"))
+b.add_tool(PosixTool("rustup"))
+b.add_tool(PosixTool("cargo"))
b.run()
diff --git a/contrib/ci/Containerfile b/contrib/ci/Containerfile
@@ -18,15 +18,15 @@ RUN dpkg --add-architecture amd64 && \
postgresql \
mold \
clang \
+ debhelper-compat \
+ build-essential \
crossbuild-essential-arm64 \
crossbuild-essential-amd64 \
libc6-dev-arm64-cross \
libc6-dev-amd64-cross && \
# Add both amd64 and arm64 rustc targets
rustup target add x86_64-unknown-linux-gnu && \
- rustup target add aarch64-unknown-linux-gnu && \
- # Install cargo debian package tool
- cargo install cargo-deb
+ rustup target add aarch64-unknown-linux-gnu
WORKDIR /workdir
diff --git a/contrib/ci/jobs/3-deb/job.sh b/contrib/ci/jobs/3-deb/job.sh
@@ -4,19 +4,16 @@ set -exuo pipefail
# Update system
apt-get update -yq
apt-get upgrade -yq
-cargo install cargo-deb
# Build package
-export GIT_HASH=$(git rev-parse --short HEAD)
export VERSION="$(./contrib/ci/version.sh)"
echo "Building package version ${VERSION}"
-cargo deb -p taler-magnet-bank --deb-version ${VERSION} --target x86_64-unknown-linux-gnu
-cargo deb -p taler-magnet-bank --deb-version ${VERSION} --target aarch64-unknown-linux-gnu
+make deb
# Test package
./contrib/ci/jobs/3-deb/test.sh
# Move to artifact
-ls -alh /workdir/target/*/debian/*.deb
+ls -alh ../*.deb
mkdir -p /artifacts/magnet-bank/${CI_COMMIT_REF} # Variable comes from CI environment
-mv /workdir/target/*/debian/*.deb /artifacts/magnet-bank/${CI_COMMIT_REF}
-\ No newline at end of file
+mv ../*.deb /artifacts/magnet-bank/${CI_COMMIT_REF}
+\ No newline at end of file
diff --git a/contrib/ci/jobs/3-deb/test.sh b/contrib/ci/jobs/3-deb/test.sh
@@ -9,10 +9,10 @@ function step() {
USERS="taler-magnet-bank-httpd taler-magnet-bank-worker"
step "Install magnet-bank"
-dpkg -i /workdir/target/debian/taler-magnet-bank*$ARCH.deb
+dpkg -i ../taler-magnet-bank_*.deb
step "Install magnet-bank again"
-dpkg -i /workdir/target/debian/taler-magnet-bank*$ARCH.deb
+dpkg -i ../taler-magnet-bank_*.deb
step "Start postgres cluster"
sudo -u postgres pg_ctlcluster 17 main start
@@ -41,10 +41,10 @@ step "Remove magnet-bank"
dpkg --remove taler-magnet-bank
step "Reinstall magnet-bank"
-dpkg -i /workdir/target/*/debian/*$ARCH.deb
+dpkg -i ../taler-magnet-bank_*.deb
step "Purge magnet-bank:"
dpkg --purge taler-magnet-bank
step "Reinstall magnet-bank"
-dpkg -i /workdir/target/*/debian/*$ARCH.deb
-\ No newline at end of file
+dpkg -i ../taler-magnet-bank_*.deb
+\ No newline at end of file
diff --git a/debian/changelog b/debian/changelog
@@ -0,0 +1,5 @@
+taler-rust (0.0.0) unstable; urgency=medium
+
+ * Initial release.
+
+ -- antoine <antoine@lima-local> Tue, 18 Nov 2025 14:58:02 +0100
diff --git a/debian/control b/debian/control
@@ -0,0 +1,17 @@
+Source: taler-rust
+Section: net
+Priority: optional
+Maintainer: Taler Systems SA <deb@taler.net>
+Uploaders: Christian Grothoff <grothoff@gnu.org>, Florian Dold <dold@taler.net>
+Rules-Requires-Root: no
+Build-Depends:
+ debhelper-compat (= 13),
+ debhelper
+Standards-Version: 4.7.2
+Vcs-Git: https://git.taler.net/taler-rust.git
+Homepage: https://taler.net/
+
+Package: taler-magnet-bank
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: GNU Taler adapter for Magnet Bank
+\ No newline at end of file
diff --git a/debian/copyright b/debian/copyright
@@ -0,0 +1,9 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: taler-rust
+Upstream-Contact: Christian Grothoff <christian@grothoff.org>
+Source: https://git.taler.org/taler-rust.git/
+
+Files: *
+Copyright:
+ 2025 Taler Systems SA
+License: GPL-3+
diff --git a/debian/rules b/debian/rules
@@ -0,0 +1,22 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --no-parallel
+
+override_dh_auto_configure:
+ rustup default stable
+
+override_dh_auto_build:
+ cargo build --release
+
+override_dh_auto_test:
+ true
+
+override_dh_auto_install:
+ true
+
+override_dh_installsystemd:
+ dh_installsystemd --no-enable --no-start --no-stop-on-upgrade --name taler-magnet-bank-httpd
+ dh_installsystemd --no-enable --no-start --no-stop-on-upgrade --name taler-magnet-bank-worker
+ dh_installsystemd --no-enable --no-start --no-stop-on-upgrade --name taler-magnet-bank
+ dh_installsystemd
diff --git a/debian/taler-magnet-bank.conf b/debian/taler-magnet-bank.conf
@@ -0,0 +1,8 @@
+# Create services users
+u! taler-magnet-bank-worker - "Taler Magnet Bank Adapter worker" /var/lib/taler-magnet-bank
+u! taler-magnet-bank-httpd - "Taler Magnet Bank Adapter server" /var/lib/taler-magnet-bank
+
+# Create DB access group
+g taler-magnet-bank-db -
+m taler-magnet-bank-worker taler-magnet-bank-db
+m taler-magnet-bank-httpd taler-magnet-bank-db
+\ No newline at end of file
diff --git a/debian/taler-magnet-bank.install b/debian/taler-magnet-bank.install
@@ -0,0 +1,15 @@
+debian/etc/* /etc
+
+target/release/taler-magnet-bank /usr/bin
+
+contrib/taler-magnet-bank-dbconfig /usr/bin
+
+common/taler-common/db/versioning.sql /usr/share/taler-magnet-bank/sql/
+taler-magnet-bank/db/magnet-bank*.sql /usr/share/taler-magnet-bank/sql/
+
+taler-magnet-bank/magnet-bank.conf /usr/share/taler-magnet-bank/config.d/
+
+doc/prebuilt/man/taler-magnet-bank.1 /usr/share/man/man1/
+doc/prebuilt/man/taler-magnet-bank.conf.5 /usr/share/man/man5/
+
+debian/taler-magnet-bank.conf /usr/lib/sysusers.d/
+\ No newline at end of file
diff --git a/debian/taler-magnet-bank.postinst b/debian/taler-magnet-bank.postinst
@@ -1,9 +1,11 @@
-#!/bin/bash
+#!/bin/sh
set -e
-if command -v systemd-sysusers >/dev/null 2>&1; then
- systemd-sysusers
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -x "$(command -v systemd-sysusers)" ]; then
+ systemd-sysusers
+ fi
fi
#DEBHELPER#
diff --git a/debian/taler-magnet-bank.sysusers b/debian/taler-magnet-bank.sysusers
@@ -1,9 +0,0 @@
-# Create services users
-u! taler-magnet-bank-worker - "Taler Magnet Bank Adapter worker" /var/lib/taler-magnet-bank
-u! taler-magnet-bank-httpd - "Taler Magnet Bank Adapter server" /var/lib/taler-magnet-bank
-
-
-# Create DB access group
-g taler-magnet-bank-db -
-m taler-magnet-bank-worker taler-magnet-bank-db
-m taler-magnet-bank-httpd taler-magnet-bank-db
-\ No newline at end of file
diff --git a/debian/taler-magnet-bank.tmpfiles b/debian/taler-magnet-bank.tmpfiles
@@ -1,7 +1,7 @@
# Create home directory
-d /var/lib/taler-magnet-bank 0700 taler-magnet-bank-worker taler-magnet-bank-worker - -
+d$ /var/lib/taler-magnet-bank 0700 taler-magnet-bank-worker taler-magnet-bank-worker - -
# Update secret files permissions
-z /etc/taler-magnet-bank/secrets/magnet-bank-db.secret.conf 0460 root taler-magnet-bank-db - -
-z /etc/taler-magnet-bank/secrets/magnet-bank-httpd.secret.conf 0640 taler-magnet-bank-httpd root - -
-z /etc/taler-magnet-bank/secrets/magnet-bank-worker.secret.conf 0640 taler-magnet-bank-worker root - -
+z /etc/taler-magnet-bank/secrets/magnet-bank-db.secret.conf 0460 root taler-magnet-bank-db - -
+z /etc/taler-magnet-bank/secrets/magnet-bank-httpd.secret.conf 0640 taler-magnet-bank-httpd root - -
+z /etc/taler-magnet-bank/secrets/magnet-bank-worker.secret.conf 0640 taler-magnet-bank-worker root - -
diff --git a/taler-magnet-bank/Cargo.toml b/taler-magnet-bank/Cargo.toml
@@ -39,76 +39,4 @@ rand_core.workspace = true
owo-colors.workspace = true
[dev-dependencies]
-taler-test-utils.workspace = true
-
-[package.metadata.deb]
-name = "taler-magnet-bank"
-priority = "optional"
-section = "net"
-maintainer = "Taler Systems SA <deb@taler.net>"
-maintainer-scripts = "../debian/"
-systemd-units = [
- { unit-name = "taler-magnet-bank", enable = false, start = false, stop-on-upgrade = false },
- { unit-name = "taler-magnet-bank-httpd", enable = false, start = false, stop-on-upgrade = false },
- { unit-name = "taler-magnet-bank-worker", enable = false, start = false, stop-on-upgrade = false },
-]
-recommends = ["nginx | apache2 | httpd", "postgresql (>= 15.0)"]
-assets = [
- # Binary
- [
- "target/release/taler-magnet-bank",
- "/usr/bin/",
- "755",
- ],
- # Systemd config files
- [
- "../debian/taler-magnet-bank.tmpfiles",
- "/usr/lib/tmpfiles.d/taler-magnet-bank.conf",
- "644",
- ],
- [
- "../debian/taler-magnet-bank.sysusers",
- "/usr/lib/sysusers.d/taler-magnet-bank.conf",
- "644",
- ],
- # Scripts
- [
- "../contrib/taler-magnet-bank-dbconfig",
- "/usr/bin/",
- "755",
- ],
- # Sql
- [
- "../common/taler-common/db/versioning.sql",
- "/usr/share/taler-magnet-bank/sql/",
- "644",
- ],
- [
- "db/magnet-bank*.sql",
- "/usr/share/taler-magnet-bank/sql/",
- "644",
- ],
- # Default config
- [
- "magnet-bank.conf",
- "/usr/share/taler-magnet-bank/config.d/",
- "644",
- ],
- # Configs
- [
- "../debian/etc/**/*",
- "/etc",
- "644",
- ],
- # Man pages
- [
- "../doc/prebuilt/man/taler-magnet-bank.1",
- "/usr/share/man/man1/",
- "644",
- ],
- [
- "../doc/prebuilt/man/taler-magnet-bank.conf.5",
- "/usr/share/man/man5/",
- "644",
- ],
-]
+taler-test-utils.workspace = true
+\ No newline at end of file
diff --git a/taler-magnet-bank/src/lib.rs b/taler-magnet-bank/src/lib.rs
@@ -186,7 +186,7 @@ impl HuIban {
}
fn check_bban(bban: &str) -> Result<(), HuIbanErr> {
- let bban = bban.strip_suffix("00000000").unwrap_or(bban).as_bytes();
+ let bban = bban.as_bytes();
if bban.len() != 16 && bban.len() != 24 {
return Err(HuIbanErr::BbanSize(bban.len()));
} else if !bban.iter().all(u8::is_ascii_digit) {