!3 Upgrade the pacemaker package version to 2.0.3-1

From: @jxy_git
Reviewed-by: @yangzhao_kl,@hjimmy
Signed-off-by: @yangzhao_kl,@hjimmy
This commit is contained in:
openeuler-ci-bot 2020-11-13 21:00:32 +08:00 committed by Gitee
commit 0e76f4e521
6 changed files with 141 additions and 263 deletions

View File

@ -0,0 +1,44 @@
From 47ecd21b9acb108eb4e024c51cdefadac2d74a64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
Date: Tue, 26 Nov 2019 20:07:36 +0100
Subject: [PATCH] Build: fix unability to build with Inkscape 1.0 beta
version(s)
...and possibly beyond.
References:
https://gitlab.com/inkscape/inbox/issues/1244
---
doc/Makefile.am | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 257f5cdf5..d8c846830 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -84,14 +84,19 @@ PNGS = $(PNGS_ORIGINAL) $(PNGS_GENERATED)
graphics: $(PNGS)
+
+# two-phased attempts for Inkscape pre-1.0 and 1.0+ (upcoming) discrepancy
%.png: %.svg
- $(AM_V_GEN)$(INKSCAPE) --file=$< --export-dpi=90 -C --export-png=$@ $(PCMK_quiet)
+ $(AM_V_GEN) { $(INKSCAPE) --export-dpi=90 -C --export-png=$@ $< \
+ || $(INKSCAPE) --export-dpi=90 -C --export-file=$@ $<; } $(PCMK_quiet)
%-small.png: %.svg
- $(AM_V_GEN)$(INKSCAPE) --file=$< --export-dpi=45 -C --export-png=$@ $(PCMK_quiet)
+ $(AM_V_GEN) { $(INKSCAPE) --export-dpi=45 -C --export-png=$@ $< \
+ || $(INKSCAPE) --export-dpi=45 -C --export-file=$@ $<; } $(PCMK_quiet)
%-large.png: %.svg
- $(AM_V_GEN)$(INKSCAPE) --file=$< --export-dpi=180 -C --export-png=$@ $(PCMK_quiet)
+ $(AM_V_GEN) { $(INKSCAPE) --export-dpi=180 -C --export-png=$@ $< \
+ || $(INKSCAPE) --export-dpi=180 -C --export-file=$@ $<; } $(PCMK_quiet)
if IS_ASCIIDOC
ASCIIDOC_HTML_ARGS = --unsafe --backend=xhtml11
--
2.24.0

BIN
pacemaker-2.0.3.tar.gz Normal file

Binary file not shown.

Binary file not shown.

View File

