components/cluster/pacemaker/Makefile | ●●●●● patch | view | raw | blame | history | |
components/cluster/pacemaker/manifests/sample-manifest.p5m | ●●●●● patch | view | raw | blame | history | |
components/cluster/pacemaker/pacemaker.p5m | ●●●●● patch | view | raw | blame | history | |
components/cluster/pacemaker/patches/10-no-common-attrd.patch | ●●●●● patch | view | raw | blame | history | |
components/cluster/pacemaker/patches/11-no-common-execd.patch | ●●●●● patch | view | raw | blame | history | |
components/cluster/pacemaker/pkg5 | ●●●●● patch | view | raw | blame | history |
components/cluster/pacemaker/Makefile
@@ -15,25 +15,27 @@ # BUILD_BITS= 64 USE_OPENSSL11= yes include ../../../make-rules/shared-macros.mk PATH= $(USRBINDIR64):$(PATH.gnu) COMPONENT_NAME= pacemaker COMPONENT_VERSION= 2.0.3 COMPONENT_FMRI= application/cluster/$(COMPONENT_NAME) COMPONENT_CLASSIFICATION= System/Services COMPONENT_SRC= $(COMPONENT_NAME)-Pacemaker-$(COMPONENT_VERSION) COMPONENT_ARCHIVE= $(COMPONENT_NAME)-$(COMPONENT_VERSION).tar.gz COMPONENT_ARCHIVE_HASH= sha256:ca228f7f9745c7bc1e31bebe30e51475e95a82d9010d281f1701f2e3310bd3fe COMPONENT_PROJECT_URL= https://www.clusterlab.org COMPONENT_ARCHIVE_URL= https://github.com/Clusterlabs/$(COMPONENT_NAME)/archive/Pacemaker-$(COMPONENT_VERSION).tar.gz COMPONENT_LICENSE= GPLv2,LGPLv2,BSD COMPONENT_SUMMARY= Pacemaker is an advanced, scalable high-availability cluster resource manager. COMPONENT_NAME= pacemaker COMPONENT_VERSION= 2.0.3 COMPONENT_REVISION= 1 COMPONENT_FMRI= application/cluster/$(COMPONENT_NAME) COMPONENT_CLASSIFICATION=System/Services COMPONENT_SRC= $(COMPONENT_NAME)-Pacemaker-$(COMPONENT_VERSION) COMPONENT_ARCHIVE= $(COMPONENT_NAME)-$(COMPONENT_VERSION).tar.gz COMPONENT_ARCHIVE_HASH= sha256:ca228f7f9745c7bc1e31bebe30e51475e95a82d9010d281f1701f2e3310bd3fe COMPONENT_PROJECT_URL= https://www.clusterlab.org COMPONENT_ARCHIVE_URL= https://github.com/Clusterlabs/$(COMPONENT_NAME)/archive/Pacemaker-$(COMPONENT_VERSION).tar.gz COMPONENT_LICENSE= GPLv2,LGPLv2,BSD COMPONENT_SUMMARY= Pacemaker is an advanced, scalable high-availability cluster resource manager. include $(WS_MAKE_RULES)/common.mk PYTHON_VERSION = 3.5 PYTHON_VERSION = 3.9 COMPONENT_PREP_ACTION=(cd $(SOURCE_DIR); $(CONFIG_SHELL) autogen.sh ) @@ -41,9 +43,11 @@ CONFIGURE_SCRIPT= $(@D)/configure CFLAGS += -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS -lssp_nonshared -lssp -lnsl -lssl -lcrypto CFLAGS += -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS \ -lssp_nonshared -lssp -lnsl -lssl \ -L$(OPENSSL_LIBDIR.64) -R$(OPENSSL_LIBDIR.64) -lcrypto CONFIGURE_OPTIONS.64 += --libexecdir=$(CONFIGURE_PREFIX)/lib CONFIGURE_OPTIONS += --libexecdir=$(CONFIGURE_PREFIX)/lib CONFIGURE_OPTIONS += --sysconfdir=/etc CONFIGURE_OPTIONS += --sharedstatedir=/var/hacluster CONFIGURE_OPTIONS += --localstatedir=/var @@ -89,16 +93,18 @@ '-e "/XPASS/p" ' \ '-e "/XFAIL/p" ' PKG_MACROS+= PYVER="$(PYTHON_VERSION)" # added manually, not found as dependency PERL_REQUIRED_PACKAGES += runtime/perl REQUIRED_PACKAGES += application/cluster/resource-agents REQUIRED_PACKAGES += library/libesmtp REQUIRED_PACKAGES += library/libstatgrab REQUIRED_PACKAGES += runtime/perl-522 REQUIRED_PACKAGES += system/management/snmp/net-snmp REQUIRED_PACKAGES += text/asciidoc # Auto-generated dependencies REQUIRED_PACKAGES += SUNWcs REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG) REQUIRED_PACKAGES += application/cluster/cluster-glue REQUIRED_PACKAGES += application/cluster/corosync REQUIRED_PACKAGES += compress/bzip2 @@ -108,13 +114,11 @@ REQUIRED_PACKAGES += library/libxml2 REQUIRED_PACKAGES += library/libxslt REQUIRED_PACKAGES += library/ncurses REQUIRED_PACKAGES += library/pcre2 REQUIRED_PACKAGES += library/security/openssl REQUIRED_PACKAGES += runtime/python-35 REQUIRED_PACKAGES += library/security/openssl-11 REQUIRED_PACKAGES += runtime/python-39 REQUIRED_PACKAGES += shell/bash REQUIRED_PACKAGES += shell/ksh93 REQUIRED_PACKAGES += system/library REQUIRED_PACKAGES += system/library/libdbus # Bogus dependency due to libssp REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG) REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG) components/cluster/pacemaker/manifests/sample-manifest.p5m
@@ -10,10 +10,11 @@ # # # Copyright 2018 <contributor> # Copyright 2022 <contributor> # set name=pkg.fmri value=pkg:/$(COMPONENT_FMRI)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) set name=pkg.human-version value=$(HUMAN_VERSION) set name=pkg.summary value="$(COMPONENT_SUMMARY)" set name=info.classification value="$(COMPONENT_CLASSIFICATION)" set name=info.upstream-url value=$(COMPONENT_PROJECT_URL) @@ -126,21 +127,21 @@ file path=usr/lib/pacemaker/pacemaker-schedulerd link path=usr/lib/pacemaker/pengine target=pacemaker-schedulerd link path=usr/lib/pacemaker/stonithd target=pacemaker-fenced file path=usr/lib/python3.5/vendor-packages/cts/CIB.py file path=usr/lib/python3.5/vendor-packages/cts/CM_common.py file path=usr/lib/python3.5/vendor-packages/cts/CM_corosync.py file path=usr/lib/python3.5/vendor-packages/cts/CTS.py file path=usr/lib/python3.5/vendor-packages/cts/CTSaudits.py file path=usr/lib/python3.5/vendor-packages/cts/CTSscenarios.py file path=usr/lib/python3.5/vendor-packages/cts/CTStests.py file path=usr/lib/python3.5/vendor-packages/cts/CTSvars.py file path=usr/lib/python3.5/vendor-packages/cts/__init__.py file path=usr/lib/python3.5/vendor-packages/cts/cib_xml.py file path=usr/lib/python3.5/vendor-packages/cts/environment.py file path=usr/lib/python3.5/vendor-packages/cts/logging.py file path=usr/lib/python3.5/vendor-packages/cts/patterns.py file path=usr/lib/python3.5/vendor-packages/cts/remote.py file path=usr/lib/python3.5/vendor-packages/cts/watcher.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CIB.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CM_common.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CM_corosync.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTS.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTSaudits.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTSscenarios.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTStests.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTSvars.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/__init__.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/cib_xml.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/environment.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/logging.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/patterns.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/remote.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/watcher.py file path=usr/sbin/attrd_updater file path=usr/sbin/cibadmin file path=usr/sbin/crm_attribute components/cluster/pacemaker/pacemaker.p5m
@@ -130,21 +130,21 @@ file path=usr/lib/pacemaker/pacemaker-schedulerd link path=usr/lib/pacemaker/pengine target=pacemaker-schedulerd link path=usr/lib/pacemaker/stonithd target=pacemaker-fenced file path=usr/lib/python3.5/vendor-packages/cts/CIB.py file path=usr/lib/python3.5/vendor-packages/cts/CM_common.py file path=usr/lib/python3.5/vendor-packages/cts/CM_corosync.py file path=usr/lib/python3.5/vendor-packages/cts/CTS.py file path=usr/lib/python3.5/vendor-packages/cts/CTSaudits.py file path=usr/lib/python3.5/vendor-packages/cts/CTSscenarios.py file path=usr/lib/python3.5/vendor-packages/cts/CTStests.py file path=usr/lib/python3.5/vendor-packages/cts/CTSvars.py file path=usr/lib/python3.5/vendor-packages/cts/__init__.py file path=usr/lib/python3.5/vendor-packages/cts/cib_xml.py file path=usr/lib/python3.5/vendor-packages/cts/environment.py file path=usr/lib/python3.5/vendor-packages/cts/logging.py file path=usr/lib/python3.5/vendor-packages/cts/patterns.py file path=usr/lib/python3.5/vendor-packages/cts/remote.py file path=usr/lib/python3.5/vendor-packages/cts/watcher.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CIB.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CM_common.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CM_corosync.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTS.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTSaudits.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTSscenarios.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTStests.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/CTSvars.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/__init__.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/cib_xml.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/environment.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/logging.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/patterns.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/remote.py file path=usr/lib/python$(PYVER)/vendor-packages/cts/watcher.py file path=usr/sbin/attrd_updater file path=usr/sbin/cibadmin file path=usr/sbin/crm_attribute components/cluster/pacemaker/patches/10-no-common-attrd.patch
New file @@ -0,0 +1,35 @@ From 77a79358cc72174cbba0dd44e313f6d06d96dbf4 Mon Sep 17 00:00:00 2001 From: Ken Gaillot <kgaillot@redhat.com> Date: Thu, 2 Jan 2020 09:51:52 -0600 Subject: [PATCH] Refactor: attrd: properly declare global variables as extern in header Restores buildability with GCC 10 --- daemons/attrd/pacemaker-attrd.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/daemons/attrd/pacemaker-attrd.h b/daemons/attrd/pacemaker-attrd.h index cc8e29ee1e..7b5ba03388 100644 --- a/daemons/attrd/pacemaker-attrd.h +++ b/daemons/attrd/pacemaker-attrd.h @@ -1,5 +1,7 @@ /* - * Copyright 2013-2018 Andrew Beekhof <andrew@beekhof.net> + * Copyright 2013-2020 the Pacemaker project contributors + * + * The version control history for this file may have further details. * * This source code is licensed under the GNU General Public License version 2 * or later (GPLv2+) WITHOUT ANY WARRANTY. @@ -106,8 +108,8 @@ typedef struct attribute_value_s { gboolean seen; } attribute_value_t; -crm_cluster_t *attrd_cluster; -GHashTable *attributes; +extern crm_cluster_t *attrd_cluster; +extern GHashTable *attributes; #define attrd_send_ack(client, id, flags) \ crm_ipcs_send_ack((client), (id), (flags), "ack", __FUNCTION__, __LINE__) components/cluster/pacemaker/patches/11-no-common-execd.patch
New file @@ -0,0 +1,62 @@ From 898d369f3bc770c0db2ad3973c204e6d11ec0e0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com> Date: Tue, 21 Jan 2020 18:24:44 +0100 Subject: [PATCH] Build: get ready for implicit -fno-common with upcoming GCC 10 Currently, -fno-common yields (and only yields, slightly restructured): > /usr/bin/ld: > pacemaker_execd-execd_commands.o: > pcmk/daemons/execd/pacemaker-execd.h:23: > multiple definition of `rsc_list'; > + pacemaker_execd-pacemaker-execd.o: > pcmk/daemons/execd/pacemaker-execd.h:23: > first defined here > > pacemaker_execd-execd_alerts.o: > pcmk/daemons/execd/pacemaker-execd.h:23: > multiple definition of `rsc_list'; > + pacemaker_execd-pacemaker-execd.o: > pcmk/daemons/execd/pacemaker-execd.h:23: > first defined here > > collect2: error: ld returned 1 exit status The problem is that a global (with external linkage) variable without explicit "extern" stands for "tentative definition" (as opposed to mere reference to existing object with external linkage otherwise), and these won't get automagically merged in -fno-common case (which is going to be a default in upcoming GCC 10). Solution is to explicitly add "extern" storage-class specifiers at what's indeed meant as non-tentative reference in the header files that are going to be included from various translation units that will end up in the same link. No more attempts at finding these was performed, just the only instance that got hit in practice (see above) receives this treatment, since manual work simply doesn't scale. Either a static analysis can be employed to mark other potential show-stoppers, or we'll just deal with the issues on case-by-case basis (with the gargantuan assistence of CI systems). References: https://gcc.gnu.org/gcc-10/porting_to.html#common --- daemons/execd/pacemaker-execd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daemons/execd/pacemaker-execd.h b/daemons/execd/pacemaker-execd.h index 4a52d91834..dab3ccdbee 100644 --- a/daemons/execd/pacemaker-execd.h +++ b/daemons/execd/pacemaker-execd.h @@ -20,7 +20,7 @@ # include <gnutls/gnutls.h> # endif -GHashTable *rsc_list; +extern GHashTable *rsc_list; typedef struct lrmd_rsc_s { char *rsc_id; components/cluster/pacemaker/pkg5
@@ -13,10 +13,10 @@ "library/libxml2", "library/libxslt", "library/ncurses", "library/pcre2", "library/security/openssl", "runtime/perl-522", "runtime/python-35", "library/security/openssl-11", "runtime/perl-534", "runtime/perl-536", "runtime/python-39", "shell/bash", "shell/ksh93", "system/library",