]> git.pld-linux.org Git - packages/cluster-glue.git/blobdiff - cluster-glue.spec
- allow packaging on systems without systemd
[packages/cluster-glue.git] / cluster-glue.spec
index 6e7fb9aa6bfda6ccdef05e85472beec12dee0e21..d2b3d55201923be84700be956725422fb2d73256 100644 (file)
@@ -1,48 +1,59 @@
-# TODO
-# - filterout fix needed:
-#   ./.libs/ipmilan.so: undefined reference to `stonith_free_hostlist'
-#   ./.libs/ipmilan.so: undefined reference to `PILCallLog'
-#   collect2: ld returned 1 exit status
-#   gmake[4]: *** [ipmilantest] Error 1
-#   gmake[4]: Leaving directory `/home/users/glen/rpm/BUILD.x86_64-linux/cluster-glue-1.0.2-rc2/lib/plugins/stonith'
-# - tests packaged in -devel to own pkg or just rm -rf
+# TODO:
 # - pldize ha_logd initscript (look heartbeat.init?)
-# - stonith-libs? pils?
-%define                subver  rc2
-%define                rel             0.2
+# - stonith-libs? pils? (any sense? libs are small and have little external dependencies)
+# - separate some stonith plugins which have external dependencies?
+#
+# Conditional build:
+%bcond_without systemd # systemd
+%bcond_without vacm    # VACM stonith plugin
+#
 Summary:       Reusable cluster components
+Summary(pl.UTF-8):     Komponenty klastrowe wielokrotnego użytku
 Name:          cluster-glue
-Version:       1.0.2
-Release:       0.%{subver}.%{rel}
+Version:       1.0.12
+Release:       6
 License:       GPL v2+ and LGPL v2+
-Group:         Base
-URL:           http://www.clusterlabs.org/
-Source0:       http://www.linux-ha.org/w/images/3/3d/Cluster-glue-%{version}-%{subver}.tar.bz2
-# Source0-md5: 1f83b6bd83d9cae5310c32d14fecf2fd
-Patch0:                heartbeat-no_ipmilan_test.patch
-BuildRequires: OpenIPMI-devel
-BuildRequires: autoconf
+Group:         Aplications/System
+# for future releases:
+#Source0Download: https://github.com/ClusterLabs/cluster-glue/releases
+#Source0:      https://github.com/ClusterLabs/cluster-glue/archive/%{version}/glue-%{version}.tar.gz
+Source0:       http://hg.linux-ha.org/glue/archive/glue-%{version}.tar.bz2
+# Source0-md5: ec620466d6f23affa3b074b72bca7870
+Patch0:                %{name}-link.patch
+Patch1:                %{name}-opt.patch
+Patch2:                %{name}-rc.patch
+Patch3:                %{name}-heartbeat-libexecdir.patch
+Patch4:                x32-long-long-time-types.patch
+URL:           http://www.linux-ha.org/wiki/Cluster_Glue
+BuildRequires: OpenIPMI-devel >= 1.4
+BuildRequires: asciidoc
+BuildRequires: autoconf >= 2.53
 BuildRequires: automake
 BuildRequires: bzip2-devel
 BuildRequires: curl-devel
+BuildRequires: docbook-dtd42-xml
 BuildRequires: docbook-dtd44-xml
 BuildRequires: docbook-style-xsl
-BuildRequires: glib2-devel
+BuildRequires: glib2-devel >= 2.0
+BuildRequires: help2man
+BuildRequires: libaio-devel
 BuildRequires: libltdl-devel
-BuildRequires: libnet-devel
+BuildRequires: libnet-devel >= 1.0
 BuildRequires: libstdc++-devel
 BuildRequires: libtool
 BuildRequires: libuuid-devel
-BuildRequires: libxml2-devel
+BuildRequires: libxml2-devel >= 2.0
 BuildRequires: libxslt-progs
 BuildRequires: ncurses-devel
 BuildRequires: net-snmp-devel >= 5.4
 BuildRequires: openhpi-devel
 BuildRequires: openssl-devel
+BuildRequires: perl-tools-pod
 BuildRequires: pkgconfig
