]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#4480] Fix MariaDB version detection
authorEmanuel Petr <manu@isc.org>
Tue, 5 May 2026 18:11:32 +0000 (20:11 +0200)
committerEmanuel Petr <manu@isc.org>
Wed, 6 May 2026 13:15:56 +0000 (13:15 +0000)
Version string was parsed with [0:1] instead of [0:2], yielding only
the major number (e.g. '11' instead of '11.8'), so zero_conf_tls was
never set correctly. Also, systemctl status exits with code 3 when
the service is inactive, causing an ExecutionError; fixed by adding
raise_error=False.

hammer.py

index c86ce499c819b550c6f1369ce5a2f5977e95834e..88c7b52163cc77a50c5f979cafddb9b7771b8e64 100755 (executable)
--- a/hammer.py
+++ b/hammer.py
@@ -1474,14 +1474,18 @@ def _configure_mysql(system, revision, features):
     if system in ['alpine', 'freebsd']:
         return_code, output = execute('mariadbd --version', capture=True, raise_error=False)
         if return_code == 0:
-            mariadbd_version = '.'.join(output.split(' ')[3].split('-')[0].split('.')[0:1])
+            mariadbd_version = '.'.join(output.split(' ')[3].split('-')[0].split('.')[0:2])
+            log.info('mariadbd_version: %s', mariadbd_version)
             zero_conf_tls = float('11.8') <= float(mariadbd_version)
+            log.info('zero_conf_tls: %s', zero_conf_tls)
     else:
-        _, output = execute('sudo systemctl status mysql', capture=True)
+        _, output = execute('sudo systemctl status mysql', capture=True, raise_error=False)
         first_line = output.splitlines()[0]
         if 'mariadb' in first_line.lower():
-            mariadbd_version = '.'.join(first_line.split(' ')[4].split('.')[0:1])
+            mariadbd_version = '.'.join(first_line.split(' ')[4].split('.')[0:2])
+            log.info('mariadbd_version: %s', mariadbd_version)
             zero_conf_tls = float('11.8') <= float(mariadbd_version)
+            log.info('zero_conf_tls: %s', zero_conf_tls)
     if not zero_conf_tls:
         cert_dir = '/etc/mysql/ssl'
         kea_cnf = os.path.join(conf_d, 'kea.cnf')