]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#4480] Another fix for mariadbd version in hammer.py
authorAndrei Pavel <andrei@isc.org>
Mon, 18 May 2026 09:31:15 +0000 (12:31 +0300)
committerAndrei Pavel <andrei@isc.org>
Mon, 18 May 2026 09:31:15 +0000 (12:31 +0300)
hammer.py

index f293fe744b9cd9f8558fcf26956123596d9f6e8d..209a01fdc548a8c94b41a6f1a779cda26bedbc1a 100755 (executable)
--- a/hammer.py
+++ b/hammer.py
@@ -1472,20 +1472,26 @@ def _configure_mysql(system, revision, features):
         execute('sudo rm -f ./bind-address.cnf')
 
     # If requested, configure TLS. Except for MariaDB >= 11.8 which introduces zero-config TLS.
+    mariadbd_version = None
+    using_mariadb = None
     zero_conf_tls = False
     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:2])
-            zero_conf_tls = float('11.8') <= float(mariadbd_version)
-            log.info('mariadbd_version: %s, zero_conf_tls: %s', mariadbd_version, zero_conf_tls)
+        using_mariadb = True
     else:
         _, 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:2])
+        using_mariadb = 'mariadb.service' in output
+    if using_mariadb:
+        return_code, output = execute('mariadbd --version', capture=True, raise_error=False)
+        if return_code == 0:
+            matches = re.search(r'Ver ([0-9]+\.[0-9]+)', output)
+            if matches is None:
+                log.error('Could not detect version of mariadbd')
+                sys.exit(1)
+            mariadbd_version = matches.group(1)
             zero_conf_tls = float('11.8') <= float(mariadbd_version)
-            log.info('mariadbd_version: %s, zero_conf_tls: %s', mariadbd_version, zero_conf_tls)
+    log.info(
+        'using_mariadb: %s, mariadbd_version: %s, zero_conf_tls: %s', using_mariadb, mariadbd_version, zero_conf_tls
+    )
     if not zero_conf_tls:
         cert_dir = '/etc/mysql/ssl'
         kea_cnf = os.path.join(conf_d, 'kea.cnf')