]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb: fix build against PCP 7.0.0
authorAlexander Bokovoy <ab@samba.org>
Wed, 3 Sep 2025 12:42:46 +0000 (15:42 +0300)
committerJule Anger <janger@samba.org>
Tue, 9 Sep 2025 11:40:16 +0000 (11:40 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15904

Signed-off-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Martin Schwenke <martins@samba.org>
Autobuild-Date(master): Mon Sep  8 04:47:37 UTC 2025 on atb-devel-224

(cherry picked from commit 83ff87f3dab0d6b22031614e9481b880f1dd99e8)

ctdb/utils/pmda/pmda_ctdb.c
ctdb/wscript

index 7ac8a3b38d1ef7095b22e3812ebd3e5a0985344f..9845f26defb17749aa8b3e3c18bb9678ee695dce 100644 (file)
 
 #define pmID_cluster(id)       id->cluster
 #define pmID_item(id)          id->item
+#endif
+
+#ifndef HAVE_PMGETPROGNAME
 #define pmGetProgname()                pmProgname
+#endif
+#ifndef HAVE_PMSETPROGNAME
 #define pmSetProgname(a)       __pmSetProgname(a)
 #endif
 
+#ifdef HAVE_STRUCT_PMRESULT
+#define pmdaResult pmResult
+#endif
+
 #include "domain.h"
 
 /*
@@ -450,7 +459,7 @@ err_out:
  * instance domain evaluation.
  */
 static int
-pmda_ctdb_fetch(int numpmid, pmID pmidlist[], pmResult **resp, pmdaExt *pmda)
+pmda_ctdb_fetch(int numpmid, pmID pmidlist[], pmdaResult **resp, pmdaExt *pmda)
 {
        int ret;
 
index e9cd89436a3630f003af4bb07e8cb38a7630172e..6ab68dce8702d012439cf5fbbb610930f884e108 100644 (file)
@@ -226,16 +226,17 @@ def configure(conf):
 
     have_pmda = False
     if Options.options.ctdb_pmda:
-        pmda_support = True
-
-        if not conf.CHECK_HEADERS('pcp/pmapi.h pcp/impl.h pcp/pmda.h',
-                                  together=True):
-            pmda_support = False
-        if not conf.CHECK_FUNCS_IN('pmProgname', 'pcp'):
-            pmda_support = False
-        if not conf.CHECK_FUNCS_IN('pmdaDaemon', 'pcp_pmda'):
-            pmda_support = False
-        if pmda_support:
+        checks = [conf.CHECK_HEADERS('pcp/pmapi.h pcp/impl.h pcp/pmda.h',
+                                     together=True),
+                  conf.CHECK_FUNCS_IN('pmdaDaemon', 'pcp_pmda')]
+
+        have_progname = [conf.CHECK_FUNCS_IN('pmProgname', 'pcp'),
+                         conf.CHECK_FUNCS_IN('pmGetProgname', 'pcp'),
+                         conf.CHECK_FUNCS_IN('pmSetProgname', 'pcp')]
+
+        conf.CHECK_TYPE_IN('struct pmResult', 'pcp/pmapi.h')
+
+        if all(checks) and any(have_progname):
             conf.CHECK_TYPE_IN('__pmID_int', 'pcp/pmapi.h pcp/impl.h')
             have_pmda = True
         else: