libeufin

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

commit 9e29a5ee108c42b0ba15da5a47bb1cc93174a99d
parent 71ab65b7f3f6ad715d0cfc4d37245fa39f2ffac0
Author: Antoine A <>
Date:   Tue, 22 Sep 2026 14:04:27 +0200

common: sync taler-rust

Diffstat:
M.gitmodules | 3---
MCargo.toml | 1+
MMakefile | 22++++++++++++++--------
Mbootstrap | 2+-
Mcontrib/ci/Containerfile | 41+++++++++++++++++++----------------------
Mdebian/control | 8+++++++-
Mdebian/rules | 10+++++-----
Mlibeufin-bank/Cargo.toml | 1+
Mlibeufin-ebics/Cargo.toml | 1+
Mlibeufin-ebisync/Cargo.toml | 1+
Mlibeufin-nexus/Cargo.toml | 1+
Mlibeufin-nexus/src/db/exchange.rs | 2+-
12 files changed, 52 insertions(+), 41 deletions(-)

diff --git a/.gitmodules b/.gitmodules @@ -1,6 +1,3 @@ -[submodule "build-system/taler-build-scripts"] - path = build-system/taler-build-scripts - url = ../build-common.git [submodule "doc/prebuilt"] path = doc/prebuilt url = ../taler-docs.git diff --git a/Cargo.toml b/Cargo.toml @@ -5,6 +5,7 @@ members = ["libeufin-bank", "libeufin-ebics", "libeufin-ebisync", "libeufin-nexu [workspace.package] version = "1.5.0" edition = "2024" +rust-version = "1.93" authors = ["Taler Systems SA <deb@taler.net>"] homepage = "https://taler.net/" repository = "https://git.taler.net/libeufin.git" diff --git a/Makefile b/Makefile @@ -1,5 +1,11 @@ # This Makefile has been placed under the public domain --include build-system/config.mk +-include .config.mk + +# Defaults for an unconfigured tree. config.mk is included above, so whatever +# ./configure resolved wins over these; a plain `make` without ./configure still +# works and uses whichever cargo is on $PATH. No rustup required either way. +cargo ?= cargo +prefix ?= /usr/local # Absolute DESTDIR or empty string if DESTDIR unset/empty abs_destdir=$(abspath $(DESTDIR)) @@ -13,7 +19,7 @@ all: build .PHONY: build build: - cargo build --release --bin libeufin-bank --bin libeufin-nexus --bin libeufin-ebisync + $(cargo) build --release --bin libeufin-bank --bin libeufin-nexus --bin libeufin-ebisync .PHONY: install-files install-files: @@ -49,12 +55,12 @@ install: build install-files .PHONY: check check: install-files - cargo test - cargo clippy --all-targets + $(cargo) test + $(cargo) clippy --all-targets .PHONY: doc doc: - cargo doc + $(cargo) doc .PHONY: deb deb: @@ -70,8 +76,8 @@ fmt: .PHONY: bank-bench-db bank-bench-db: install-files - cargo test -rp libeufin-bank bench_db -- --nocapture + $(cargo) test -rp libeufin-bank bench_db -- --nocapture .PHONY: nexus-bench-db nexus-bench-db: install-files - cargo test -rp libeufin-nexus bench_db -- --nocapture -\ No newline at end of file + $(cargo) test -rp libeufin-nexus bench_db -- --nocapture +\ No newline at end of file diff --git a/bootstrap b/bootstrap @@ -17,4 +17,4 @@ git config --local submodule.recurse true git submodule sync git submodule update --init rm -f ./configure -cp build-system/configure.sh ./configure +cp build-system/configure.py ./configure diff --git a/contrib/ci/Containerfile b/contrib/ci/Containerfile @@ -1,33 +1,30 @@ FROM docker.io/library/debian:trixie -ENV DEBIAN_FRONTEND=noninteractiveA +ENV DEBIAN_FRONTEND=noninteractive # Apt sync RUN apt-get update -yq && \ apt-get upgrade -yq && \ # Install build & test dependencies apt-get install -yq \ - rustup \ - git \ - python3 \ - sudo \ - man \ - make \ - postgresql \ - build-essential \ - git-buildpackage \ - unzip \ - po-debconf \ - build-essential \ - debhelper-compat \ - devscripts \ - curl - -# Install dependencies provided by other Taler repositories. -RUN curl -sSL https://taler.net/taler-systems.gpg \ - -o /etc/apt/keyrings/taler-systems.gpg && \ - echo 'deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/debian trixie-testing main' \ - > /etc/apt/sources.list.d/taler.list + git \ + python3 \ + sudo \ + man \ + make \ + postgresql \ + debhelper \ + build-essential \ + git-buildpackage && \ + # Rust from trixie-backports: trixie itself ships 1.85, this tree needs + # >= 1.93 (std::fmt::from_fn). Backports keeps the base image -- and + # therefore the glibc the .deb is linked against -- on stable, which + # matters because the artifacts are published to a trixie repository. + echo 'deb http://deb.debian.org/debian trixie-backports main' \ + > /etc/apt/sources.list.d/backports.list && \ + apt-get update -yq && \ + apt-get install -yq -t trixie-backports rustc cargo rust-clippy && \ + rm -rf /var/lib/apt/lists/* WORKDIR /workdir diff --git a/debian/control b/debian/control @@ -5,7 +5,13 @@ Maintainer: Taler Systems SA <deb@taler.net> Uploaders: Christian Grothoff <grothoff@gnu.org>, Florian Dold <dold@taler.net> Build-Depends: debhelper-compat (= 13), - rustup + cargo | rustup, +# 1.93, not 1.85: taler-common/taler-api use std::fmt::from_fn, stabilised in +# 1.93 (let-chains, 1.88, and Vec::pop_if, 1.86, put the floor above trixie's +# 1.85 already). Use trixie-backports for the packaged compiler, or rustup +# with a toolchain >= 1.93 as in the taler-deployment build images. +# Cargo.toml enforces the compiler minimum for either toolchain source. + rustc (>= 1.93) | rustup Standards-Version: 4.7.2 Vcs-Git: https://git.taler.net/libeufin.git Homepage: https://taler.net/ diff --git a/debian/rules b/debian/rules @@ -4,7 +4,11 @@ dh $@ --no-parallel override_dh_auto_configure: - rustup default stable + # Nothing to configure: debian/*.install hardcodes the /usr paths and the + # build only needs a cargo from $PATH (see Build-Depends). The step is + # still overridden so that dh does not hand ./configure the autoconf-style + # arguments it does not accept. + true override_dh_auto_build: make build @@ -15,10 +19,6 @@ override_dh_auto_test: override_dh_auto_install: true -# Override this step because it's very slow and likely -# unnecessary for us. -override_dh_strip_nondeterminism: - true override_dh_installsystemd: dh_installsystemd --no-start --no-enable --no-stop-on-upgrade -p libeufin-bank --name libeufin-bank-gc diff --git a/libeufin-bank/Cargo.toml b/libeufin-bank/Cargo.toml @@ -6,6 +6,7 @@ authors.workspace = true homepage.workspace = true repository.workspace = true license-file.workspace = true +rust-version.workspace = true [features] test-utils = [] diff --git a/libeufin-ebics/Cargo.toml b/libeufin-ebics/Cargo.toml @@ -6,6 +6,7 @@ authors.workspace = true homepage.workspace = true repository.workspace = true license-file.workspace = true +rust-version.workspace = true [features] codegen = ["dep:calamine"] diff --git a/libeufin-ebisync/Cargo.toml b/libeufin-ebisync/Cargo.toml @@ -6,6 +6,7 @@ authors.workspace = true homepage.workspace = true repository.workspace = true license-file.workspace = true +rust-version.workspace = true [dependencies] libeufin-ebics.workspace = true diff --git a/libeufin-nexus/Cargo.toml b/libeufin-nexus/Cargo.toml @@ -6,6 +6,7 @@ authors.workspace = true homepage.workspace = true repository.workspace = true license-file.workspace = true +rust-version.workspace = true [dependencies] libeufin-ebics.workspace = true diff --git a/libeufin-nexus/src/db/exchange.rs b/libeufin-nexus/src/db/exchange.rs @@ -96,7 +96,7 @@ pub async fn incoming_history( params, listen, || { - // What does the order do when it's finaly complete + // What does the order do when it's finally complete QueryBuilder::new( " SELECT