From 2e341d81d93230bc25ac2aa2d269e7266572b405 Mon Sep 17 00:00:00 2001 From: 3np <3np@example.com> Date: Mon, 27 Oct 2025 09:26:51 +0000 Subject: [PATCH 1/4] install.sh: add --with-matplotlib flag to install matplotlib docker: include matplotlib in image --- Dockerfile | 2 +- install.sh | 8 ++++++++ pyproject.toml | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 30779464d..34c519f4f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends gnupg ca-certif python3-pip=* python3=* \ && pip3 config set global.break-system-packages true \ && pip3 install 'wheel>=0.35.1' \ - && ./install.sh --docker-install \ + && ./install.sh --docker-install --with-matplotlib \ && apt-get purge -y --autoremove python3-pip \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* diff --git a/install.sh b/install.sh index 4bc047534..4e40484f7 100755 --- a/install.sh +++ b/install.sh @@ -420,6 +420,9 @@ joinmarket_install () if [[ ${with_qt} == "1" ]]; then reqs='gui' fi + if [[ ${with_mpl} == "1" ]]; then + reqs+=',matplotlib' + fi if [[ ${develop} == "1" ]]; then reqs+=',test' fi @@ -476,6 +479,9 @@ parse_flags () --with-local-tor) build_local_tor='1' ;; + --with-matplotlib) + with_mpl='1' + ;; --with-qt) with_qt='1' ;; @@ -505,6 +511,7 @@ Options: --no-gpg-validation disable GPG key validation for dependencies --python, -p python version (only python3 versions are supported) --with-local-tor build Tor locally and autostart when needed +--with-matplotlib install matplotlib for graph rendering --with-qt build the Qt GUI --without-qt don't build the Qt GUI " @@ -567,6 +574,7 @@ main () no_gpg_validation='' use_os_deps_check='1' use_secp_check='1' + with_mpl='' with_qt='' with_jmvenv='1' with_sudo='1' diff --git a/pyproject.toml b/pyproject.toml index 398d2f951..ecb32cbb6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,6 +67,9 @@ gui = [ "joinmarket[services]", "joinmarket[jmqtui]", ] +matplotlib = [ + "matplotlib>=3.6.0,<4.0", +] [project.urls] repository = "https://github.com/JoinMarket-Org/joinmarket-clientserver.git" From d8a99dc398237dc5c16250633107ff3d3fed4880 Mon Sep 17 00:00:00 2001 From: 3np <3np@example.com> Date: Mon, 27 Oct 2025 09:26:55 +0000 Subject: [PATCH 2/4] docker: add python3-packaging needed by matplotlib; removed alongside python3-pip if not explicitly installed --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 34c519f4f..9d970ce56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /jm/clientserver COPY . . RUN apt-get update && apt-get install -y --no-install-recommends gnupg ca-certificates=* curl=* \ - python3-pip=* python3=* \ + python3-packaging=* python3-pip=* python3=* \ && pip3 config set global.break-system-packages true \ && pip3 install 'wheel>=0.35.1' \ && ./install.sh --docker-install --with-matplotlib \ From 6237e91fc275b58cc2e018af1d4d4124561557ef Mon Sep 17 00:00:00 2001 From: 3np <3np@example.com> Date: Mon, 27 Oct 2025 09:26:59 +0000 Subject: [PATCH 3/4] chore: pin matplotlib 3.10.6 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ecb32cbb6..9b2ce2252 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,7 +68,7 @@ gui = [ "joinmarket[jmqtui]", ] matplotlib = [ - "matplotlib>=3.6.0,<4.0", + "matplotlib==3.10.6", ] [project.urls] From 455630abf598a91387e1bbb21de937723e89413c Mon Sep 17 00:00:00 2001 From: 3np <3np@example.com> Date: Thu, 30 Oct 2025 02:40:49 +0000 Subject: [PATCH 4/4] docker: add build-arg WITH_MATPLOTLIB, default 0 --- Dockerfile | 3 ++- install.sh | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9d970ce56..e160769bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,11 +5,12 @@ WORKDIR /jm/clientserver COPY . . +ARG WITH_MATPLOTLIB='0' RUN apt-get update && apt-get install -y --no-install-recommends gnupg ca-certificates=* curl=* \ python3-packaging=* python3-pip=* python3=* \ && pip3 config set global.break-system-packages true \ && pip3 install 'wheel>=0.35.1' \ - && ./install.sh --docker-install --with-matplotlib \ + && ./install.sh --docker-install \ && apt-get purge -y --autoremove python3-pip \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* diff --git a/install.sh b/install.sh index 4e40484f7..045ab26d6 100755 --- a/install.sh +++ b/install.sh @@ -489,6 +489,7 @@ parse_flags () with_qt='0' ;; --docker-install) + with_mpl="${with_mpl:-${WITH_MATPLOTLIB}}" with_sudo='0' with_jmvenv='0' ;;