@ -5,7 +5,7 @@
%global gname haclient %global gname haclient
## Where to install Pacemaker documentation ## Where to install Pacemaker documentation
%global pcmk_docdir %{_docdir}/%{name}-doc %global pcmk_docdir %{_docdir}/%{name}
## GitHub entity that distributes source (for ease of using a fork) ## GitHub entity that distributes source (for ease of using a fork)
%global github_owner ClusterLabs %global github_owner ClusterLabs
@ -13,22 +13,19 @@
## Upstream pacemaker version, and its package version (specversion ## Upstream pacemaker version, and its package version (specversion
## can be incremented to build packages reliably considered "newer" ## can be incremented to build packages reliably considered "newer"
## than previously built packages with the same pcmkversion) ## than previously built packages with the same pcmkversion)
%global pcmkversion 2.0.2 %global pcmkversion 2.0.3
%global specversion 3 %global specversion 1
## Upstream commit (or git tag, such as "Pacemaker-" plus the ## Upstream commit (or git tag, such as "Pacemaker-" plus the
## {pcmkversion} macro for an official release) to use for this package ## {pcmkversion} macro for an official release) to use for this package
%global commit 744a30d655c9fbd66ad6e103697db0283bb90779 %global commit Pacemaker-2.0.3
## Since git v2.11, the extent of abbreviation is autoscaled by default ## Since git v2.11, the extent of abbreviation is autoscaled by default
## (used to be constant of 7), so we need to convey it for non-tags, too. ## (used to be constant of 7), so we need to convey it for non-tags, too.
%global commit_abbrev 7 %global commit_abbrev 9
## Python major version to use (2, 3, or 0 for auto-detect)
%global python_major 0
## Nagios source control identifiers ## Nagios source control identifiers
%global nagios_name nagios-agents-metadata %global nagios_name nagios-agents-metadata
%global nagios_hash 105ab8a %global nagios_hash 105ab8a7b2c16b9a29cf1c1596b80136eeef332b
# Define globals for convenient use later # Define globals for convenient use later
@ -54,37 +51,12 @@
## less likely to have working versions of the documentation tools ## less likely to have working versions of the documentation tools
%define bleeding %(test ! -e /etc/yum.repos.d/fedora-rawhide.repo; echo $?) %define bleeding %(test ! -e /etc/yum.repos.d/fedora-rawhide.repo; echo $?)
## Whether this platform defaults to using systemd as an init system
## (needs to be evaluated prior to BuildRequires being enumerated and
## installed as it's intended to conditionally select some of these, and
## for that there are only few indicators with varying reliability:
## - presence of systemd-defined macros (when building in a full-fledged
## environment, which is not the case with ordinary mock-based builds)
## - systemd-aware rpm as manifested with the presence of particular
## macro (rpm itself will trivially always be present when building)
## - existence of /usr/lib/os-release file, which is something heavily
## propagated by systemd project
## - when not good enough, there's always a possibility to check
## particular distro-specific macros (incl. version comparison)
%define systemd_native (%{?_unitdir:1}%{!?_unitdir:0}%{nil \
} || %{?__transaction_systemd_inhibit:1}%{!?__transaction_systemd_inhibit:0}%{nil \
} || %(test -f /usr/lib/os-release; test $? -ne 0; echo $?))
# Even though we pass @SYSTEM here, Pacemaker is still an exception to the
# crypto policies because it adds "+ANON-DH" for CIB remote commands and
# "+DHE-PSK:+PSK" for Pacemaker Remote connections. This is currently
# required for the respective functionality.
## Base GnuTLS cipher priorities (presumably only the initial, required keyword) ## Base GnuTLS cipher priorities (presumably only the initial, required keyword)
## overridable with "rpmbuild --define 'pcmk_gnutls_priorities PRIORITY-SPEC'" ## overridable with "rpmbuild --define 'pcmk_gnutls_priorities PRIORITY-SPEC'"
%define gnutls_priorities %{?pcmk_gnutls_priorities}%{!?pcmk_gnutls_priorities:@SYSTEM} %define gnutls_priorities %{?pcmk_gnutls_priorities}%{!?pcmk_gnutls_priorities:@SYSTEM}
# Python-related definitions # Python-related definitions
## Use Python 3 on certain platforms if major version not specified
%if %{?python_major} == 0
%global python_major 3
%endif
## Turn off auto-compilation of Python files outside Python specific paths, ## Turn off auto-compilation of Python files outside Python specific paths,
## so there's no risk that unexpected "__python" macro gets picked to do the ## so there's no risk that unexpected "__python" macro gets picked to do the
## RPM-native byte-compiling there (only "{_datadir}/pacemaker/tests" affected) ## RPM-native byte-compiling there (only "{_datadir}/pacemaker/tests" affected)
@ -99,44 +71,17 @@
%endif %endif
## Values that differ by Python major version ## Values that differ by Python major version
%if 0%{?python_major} > 2 %global python_path /usr/bin/python%{?python3_pkgversion}%{!?python3_pkgversion:3}
%global python_name python3 %global python_pkg python3
%global python_path %{?__python3}%{!?__python3:/usr/bin/python%{?python3_pkgversion}%{!?python3_pkgversion:3}} %global python_min 3.2
%define python_site %{?python3_sitelib}%{!?python3_sitelib:%( %define py_site %{?python3_sitelib}%{!?python3_sitelib:%(
%{python_path} -c 'from distutils.sysconfig import get_python_lib as gpl; print(gpl(1))' 2>/dev/null)} python3 -c 'from distutils.sysconfig import get_python_lib as gpl; print(gpl(1))' 2>/dev/null)}
%else
%if 0%{?python_major} > 1
%global python_name python2
%global python_path %{?__python2}%{!?__python2:/usr/bin/python%{?python2_pkgversion}%{!?python2_pkgversion:2}}
%define python_site %{?python2_sitelib}%{!?python2_sitelib:%(
%{python_path} -c 'from distutils.sysconfig import get_python_lib as gpl; print(gpl(1))' 2>/dev/null)}
%else
%global python_name python
%global python_path %{?__python}%{!?__python:/usr/bin/python%{?python_pkgversion}}
%define python_site %{?python_sitelib}%{!?python_sitelib:%(
python -c 'from distutils.sysconfig import get_python_lib as gpl; print(gpl(1))' 2>/dev/null)}
%endif
%endif
# Definitions for backward compatibility with older RPM versions
## Ensure the license macro behaves consistently (older RPM will otherwise
## overwrite it once it encounters "License:"). Courtesy Jason Tibbitts:
## https://pkgs.fedoraproject.org/cgit/rpms/epel-rpm-macros.git/tree/macros.zzz-epel?h=el6&id=e1adcb77
%if !%{defined _licensedir}
%define description %{lua:
rpm.define("license %doc")
print("%description")
}
%endif
# Define conditionals so that "rpmbuild --with <feature>" and # Define conditionals so that "rpmbuild --with <feature>" and
# "rpmbuild --without <feature>" can enable and disable specific features # "rpmbuild --without <feature>" can enable and disable specific features
## Add option to enable support for stonith/external fencing agents ## NOTE: skip --with stonith
%bcond_with stonithd
## Add option to create binaries suitable for use with profiling tools ## Add option to create binaries suitable for use with profiling tools
%bcond_with profiling %bcond_with profiling
@ -144,15 +89,15 @@
## Add option to create binaries with coverage analysis ## Add option to create binaries with coverage analysis
%bcond_with coverage %bcond_with coverage
## Add option to generate documentation (requires Publican, Asciidoc and Inkscape) ## Add option to skip generating documentation
%bcond_with doc ## (the build tools aren't available everywhere)
%bcond_without doc
## Add option to prefix package version with "0." ## Add option to prefix package version with "0."
## (so later "official" packages will be considered updates) ## (so later "official" packages will be considered updates)
%bcond_with pre_release %bcond_with pre_release
## Add option to ship Upstart job files ## NOTE: skip --with upstart_job
%bcond_with upstart_job
## Add option to turn off hardening of libraries and daemon executables ## Add option to turn off hardening of libraries and daemon executables
%bcond_without hardening %bcond_without hardening
@ -183,90 +128,72 @@
%if 0%{tag_release} %if 0%{tag_release}
%define pcmk_release %{specversion} %define pcmk_release %{specversion}
%else %else
# Never use the short commit in a RHEL release number %define pcmk_release %{specversion}.%{shortcommit}.git
%define pcmk_release %{specversion}
%endif %endif
%endif %endif
Name: pacemaker Name: pacemaker
Summary: Scalable High-Availability cluster resource manager Summary: Scalable High-Availability cluster resource manager
Version: %{pcmkversion} Version: %{pcmkversion}
Release: %{pcmk_release}%{?dist}.2 Release: %{pcmk_release}%{?dist}
%if %{defined _unitdir}
License: GPLv2+ and LGPLv2+ License: GPLv2+ and LGPLv2+
%else
# initscript is Revised BSD
License: GPLv2+ and LGPLv2+ and BSD
%endif
Url: http://www.clusterlabs.org Url: http://www.clusterlabs.org
Group: System Environment/Daemons
# Hint: use "spectool -s 0 pacemaker.spec" (rpmdevtools) to check the final URL: # Hint: use "spectool -s 0 pacemaker.spec" (rpmdevtools) to check the final URL
# https://github.com/ClusterLabs/pacemaker/archive/e91769e5a39f5cb2f7b097d3c612368f0530535e/pacemaker-e91769e.tar.gz
Source0: https://github.com/%{github_owner}/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz Source0: https://github.com/%{github_owner}/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz
Source1: nagios-agents-metadata-%{nagios_hash}.tar.gz Source1: https://github.com/%{github_owner}/%{nagios_name}/archive/%{nagios_hash}/%{nagios_name}-%{nagios_hash}.tar.gz
# ---
# upstream commits Patch0: Build-fix-unability-to-build-with-Inkscape-1.0-beta-.patch
Requires: resource-agents Requires: resource-agents
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-cluster-libs%{?_isa} = %{version}-%{release} Requires: %{name}-cluster-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release}
%if !%{defined _unitdir}
Requires: procps-ng
Requires: psmisc
%endif
%{?systemd_requires} %{?systemd_requires}
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64 %{arm} # Pacemaker requires a minimum Python functionality
Requires: %{python_pkg} >= %{python_min}
Requires: %{python_path} BuildRequires: %{python_pkg}-devel >= %{python_min}
BuildRequires: %{python_name}-devel
# Pacemaker requires a minimum libqb functionality # Pacemaker requires a minimum libqb functionality
Requires: libqb >= 0.17.0 Requires: libqb >= 0.13.0
BuildRequires: libqb-devel >= 0.17.0 BuildRequires: libqb-devel >= 0.13.0
# Basics required for the build (even if usually satisfied through other BRs) # Basics required for the build (even if usually satisfied through other BRs)
BuildRequires: coreutils findutils grep sed BuildRequires: coreutils findutils grep sed
# Required for core functionality # Required for core functionality
BuildRequires: automake autoconf gcc libtool pkgconfig libtool-devel BuildRequires: automake autoconf gcc libtool pkgconfig libtool-ltdl-devel
BuildRequires: pkgconfig(glib-2.0) >= 2.16 BuildRequires: pkgconfig(glib-2.0) >= 2.16
#BuildRequires: libxml2-devel libxslt-devel libuuid-devel BuildRequires: libxml2-devel libxslt-devel libuuid-devel
BuildRequires: libxml2-devel libxslt-devel util-linux-devel
BuildRequires: bzip2-devel BuildRequires: bzip2-devel
# Enables optional functionality # Enables optional functionality
BuildRequires: ncurses-devel docbook-style-xsl BuildRequires: ncurses-devel docbook-style-xsl
BuildRequires: help2man gnutls-devel pam-devel pkgconfig(dbus-1) BuildRequires: help2man gnutls-devel pam-devel pkgconfig(dbus-1)
%if %{systemd_native}
BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(systemd)
%endif
# RH patches are created by git, so we need git to apply them
BuildRequires: git
Requires: corosync >= 2.0.0 Requires: corosync >= 2.0.0
BuildRequires: corosynclib-devel >= 2.0.0 BuildRequires: corosynclib-devel >= 2.0.0
#XXX
%if %{with stonithd} #BuildRequires: pkgconfig(libcpg)
BuildRequires: cluster-glue-libs-devel #BuildRequires: pkgconfig(libcfg)
%endif
## (note no avoiding effect when building through non-customized mock) ## (note no avoiding effect when building through non-customized mock)
%if !%{bleeding} #%%if !%%{bleeding}
%if %{with doc} #%%if %%{with doc}
BuildRequires: inkscape asciidoc publican #BuildRequires: asciidoc inkscape publican
%endif #%%endif
%endif #%%endif
# git-style patch application
BuildRequires: git
Provides: pcmk-cluster-manager = %{version}-%{release} Provides: pcmk-cluster-manager = %{version}-%{release}
Provides: pcmk-cluster-manager%{?_isa} = %{version}-%{release} Provides: pcmk-cluster-manager%{?_isa} = %{version}-%{release}
# Bundled bits # Pacemaker uses the crypto/md5 module from gnulib
## Pacemaker uses the crypto/md5-buffer module from gnulib
Provides: bundled(gnulib) Provides: bundled(gnulib)
%description %description
@ -281,16 +208,15 @@ when related resources fail and can be configured to periodically check
resource health. resource health.
Available rpmbuild rebuild options: Available rpmbuild rebuild options:
--with(out) : coverage doc stonithd hardening pre_release profiling --with(out) : coverage doc hardening pre_release profiling
%package cli %package cli
License: GPLv2+ and LGPLv2+ License: GPLv2+ and LGPLv2+
Summary: Command line tools for controlling Pacemaker clusters Summary: Command line tools for controlling Pacemaker clusters
Group: System Environment/Daemons
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
#Recommends: pcmk-cluster-manager = %{version}-%{release} %if 0%{?fedora} > 22 || 0%{?rhel} > 7
Requires: tar Recommends: pcmk-cluster-manager = %{version}-%{release}
Requires: bzip2 %endif
Requires: perl-TimeDate Requires: perl-TimeDate
Requires: procps-ng Requires: procps-ng
Requires: psmisc Requires: psmisc
@ -307,7 +233,6 @@ be part of the cluster.
%package libs %package libs
License: GPLv2+ and LGPLv2+ License: GPLv2+ and LGPLv2+
Summary: Core Pacemaker libraries Summary: Core Pacemaker libraries
Group: System Environment/Daemons
Requires(pre): shadow-utils Requires(pre): shadow-utils
Requires: %{name}-schemas = %{version}-%{release} Requires: %{name}-schemas = %{version}-%{release}
# sbd 1.4.0+ supports the libpe_status API for pe_working_set_t # sbd 1.4.0+ supports the libpe_status API for pe_working_set_t
@ -323,7 +248,6 @@ nodes and those just running the CLI tools.
%package cluster-libs %package cluster-libs
License: GPLv2+ and LGPLv2+ License: GPLv2+ and LGPLv2+
Summary: Cluster Libraries used by Pacemaker Summary: Cluster Libraries used by Pacemaker
Group: System Environment/Daemons
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description cluster-libs %description cluster-libs
@ -334,20 +258,11 @@ The %{name}-cluster-libs package contains cluster-aware shared
libraries needed for nodes that will form part of the cluster nodes. libraries needed for nodes that will form part of the cluster nodes.
%package remote %package remote
%if %{defined _unitdir}
License: GPLv2+ and LGPLv2+ License: GPLv2+ and LGPLv2+
%else
# initscript is Revised BSD
License: GPLv2+ and LGPLv2+ and BSD
%endif
Summary: Pacemaker remote daemon for non-cluster nodes Summary: Pacemaker remote daemon for non-cluster nodes
Group: System Environment/Daemons
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release}
Requires: resource-agents Requires: resource-agents
%if !%{defined _unitdir}
Requires: procps-ng
%endif
# -remote can be fully independent of systemd # -remote can be fully independent of systemd
%{?systemd_ordering}%{!?systemd_ordering:%{?systemd_requires}} %{?systemd_ordering}%{!?systemd_ordering:%{?systemd_requires}}
Provides: pcmk-cluster-manager = %{version}-%{release} Provides: pcmk-cluster-manager = %{version}-%{release}
@ -364,10 +279,9 @@ nodes not running the full corosync/cluster stack.
%package libs-devel %package libs-devel
License: GPLv2+ and LGPLv2+ License: GPLv2+ and LGPLv2+
Summary: Pacemaker development package Summary: Pacemaker development package
Group: Development/Libraries
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-cluster-libs%{?_isa} = %{version}-%{release} Requires: %{name}-cluster-libs%{?_isa} = %{version}-%{release}
Requires: util-linux-devel%{?_isa} libtool-devel%{?_isa} Requires: libtool-ltdl-devel%{?_isa} libuuid-devel%{?_isa}
Requires: libxml2-devel%{?_isa} libxslt-devel%{?_isa} Requires: libxml2-devel%{?_isa} libxslt-devel%{?_isa}
Requires: bzip2-devel%{?_isa} glib2-devel%{?_isa} Requires: bzip2-devel%{?_isa} glib2-devel%{?_isa}
Requires: libqb-devel%{?_isa} Requires: libqb-devel%{?_isa}
@ -383,27 +297,20 @@ for developing tools for Pacemaker.
%package cts %package cts
License: GPLv2+ and LGPLv2+ License: GPLv2+ and LGPLv2+
Summary: Test framework for cluster-related technologies like Pacemaker Summary: Test framework for cluster-related technologies like Pacemaker
Group: System Environment/Daemons Requires: %{python_pkg} >= %{python_min}
Requires: %{python_path}
Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release}
Requires: procps-ng Requires: procps-ng
Requires: psmisc Requires: psmisc
BuildArch: noarch BuildArch: noarch
# systemd python bindings are separate package in some distros Requires: %{python_pkg}-systemd
%if %{defined systemd_requires}
Requires: %{python_name}-systemd
%endif
%description cts %description cts
Test framework for cluster-related technologies like Pacemaker Test framework for cluster-related technologies like Pacemaker
%package doc %package doc
License: CC-BY-SA-4.0 License: CC-BY-SA
Summary: Documentation for Pacemaker Summary: Documentation for Pacemaker
Group: Documentation
BuildArch: noarch BuildArch: noarch
%description doc %description doc
@ -426,36 +333,31 @@ manager.
%package nagios-plugins-metadata %package nagios-plugins-metadata
License: GPLv3 License: GPLv3
Summary: Pacemaker Nagios Metadata Summary: Pacemaker Nagios Metadata
Group: System Environment/Daemons
# NOTE below are the plugins this metadata uses.
# These packages are not requirements because RHEL does not ship these plugins.
# This metadata provides third-party support for nagios. Users may install the
# plugins via third-party rpm packages, or source. If RHEL ships the plugins in
# the future, we should consider enabling the following required fields.
#Requires: nagios-plugins-http
#Requires: nagios-plugins-ldap
#Requires: nagios-plugins-mysql
#Requires: nagios-plugins-pgsql
#Requires: nagios-plugins-tcp
Requires: pcmk-cluster-manager
BuildArch: noarch BuildArch: noarch
# NOTE below are the plugins this metadata uses.
Requires: nagios-plugins-http
Requires: nagios-plugins-ldap
Requires: nagios-plugins-mysql
Requires: nagios-plugins-pgsql
Requires: nagios-plugins-tcp
Requires: pcmk-cluster-manager
%description nagios-plugins-metadata %description nagios-plugins-metadata
The metadata files required for Pacemaker to execute the nagios plugin The metadata files required for Pacemaker to execute the nagios plugin
monitor resources. monitor resources.
%prep %prep
%autosetup -a 1 -n %{name}-%{commit} -S git_am -p 1 %setup -q -a 1 -n %{name}-%{commit}
%global __scm git_am
%__scm_setup_git
%autopatch -p1
%build %build
# Early versions of autotools (e.g. RHEL <= 5) do not support --docdir # Early versions of autotools (e.g. RHEL <= 5) do not support --docdir
export docdir=%{pcmk_docdir} export docdir=%{pcmk_docdir}
export systemdunitdir=%{?_unitdir}%{!?_unitdir:no} export systemdsystemunitdir=%{?_unitdir}%{!?_unitdir:no}
# RHEL changes pacemaker's concurrent-fencing default to true
export CPPFLAGS="-DDEFAULT_CONCURRENT_FENCING_TRUE"
%if %{with hardening} %if %{with hardening}
# prefer distro-provided hardening flags in case they are defined # prefer distro-provided hardening flags in case they are defined
@ -471,6 +373,9 @@ export LDFLAGS_HARDENED_LIB="%{?_hardening_ldflags}"
./autogen.sh ./autogen.sh
# Rawhide glibc doesn't like ftime at all
export CPPFLAGS="-UPCMK_TIME_EMERGENCY_CGT $CPPFLAGS"
%{configure} \ %{configure} \
PYTHON=%{python_path} \ PYTHON=%{python_path} \
%{!?with_hardening: --disable-hardening} \ %{!?with_hardening: --disable-hardening} \
@ -480,29 +385,22 @@ export LDFLAGS_HARDENED_LIB="%{?_hardening_ldflags}"
%{!?with_doc: --with-brand=} \ %{!?with_doc: --with-brand=} \
%{?gnutls_priorities: --with-gnutls-priorities="%{gnutls_priorities}"} \ %{?gnutls_priorities: --with-gnutls-priorities="%{gnutls_priorities}"} \
--with-initdir=%{_initrddir} \ --with-initdir=%{_initrddir} \
--with-runstatedir=%{_rundir} \
--localstatedir=%{_var} \ --localstatedir=%{_var} \
--with-bug-url=https://bugzilla.redhat.com/ \ --with-version=%{version}-%{release} \
--with-nagios \ --with-bug-url=https://bugz.fedoraproject.org/%{name} \
--with-nagios-metadata-dir=%{_datadir}/pacemaker/nagios/plugins-metadata/ \ --with-nagios \
--with-nagios-plugin-dir=%{_libdir}/nagios/plugins/ \ --with-nagios-metadata-dir=%{_datadir}/pacemaker/nagios/plugins-metadata/ \
--with-version=%{version}-%{release} --with-nagios-plugin-dir=%{_libdir}/nagios/plugins/
%if 0%{?suse_version} >= 1200 make %{_smp_mflags} V=1
# Fedora handles rpath removal automagically
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%endif
make %{_smp_mflags} V=1 all
#%check
#{ cts/cts-scheduler --run load-stopped-loop \
# && cts/cts-cli \
# && touch .CHECKED
#} 2>&1 | sed 's/[fF]ail/faiil/g' # prevent false positives in rpmlint
#[ -f .CHECKED ] && rm -f -- .CHECKED
#exit $? # TODO remove when rpm<4.14 compatibility irrelevant
%check
{ cts/cts-scheduler --run load-stopped-loop \
&& cts/cts-cli \
&& touch .CHECKED
} 2>&1 | sed 's/[fF]ail/faiil/g' # prevent false positives in rpmlint
[ -f .CHECKED ] && rm -f -- .CHECKED
%install %install
# skip automake-native Python byte-compilation, since RPM-native one (possibly # skip automake-native Python byte-compilation, since RPM-native one (possibly
@ -517,21 +415,16 @@ mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
install -m 644 daemons/pacemakerd/pacemaker.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/pacemaker install -m 644 daemons/pacemakerd/pacemaker.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/pacemaker
install -m 644 tools/crm_mon.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/crm_mon install -m 644 tools/crm_mon.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/crm_mon
%if %{with upstart_job}
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/init
install -m 644 pacemakerd/pacemaker.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/pacemaker.conf
install -m 644 pacemakerd/pacemaker.combined.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/pacemaker.combined.conf
install -m 644 tools/crm_mon.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/crm_mon.conf
%endif
mkdir -p %{buildroot}%{_datadir}/pacemaker/nagios/plugins-metadata mkdir -p %{buildroot}%{_datadir}/pacemaker/nagios/plugins-metadata
for file in $(find %{nagios_name}-%{nagios_hash}/metadata -type f); do for file in $(find %{nagios_name}-%{nagios_hash}/metadata -type f); do
install -m 644 $file %{buildroot}%{_datadir}/pacemaker/nagios/plugins-metadata install -m 644 $file %{buildroot}%{_datadir}/pacemaker/nagios/plugins-metadata
done done
%if %{defined _unitdir}
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/lib/rpm-state/%{name} mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/lib/rpm-state/%{name}
%endif
# These are not actually scripts
find %{buildroot} -name '*.xml' -type f -print0 | xargs -0 chmod a-x
# Don't package static libs # Don't package static libs
find %{buildroot} -name '*.a' -type f -print0 | xargs -0 rm -f find %{buildroot} -name '*.a' -type f -print0 | xargs -0 rm -f
@ -540,7 +433,6 @@ find %{buildroot} -name '*.la' -type f -print0 | xargs -0 rm -f
# Do not package these either # Do not package these either
rm -f %{buildroot}/%{_sbindir}/fence_legacy rm -f %{buildroot}/%{_sbindir}/fence_legacy
rm -f %{buildroot}/%{_mandir}/man8/fence_legacy.* rm -f %{buildroot}/%{_mandir}/man8/fence_legacy.*
find %{buildroot} -name '*o2cb*' -type f -print0 | xargs -0 rm -f
# For now, don't package the servicelog-related binaries built only for # For now, don't package the servicelog-related binaries built only for
# ppc64le when certain dependencies are installed. If they get more exercise by # ppc64le when certain dependencies are installed. If they get more exercise by
@ -549,16 +441,14 @@ rm -f %{buildroot}/%{_sbindir}/notifyServicelogEvent
rm -f %{buildroot}/%{_sbindir}/ipmiservicelogd rm -f %{buildroot}/%{_sbindir}/ipmiservicelogd
# Don't ship init scripts for systemd based platforms # Don't ship init scripts for systemd based platforms
%if %{defined _unitdir}
rm -f %{buildroot}/%{_initrddir}/pacemaker rm -f %{buildroot}/%{_initrddir}/pacemaker
rm -f %{buildroot}/%{_initrddir}/pacemaker_remote rm -f %{buildroot}/%{_initrddir}/pacemaker_remote
%endif
# Byte-compile Python sources where suitable and the distro procedures known # Byte-compile Python sources where suitable and the distro procedures known
%if %{defined py_byte_compile} %if %{defined py_byte_compile} && %{defined python_path}
%{py_byte_compile %{python_path} %{buildroot}%{_datadir}/pacemaker/tests} %{py_byte_compile %{python_path} %{buildroot}%{_datadir}/pacemaker/tests}
%if !%{defined _python_bytecompile_extra} %if !%{defined _python_bytecompile_extra}
%{py_byte_compile %{python_path} %{buildroot}%{python_site}/cts} %{py_byte_compile %{python_path} %{buildroot}%{py_site}/cts}
%endif %endif
%endif %endif
@ -573,30 +463,15 @@ done
%endif %endif
%post %post
%if %{defined _unitdir}
%systemd_post pacemaker.service %systemd_post pacemaker.service
%else
/sbin/chkconfig --add pacemaker || :
%endif
%preun %preun
%if %{defined _unitdir}
%systemd_preun pacemaker.service %systemd_preun pacemaker.service
%else
/sbin/service pacemaker stop >/dev/null 2>&1 || :
if [ "$1" -eq 0 ]; then
# Package removal, not upgrade
/sbin/chkconfig --del pacemaker || :
fi
%endif
%postun %postun
%if %{defined _unitdir}
%systemd_postun_with_restart pacemaker.service %systemd_postun_with_restart pacemaker.service
%endif
%pre remote %pre remote
%if %{defined _unitdir}
# Stop the service before anything is touched, and remember to restart # Stop the service before anything is touched, and remember to restart
# it as one of the last actions (compared to using systemd_postun_with_restart, # it as one of the last actions (compared to using systemd_postun_with_restart,
# this avoids suicide when sbd is in use) # this avoids suicide when sbd is in use)
@ -608,28 +483,14 @@ if [ $? -eq 0 ] ; then
else else
rm -f %{_localstatedir}/lib/rpm-state/%{name}/restart_pacemaker_remote rm -f %{_localstatedir}/lib/rpm-state/%{name}/restart_pacemaker_remote
fi fi
%endif
%post remote %post remote
%if %{defined _unitdir}
%systemd_post pacemaker_remote.service %systemd_post pacemaker_remote.service
%else
/sbin/chkconfig --add pacemaker_remote || :
%endif
%preun remote %preun remote
%if %{defined _unitdir}
%systemd_preun pacemaker_remote.service %systemd_preun pacemaker_remote.service
%else
/sbin/service pacemaker_remote stop >/dev/null 2>&1 || :
if [ "$1" -eq 0 ]; then
# Package removal, not upgrade
/sbin/chkconfig --del pacemaker_remote || :
fi
%endif
%postun remote %postun remote
%if %{defined _unitdir}
# This next line is a no-op, because we stopped the service earlier, but # This next line is a no-op, because we stopped the service earlier, but
# we leave it here because it allows us to revert to the standard behavior # we leave it here because it allows us to revert to the standard behavior
# in the future if desired # in the future if desired
@ -638,21 +499,16 @@ fi
if [ "$1" -eq 0 ] ; then if [ "$1" -eq 0 ] ; then
rm -f %{_localstatedir}/lib/rpm-state/%{name}/restart_pacemaker_remote rm -f %{_localstatedir}/lib/rpm-state/%{name}/restart_pacemaker_remote
fi fi
%endif
%posttrans remote %posttrans remote
%if %{defined _unitdir}
if [ -e %{_localstatedir}/lib/rpm-state/%{name}/restart_pacemaker_remote ] ; then if [ -e %{_localstatedir}/lib/rpm-state/%{name}/restart_pacemaker_remote ] ; then
systemctl start pacemaker_remote >/dev/null 2>&1 systemctl start pacemaker_remote >/dev/null 2>&1
rm -f %{_localstatedir}/lib/rpm-state/%{name}/restart_pacemaker_remote rm -f %{_localstatedir}/lib/rpm-state/%{name}/restart_pacemaker_remote
fi fi
%endif
%post cli %post cli
%if %{defined _unitdir}
%systemd_post crm_mon.service %systemd_post crm_mon.service
%endif if [ "$1" = 2 ]; then
if [ "$1" -eq 2 ]; then
# Package upgrade, not initial install: # Package upgrade, not initial install:
# Move any pre-2.0 logs to new location to ensure they get rotated # Move any pre-2.0 logs to new location to ensure they get rotated
{ mv -fbS.rpmsave %{_var}/log/pacemaker.log* %{_var}/log/pacemaker \ { mv -fbS.rpmsave %{_var}/log/pacemaker.log* %{_var}/log/pacemaker \
@ -661,41 +517,30 @@ if [ "$1" -eq 2 ]; then
fi fi
%preun cli %preun cli
%if %{defined _unitdir}
%systemd_preun crm_mon.service %systemd_preun crm_mon.service
%endif
%postun cli %postun cli
%if %{defined _unitdir}
%systemd_postun_with_restart crm_mon.service %systemd_postun_with_restart crm_mon.service
%endif
%pre libs %pre libs
# XXX keep an eye on https://fedoraproject.org/wiki/Changes/SystemdSysusers
# reopened recently:
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/AETGESYR4IEQJMA6SKL7OERSDZFWFNEU/
getent group %{gname} >/dev/null || groupadd -r %{gname} -g 189 getent group %{gname} >/dev/null || groupadd -r %{gname} -g 189
getent passwd %{uname} >/dev/null || useradd -r -g %{gname} -u 189 -s /sbin/nologin -c "cluster user" %{uname} getent passwd %{uname} >/dev/null || useradd -r -g %{gname} -u 189 -s /sbin/nologin -c "cluster user" %{uname}
exit 0 exit 0
%if %{defined ldconfig_scriptlets}
%ldconfig_scriptlets libs %ldconfig_scriptlets libs
%ldconfig_scriptlets cluster-libs %ldconfig_scriptlets cluster-libs
%else
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%post cluster-libs -p /sbin/ldconfig
%postun cluster-libs -p /sbin/ldconfig
%endif
%files %files
########################################################### ###########################################################
%config(noreplace) %{_sysconfdir}/sysconfig/pacemaker %config(noreplace) %{_sysconfdir}/sysconfig/pacemaker
%{_sbindir}/pacemakerd %{_sbindir}/pacemakerd
%if %{defined _unitdir}
%{_unitdir}/pacemaker.service %{_unitdir}/pacemaker.service
%else
%{_initrddir}/pacemaker %exclude %{_datadir}/pacemaker/nagios/plugins-metadata/*
%endif
%exclude %{_libexecdir}/pacemaker/cts-log-watcher %exclude %{_libexecdir}/pacemaker/cts-log-watcher
%exclude %{_libexecdir}/pacemaker/cts-support %exclude %{_libexecdir}/pacemaker/cts-support
@ -703,7 +548,6 @@ exit 0
%if %{with legacy_links} %if %{with legacy_links}
%exclude %{_sbindir}/pacemaker_remoted %exclude %{_sbindir}/pacemaker_remoted
%endif %endif
%exclude %{_datadir}/pacemaker/nagios
%{_libexecdir}/pacemaker/* %{_libexecdir}/pacemaker/*
%{_sbindir}/crm_attribute %{_sbindir}/crm_attribute
@ -729,23 +573,12 @@ exit 0
/usr/lib/ocf/resource.d/pacemaker/controld /usr/lib/ocf/resource.d/pacemaker/controld
/usr/lib/ocf/resource.d/pacemaker/remote /usr/lib/ocf/resource.d/pacemaker/remote
%if %{with upstart_job}
%config(noreplace) %{_sysconfdir}/init/pacemaker.conf
%config(noreplace) %{_sysconfdir}/init/pacemaker.combined.conf
%endif
%files cli %files cli
%dir %attr (750, root, %{gname}) %{_sysconfdir}/pacemaker %dir %attr (750, root, %{gname}) %{_sysconfdir}/pacemaker
%config(noreplace) %{_sysconfdir}/logrotate.d/pacemaker %config(noreplace) %{_sysconfdir}/logrotate.d/pacemaker
%config(noreplace) %{_sysconfdir}/sysconfig/crm_mon %config(noreplace) %{_sysconfdir}/sysconfig/crm_mon
%if %{defined _unitdir}
%{_unitdir}/crm_mon.service %{_unitdir}/crm_mon.service
%endif
%if %{with upstart_job}
%config(noreplace) %{_sysconfdir}/init/crm_mon.conf
%endif
%{_sbindir}/attrd_updater %{_sbindir}/attrd_updater
%{_sbindir}/cibadmin %{_sbindir}/cibadmin
@ -772,6 +605,7 @@ exit 0
%{_datadir}/snmp/mibs/PCMK-MIB.txt %{_datadir}/snmp/mibs/PCMK-MIB.txt
%exclude /usr/lib/ocf/resource.d/pacemaker/controld %exclude /usr/lib/ocf/resource.d/pacemaker/controld
%exclude /usr/lib/ocf/resource.d/pacemaker/o2cb
%exclude /usr/lib/ocf/resource.d/pacemaker/remote %exclude /usr/lib/ocf/resource.d/pacemaker/remote
%dir /usr/lib/ocf %dir /usr/lib/ocf
@ -783,10 +617,12 @@ exit 0
%exclude %{_mandir}/man7/pacemaker-schedulerd.* %exclude %{_mandir}/man7/pacemaker-schedulerd.*
%exclude %{_mandir}/man7/pacemaker-fenced.* %exclude %{_mandir}/man7/pacemaker-fenced.*
%exclude %{_mandir}/man7/ocf_pacemaker_controld.* %exclude %{_mandir}/man7/ocf_pacemaker_controld.*
%exclude %{_mandir}/man7/ocf_pacemaker_o2cb.*
%exclude %{_mandir}/man7/ocf_pacemaker_remote.* %exclude %{_mandir}/man7/ocf_pacemaker_remote.*
%doc %{_mandir}/man8/* %doc %{_mandir}/man8/*
%exclude %{_mandir}/man8/crm_attribute.* %exclude %{_mandir}/man8/crm_attribute.*
%exclude %{_mandir}/man8/crm_master.* %exclude %{_mandir}/man8/crm_master.*
%exclude %{_mandir}/man8/fence_legacy.*
%exclude %{_mandir}/man8/pacemakerd.* %exclude %{_mandir}/man8/pacemakerd.*
%exclude %{_mandir}/man8/pacemaker-remoted.* %exclude %{_mandir}/man8/pacemaker-remoted.*
@ -821,15 +657,11 @@ exit 0
%files remote %files remote
%config(noreplace) %{_sysconfdir}/sysconfig/pacemaker %config(noreplace) %{_sysconfdir}/sysconfig/pacemaker
%if %{defined _unitdir}
# state directory is shared between the subpackets # state directory is shared between the subpackets
# let rpm take care of removing it once it isn't # let rpm take care of removing it once it isn't
# referenced anymore and empty # referenced anymore and empty
%ghost %dir %{_localstatedir}/lib/rpm-state/%{name} %ghost %dir %{_localstatedir}/lib/rpm-state/%{name}
%{_unitdir}/pacemaker_remote.service %{_unitdir}/pacemaker_remote.service
%else
%{_initrddir}/pacemaker_remote
%endif
%{_sbindir}/pacemaker-remoted %{_sbindir}/pacemaker-remoted
%if %{with legacy_links} %if %{with legacy_links}
@ -845,7 +677,7 @@ exit 0
%license licenses/CC-BY-SA-4.0 %license licenses/CC-BY-SA-4.0
%files cts %files cts
%{python_site}/cts %{py_site}/cts
%{_datadir}/pacemaker/tests %{_datadir}/pacemaker/tests
%{_libexecdir}/pacemaker/cts-log-watcher %{_libexecdir}/pacemaker/cts-log-watcher
@ -872,12 +704,14 @@ exit 0
%{_datadir}/pacemaker/*.rng %{_datadir}/pacemaker/*.rng
%{_datadir}/pacemaker/*.xsl %{_datadir}/pacemaker/*.xsl
%{_datadir}/pacemaker/api %{_datadir}/pacemaker/api
%{_datadir}/pkgconfig/pacemaker-schemas.pc
%files nagios-plugins-metadata %files nagios-plugins-metadata
%dir %{_datadir}/pacemaker/nagios
%dir %{_datadir}/pacemaker/nagios/plugins-metadata %dir %{_datadir}/pacemaker/nagios/plugins-metadata
%attr(0644,root,root) %{_datadir}/pacemaker/nagios/plugins-metadata/* %attr(0644,root,root) %{_datadir}/pacemaker/nagios/plugins-metadata/*
%license %{nagios_name}-%{nagios_hash}/COPYING %license %{nagios_name}-%{nagios_hash}/COPYING
%changelog %changelog
* Wed Apr 15 2020 houjian<houjian@kylinos.cn> - 2.0.2-3.2 * Thu Nov 05 2020 jiangxinyu <jiangxinyu@kylinos.cn> - 2.0.3-1
- Init pacemaker project - Init pacemaker project