-BuildRequires: python-devel
+BuildRequires: python3-devel
 BuildRequires: rpm-pythonprov
-BuildRequires: which
+%{?with_vacm:BuildRequires:    vacm-devel}
+BuildRequires: zlib-devel
 Requires(post,preun):  /sbin/chkconfig
 Requires(postun):      /usr/sbin/groupdel
 Requires(postun):      /usr/sbin/userdel
@@ -50,6 +61,9 @@ Requires(pre):        /bin/id
 Requires(pre): /usr/bin/getgid
 Requires(pre): /usr/sbin/groupadd
 Requires(pre): /usr/sbin/useradd
+Requires(post,preun,postun):   systemd-units
+Requires:      systemd-units
+Requires:      %{name}-libs = %{version}-%{release}
 Requires:      perl-TimeDate
 Requires:      rc-scripts
 Provides:      group(haclient)
@@ -60,33 +74,59 @@ Obsoletes:  heartbeat-common
 Obsoletes:     heartbeat-pils < 3.0.0-1
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                filterout_ld    -Wl,--as-needed
-
 %description
 A collection of common tools that are useful for writing cluster
 managers such as Pacemaker. Provides a local resource manager that
 understands the OCF and LSB standards, and an interface to common
 STONITH devices.
 
+%description -l pl.UTF-8
+Zbiór wspólnych narzędzi przydatnych przy pisaniu zarządców klastrów,
+takich jak Pacemaker. Pakiet zawiera zarządcę zasobów lokalnych
+zgodnego ze standardami OCF i LSB oraz interfejs do wspólnych urządzeń
+STONITH.
+
 %package libs
 Summary:       Reusable cluster libraries
-Group:         Development/Libraries
+Summary(pl.UTF-8):     Biblioteki klastrowe wielokrotnego użytku
+Group:         Libraries
 Obsoletes:     libheartbeat2
 
 %description libs
 A collection of libraries that are useful for writing cluster managers
 such as Pacemaker.
 
+%description libs -l pl.UTF-8
+Zbiór bibliotek przydatnych przy pisaniu zarządców klastrów, takich
+jak Pacemaker.
+
 %package libs-devel
-Summary:       Headers and libraries for writing cluster managers
+Summary:       Header files for writing cluster managers
+Summary(pl.UTF-8):     Pliki nagłówkowe do pisania zarządców klastrów
 Group:         Development/Libraries
-Requires:      %{name} = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
+Requires:      glib2-devel >= 2.0
+Requires:      libltdl-devel
 Obsoletes:     libheartbeat-devel
 
 %description libs-devel
-Headers and shared libraries for a useful for writing cluster managers
-such as Pacemaker.
+Header files useful for writing cluster managers such as Pacemaker.
+
+%description libs-devel -l pl.UTF-8
+Pliki nagłówkowe przydatne przy pisaniu zarządców klastrów, takich jak
+Pacemaker.
+
+%package tests
+Summary:       Tests for cluster-glue framework
+Summary(pl.UTF-8):     Testy dla szkieletu cluster-glue
+Group:         Development
+Requires:      %{name}-libs = %{version}-%{release}
+
+%description tests
+Tests for cluster-glue framework.
+
+%description tests -l pl.UTF-8
+Testy dla szkieletu cluster-glue.
 
 %package stonith
 Summary:       Provides an interface to Shoot The Other Node In The Head
@@ -104,8 +144,20 @@ STONITH (Shoot The Other Node In The Head) to interfejs służący do
 "odstrzelenia" drugiego węzła w klastrze.
 
 %prep
-%setup -q -n %{name}-%{version}-%{subver}
+%setup -q -n Reusable-Cluster-Components-glue--glue-%{version}
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%ifarch x32
+%patch4 -p1
+%endif
+
+%{__sed} -i -e '1{
+       s,^#!.*python$,#!%{__python3},
+       s,^#!.*bin/env perl,#!%{__perl},
+}' \
+       lib/plugins/stonith/external/*
 
 %build
 %{__libtoolize}
@@ -113,22 +165,30 @@ STONITH (Shoot The Other Node In The Head) to interfejs służący do
 %{__autoheader}
 %{__automake}
 %{__autoconf}
