From b86e0aa27f89f5165cd70dc85b42845e1b9d8913 Mon Sep 17 00:00:00 2001 From: Markus Hilger Date: Thu, 15 Oct 2026 17:46:17 +0200 Subject: [PATCH] Make webauthn and eficompressor optional server dependencies Neither is packaged by EPEL or Ubuntu, so the hard dependency made the server uninstallable there without --nodeps or a stub package. Both are already optional in the code: httpapi drops passkey support when webauthn does not import, and the Lenovo IMM2 BIOS settings path reports the missing module as unsupported functionality. Recommend them instead, as the SUSE branch already does for webauthn. See xcat2/confluent#192. --- confluent_server/builddeb | 6 ++++-- confluent_server/confluent_server.spec.tmpl | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/confluent_server/builddeb b/confluent_server/builddeb index 69d7ee01..a4b2cada 100755 --- a/confluent_server/builddeb +++ b/confluent_server/builddeb @@ -35,10 +35,12 @@ shopt -s extglob cd deb_dist/!(*.orig)/ if [ "$OPKGNAME" = "confluent-server" ]; then if grep noble /etc/os-release; then - sed -i 's/^\(Depends:.*\)/\1, confluent-client, python3-lxml, python3-eficompressor, python3-cryptography, python3-websocket, python3-msgpack, python3-aiohttp, python3-pyparsing, python3-asyncssh, python3-pysnmp-lextudio, python3-libarchive-c, confluent-vtbufferd, python3-netifaces, python3-yaml, python3-dateutil, python3-numpy, python3-pillow/' debian/control + sed -i 's/^\(Depends:.*\)/\1, confluent-client, python3-lxml, python3-cryptography, python3-websocket, python3-msgpack, python3-aiohttp, python3-pyparsing, python3-asyncssh, python3-pysnmp-lextudio, python3-libarchive-c, confluent-vtbufferd, python3-netifaces, python3-yaml, python3-dateutil, python3-numpy, python3-pillow/' debian/control else - sed -i 's/^\(Depends:.*\)/\1, confluent-client, python3-lxml, python3-eficompressor, python3-cryptography, python3-websocket, python3-msgpack, python3-aiohttp, python3-pyparsing, python3-asyncssh, python3-pysnmp4, python3-libarchive-c, confluent-vtbufferd, python3-netifaces, python3-yaml, python3-dateutil, python3-crypt-r, python3-numpy, python3-pillow/' debian/control + sed -i 's/^\(Depends:.*\)/\1, confluent-client, python3-lxml, python3-cryptography, python3-websocket, python3-msgpack, python3-aiohttp, python3-pyparsing, python3-asyncssh, python3-pysnmp4, python3-libarchive-c, confluent-vtbufferd, python3-netifaces, python3-yaml, python3-dateutil, python3-crypt-r, python3-numpy, python3-pillow/' debian/control fi + # only BIOS settings on IMM2-era Lenovo BMCs need it, and Ubuntu does not package it + sed -i '/^Depends:/a Recommends: python3-eficompressor' debian/control echo 'confluent_client confluent-client' >> debian/pydist-overrides fi diff --git a/confluent_server/confluent_server.spec.tmpl b/confluent_server/confluent_server.spec.tmpl index dc87e8e8..056be11e 100644 --- a/confluent_server/confluent_server.spec.tmpl +++ b/confluent_server/confluent_server.spec.tmpl @@ -24,10 +24,15 @@ Requires: confluent_vtbufferd Recommends: python3-legacycrypt %endif %if "%{dist}" == ".el9" -Requires: python3-asyncssh, python3-cryptography, confluent_client == %{version}, python3-pyparsing, python3-webauthn, python3-netifaces, python3-pyasn1 >= 0.2.3, python3-pysnmp >= 4.3.4, python3-lxml, python3-eficompressor, python3-setuptools, python3-dateutil, python3-cffi, python3-pyOpenSSL python3-msgpack python3-libarchive-c python3-yaml python3-yarl python3-aiohttp openssl iproute +Requires: python3-asyncssh, python3-cryptography, confluent_client == %{version}, python3-pyparsing, python3-netifaces, python3-pyasn1 >= 0.2.3, python3-pysnmp >= 4.3.4, python3-lxml, python3-setuptools, python3-dateutil, python3-cffi, python3-pyOpenSSL python3-msgpack python3-libarchive-c python3-yaml python3-yarl python3-aiohttp openssl iproute +# httpapi drops passkey support without webauthn, and only BIOS settings on +# IMM2-era Lenovo BMCs need eficompressor. Neither is in EPEL. +Recommends: python3-webauthn python3-eficompressor %else %if "%{dist}" == ".el10" -Requires: python3-asyncssh, python3-cryptography, confluent_client == %{version}, python3-pyparsing, python3-webauthn python3-psutil, python3-pyasn1 >= 0.2.3, python3-pysnmp >= 4.3.4, python3-lxml,python3-setuptools, python3-dateutil, python3-cffi, python3-pyOpenSSL python3-msgpack python3-libarchive-c python3-yaml openssl iproute python3-yarl python3-aiohttp +Requires: python3-asyncssh, python3-cryptography, confluent_client == %{version}, python3-pyparsing, python3-psutil, python3-pyasn1 >= 0.2.3, python3-pysnmp >= 4.3.4, python3-lxml,python3-setuptools, python3-dateutil, python3-cffi, python3-pyOpenSSL python3-msgpack python3-libarchive-c python3-yaml openssl iproute python3-yarl python3-aiohttp +# httpapi drops passkey support without webauthn, which is not in EPEL +Recommends: python3-webauthn %else %if 0%{?suse_version} # python3-dbm is split out there, PyYAML keeps its upstream capitalisation