commit 9e29a5ee108c42b0ba15da5a47bb1cc93174a99d
parent 71ab65b7f3f6ad715d0cfc4d37245fa39f2ffac0
Author: Antoine A <>
Date: Tue, 22 Sep 2026 14:04:27 +0200
common: sync taler-rust
Diffstat:
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