From e31b9ad10f240ce7f2612c9d2df0bdafd7629937 Mon Sep 17 00:00:00 2001 From: Kevin Adams Date: Tue, 13 Oct 2026 11:53:27 -0400 Subject: [PATCH] fix: pin truenas-proxmox-multipath to the exact base package version (#299) TrueNASMultipath.pm calls the base plugin's private helpers, and from 4.0.2 it also calls SUPER::volume_resize. So it only works with the truenas-proxmox built from the same commit. `>= 3.1.0` let apt pair 4.0.2 multipath with a 3.2.5 or 4.0.1 base, which fails at runtime. `(= ${VERSION})` makes apt upgrade or hold the two together. A CI check fails the build if the template ever drifts. Co-Authored-By: Claude Opus 5.5 (cherry picked from commit ccc4ae27e1980ca73aa3701e9971991ac4458d30) --- .github/workflows/build.yml | 8 ++++++++ README.md | 2 +- packaging/DEBIAN-multipath/control.j2 | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c58ba2c..95a731a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -271,6 +271,14 @@ jobs: echo "==> Package info (truenas-proxmox-multipath):" dpkg-deb --info "${{ steps.vars.outputs.multipath_deb_file }}" + # Multipath calls the base plugin's private helpers and SUPER:: methods, + # so it must be pinned to the exact base version built alongside it (#299). + VERSION="${{ steps.vars.outputs.version }}" + DEPENDS="$(dpkg-deb -f "${{ steps.vars.outputs.multipath_deb_file }}" Depends)" + echo "==> multipath Depends: ${DEPENDS}" + echo "${DEPENDS}" | grep -qF "truenas-proxmox (= ${VERSION})" \ + || { echo "::error::multipath must depend on truenas-proxmox (= ${VERSION})"; exit 1; } + - name: Upload package artifacts uses: actions/upload-artifact@v4 with: diff --git a/README.md b/README.md index 5fcc68e..dfe0cee 100644 --- a/README.md +++ b/README.md @@ -358,7 +358,7 @@ sudo apt update && sudo apt install truenas-proxmox-multipath -This installs `open-iscsi` and `multipath-tools` as dependencies and registers the `truenas-multipath` storage type. See [Configuration → Multipath Storage](#multipath-storage) for the extra field it needs, and [docs/architecture.md](docs/architecture.md) for how it differs from the default single-path `iscsi://` model. +This installs `open-iscsi` and `multipath-tools` as dependencies and registers the `truenas-multipath` storage type. From v4.0.2 on, the package requires the **exact same version** of `truenas-proxmox`, so apt always upgrades (or holds) the two together ([#299](https://github.com/TheGrandWazoo/freenas-proxmox/issues/299)). See [Configuration → Multipath Storage](#multipath-storage) for the extra field it needs, and [docs/architecture.md](docs/architecture.md) for how it differs from the default single-path `iscsi://` model. --- diff --git a/packaging/DEBIAN-multipath/control.j2 b/packaging/DEBIAN-multipath/control.j2 index 8d65a77..81ce793 100644 --- a/packaging/DEBIAN-multipath/control.j2 +++ b/packaging/DEBIAN-multipath/control.j2 @@ -2,7 +2,7 @@ Package: truenas-proxmox-multipath Version: ${VERSION} Architecture: all Maintainer: KSA Technologies, LLC -Depends: truenas-proxmox (>= 3.1.0), open-iscsi, multipath-tools +Depends: truenas-proxmox (= ${VERSION}), open-iscsi, multipath-tools Section: perl Priority: optional Homepage: https://github.com/TheGrandWazoo/truenas-proxmox