+CPPFLAGS="%{rpmcppflags} -DOPENIPMI_DEFINE_SELECTOR_T"
 %configure \
-       --with-initdir=/etc/rc.d/init.d \
-       --enable-fatal-warnings=yes \
-       --with-daemon-group=haclient \
-       --with-daemon-user=hacluster\
+       PYTHON=%{__python3} \
        --docdir=%{_docdir}/%{name}-%{version} \
-       --disable-static
+       --disable-fatal-warnings \
+       --disable-static \
+       --enable-ipmilan \
+       --with-daemon-group=haclient \
+       --with-daemon-user=hacluster \
+       --with-initdir=/etc/rc.d/init.d \
+       --with-rundir=/var/run
 %{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{systemdunitdir}
+
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
 
 find $RPM_BUILD_ROOT -name '*.la' -delete
 
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -139,54 +199,62 @@ rm -rf $RPM_BUILD_ROOT
 %post
 /sbin/chkconfig --add logd
 %service logd restart
+%systemd_post logd.service
 
 %preun
 if [ "$1" = "0" ]; then
        %service -q logd stop
        /sbin/chkconfig --del logd
 fi
+%systemd_preun logd.service
 
 %postun
 if [ "$1" = "0" ]; then
        %userremove hacluster
        %groupremove haclient
 fi
+%systemd_reload
 
 %post  libs -p /sbin/ldconfig
 %postun        libs -p /sbin/ldconfig
 
 %files
 %defattr(644,root,root,755)
-%doc AUTHORS logd/logd.cf
+%doc AUTHORS ChangeLog logd/logd.cf doc/stonith/README*
 %attr(754,root,root) /etc/rc.d/init.d/logd
+%if %{with systemd}
+%{systemdunitdir}/logd.service
+%endif
 
 %attr(755,root,root) %{_sbindir}/ha_logger
 %attr(755,root,root) %{_sbindir}/hb_report
 %attr(755,root,root) %{_sbindir}/lrmadmin
 %attr(755,root,root) %{_sbindir}/meatclient
-%attr(755,root,root) %{_sbindir}/sbd
+%attr(755,root,root) %{_sbindir}/cibsecret
 %{_mandir}/man1/ha_logger.1*
 %{_mandir}/man8/ha_logd.8*
 %{_mandir}/man8/hb_report.8*
+%{_mandir}/man8/lrmadmin.8*
 %{_mandir}/man8/meatclient.8*
 
 %dir %{_datadir}/%{name}
 %attr(755,root,root) %{_datadir}/%{name}/ha_cf_support.sh
 %attr(755,root,root) %{_datadir}/%{name}/openais_conf_support.sh
 %attr(755,root,root) %{_datadir}/%{name}/utillib.sh
-%attr(755,root,root) %{_datadir}/%{name}/combine-logs.pl
 %attr(755,root,root) %{_datadir}/%{name}/ha_log.sh
 
-%dir %{_libdir}/heartbeat
-%dir %{_libdir}/heartbeat/plugins
-%dir %{_libdir}/heartbeat/plugins/RAExec
+%attr(755,root,root) %{_libexecdir}/heartbeat/ha_logd
+%attr(755,root,root) %{_libexecdir}/heartbeat/lrmd
+
 %dir %{_libdir}/heartbeat/plugins/InterfaceMgr
-%attr(755,root,root) %{_libdir}/heartbeat/lrmd
-%attr(755,root,root) %{_libdir}/heartbeat/ha_logd
 %attr(755,root,root) %{_libdir}/heartbeat/plugins/InterfaceMgr/generic.so
+%dir %{_libdir}/heartbeat/plugins/RAExec
 %attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/heartbeat.so
 %attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/lsb.so
 %attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/ocf.so
+%dir %{_libdir}/heartbeat/plugins/compress
+%attr(755,root,root) %{_libdir}/heartbeat/plugins/compress/bz2.so
+%attr(755,root,root) %{_libdir}/heartbeat/plugins/compress/zlib.so
 
 %dir /var/lib/heartbeat
 %attr(711,root,root) %dir /var/lib/heartbeat/cores
@@ -207,6 +275,10 @@ fi
 %attr(755,root,root) %ghost %{_libdir}/libplumbgpl.so.2
 %attr(755,root,root) %{_libdir}/libstonith.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libstonith.so.1
+%dir %{_libdir}/heartbeat
+%dir %{_libdir}/heartbeat/plugins
+# also used by resource-agents runtime package (shouldn't agent_config.h be in resource-agents-devel?)
+%dir %{_includedir}/heartbeat
 
 %files libs-devel
 %defattr(644,root,root,755)
@@ -216,18 +288,21 @@ fi
 %attr(755,root,root) %{_libdir}/libplumbgpl.so
 %attr(755,root,root) %{_libdir}/libstonith.so
 %{_includedir}/clplumbing
-%{_includedir}/heartbeat
+%{_includedir}/heartbeat/compress.h
+%{_includedir}/heartbeat/glue_config.h
+%{_includedir}/heartbeat/ha_msg.h
+%{_includedir}/heartbeat/lrm
 %{_includedir}/stonith
 %{_includedir}/pils
 
-%dir %{_libdir}/heartbeat
-%dir %{_libdir}/heartbeat/plugins
-%attr(755,root,root) %{_libdir}/heartbeat/ipctest
-%attr(755,root,root) %{_libdir}/heartbeat/ipctransientclient
-%attr(755,root,root) %{_libdir}/heartbeat/ipctransientserver
-%attr(755,root,root) %{_libdir}/heartbeat/transient-test.sh
-%attr(755,root,root) %{_libdir}/heartbeat/base64_md5_test
-%attr(755,root,root) %{_libdir}/heartbeat/logtest
+%files tests
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/heartbeat/ipctest
+%attr(755,root,root) %{_libexecdir}/heartbeat/ipctransientclient
+%attr(755,root,root) %{_libexecdir}/heartbeat/ipctransientserver
+%attr(755,root,root) %{_libexecdir}/heartbeat/transient-test.sh
+%attr(755,root,root) %{_libexecdir}/heartbeat/base64_md5_test
+%attr(755,root,root) %{_libexecdir}/heartbeat/logtest
 
 %dir %{_libdir}/heartbeat/plugins/test
 %attr(755,root,root) %{_libdir}/heartbeat/plugins/test/test.so
@@ -252,17 +327,48 @@ fi
 %{_datadir}/%{name}/lrmtest/testcases/rscexec.exp
 %{_datadir}/%{name}/lrmtest/testcases/rscmgmt
 %{_datadir}/%{name}/lrmtest/testcases/rscmgmt.exp
+%{_datadir}/%{name}/lrmtest/testcases/stonith
+%{_datadir}/%{name}/lrmtest/testcases/stonith.exp
 %attr(755,root,root) %{_datadir}/%{name}/lrmtest/testcases/*filter
 %attr(755,root,root) %{_datadir}/%{name}/lrmtest/testcases/*.sh
 
 %files stonith
+%defattr(644,root,root,755)
 %doc doc/stonith/README*
 %attr(755,root,root) %{_sbindir}/stonith
 %{_mandir}/man8/stonith.8*
 %dir %{_libdir}/stonith
 %dir %{_libdir}/stonith/plugins
+%dir %{_libdir}/stonith/plugins/external
+%attr(755,root,root) %{_libdir}/stonith/plugins/external/*
 %dir %{_libdir}/stonith/plugins/stonith2
-%{_libdir}/stonith/plugins/external
-%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/*.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/apcmaster.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/apcmastersnmp.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/apcsmart.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/baytech.so
+# R: openhpi
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/bladehpi.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/cyclades.so
+# R: curl libxml2
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/drac3.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/external.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ibmhmc.so
+# R: OpenIPMI
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ipmilan.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/meatware.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/null.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/nw_rpc100s.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/rcd_serial.so
+# R: libxml2
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/rhcs.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/rps10.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ssh.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/suicide.so
+%if %{with vacm}
+# R: vacm-libs
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/vacm.so
+%endif
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/wti_mpc.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/wti_nps.so
 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ribcl.py
 %attr(755,root,root) %{_libdir}/stonith/plugins/xen0-ha-dom0-stonith-helper
This page took 0.107917 seconds and 4 git commands to generate.