| # Define init script directory. %{_initddir} is available from Fedora |
| # 9 forward; CentOS knows 5 only %{_initrddir}. Neither are known to |
| # autoconf... |
| %{!?_initddir: %{expand: %%global _initddir %{_initrddir}}} |
| |
| # Compatibility macro wrappers for legacy RPM versions that do not |
| # support conditional builds |
| %{!?bcond_without: %{expand: %%global bcond_without() %%{expand:%%%%{!?_without_%%{1}:%%%%global with_%%{1} 1}}}} |
| %{!?bcond_with: %{expand: %%global bcond_with() %%{expand:%%%%{?_with_%%{1}:%%%%global with_%%{1} 1}}}} |
| %{!?with: %{expand: %%global with() %%{expand:%%%%{?with_%%{1}:1}%%%%{!?with_%%{1}:0}}}} |
| %{!?without: %{expand: %%global without() %%{expand:%%%%{?with_%%{1}:0}%%%%{!?with_%%{1}:1}}}} |
| |
| %if 0%{!?initscripttype:1} |
| # initscripttype not explicitly defined in some macro file or on commandline |
| # use presence of systemd_post macro to determine the initscripttype |
| %if %{?systemd_post:1}%{!?systemd_post:0} |
| %global initscripttype systemd |
| %else |
| %global initscripttype sysv |
| %endif |
| %endif |
| |
| # Conditionals |
| # Invoke "rpmbuild --without <feature>" or "rpmbuild --with <feature>" |
| # to disable or enable specific features |
| %bcond_without manual |
| %bcond_without udev |
| %bcond_without pacemaker |
| %bcond_with rgmanager |
| %bcond_without heartbeat |
| # conditionals may not contain "-" nor "_", hence "bashcompletion" |
| %bcond_without bashcompletion |
| %bcond_without sbinsymlinks |
| # --with xen is ignored on any non-x86 architecture |
| %bcond_without xen |
| %bcond_without 83support |
| %bcond_without 84support |
| %bcond_without drbdmon |
| %ifnarch %{ix86} x86_64 |
| %global _without_xen --without-xen |
| %endif |
| |
| Name: drbd |
| Summary: DRBD driver for Linux |
| Version: @PACKAGE_VERSION@ |
| Release: 1@RPM_DIST_TAG@ |
| Source: http://www.drbd.org/download/drbd/utils/drbd-utils-%{version}.tar.gz |
| License: GPLv2+ |
| ExclusiveOS: linux |
| Group: System Environment/Kernel |
| URL: http://www.drbd.org/ |
| BuildRoot: %(mktemp -ud %{_tmppath}/drbd-utils-%{version}-%{release}-XXXXXX) |
| BuildRequires: @RPM_BUILDREQ_DEFAULT@ |
| Requires: drbd-utils = %{version} |
| %ifarch %{ix86} x86_64 |
| %if %{with xen} |
| Requires: drbd-xen = %{version} |
| %endif |
| %endif |
| %if %{with udev} |
| Requires: drbd-udev = %{version} |
| BuildRequires: udev |
| %endif |
| %if %{with pacemaker} |
| Requires: drbd-pacemaker = %{version} |
| %endif |
| %if %{with drbdmon} |
| BuildRequires: gcc-c++ |
| %endif |
| ## %if %{with rgmanager} |
| ## ## No. |
| ## ## We don't want to annoy the majority of our userbase on pacemaker |
| ## ## by pulling in the full rgmanager stack via drbd-rgmanager as well. |
| ## Requires: drbd-rgmanager = %{version} |
| ## %endif |
| ## |
| ## ## Neither do we want to force anyone to install heartbeat |
| ## ## Usually they use corosync meanwhile. |
| ## ## No need to pull in heartbeat via the drbd-heartbeat scripts |
| ## ## meant for haresources mode |
| ## %if %{with heartbeat} |
| ## Requires: %{name}-heartbeat = %{version} |
| ## %endif |
| %if %{with bashcompletion} |
| Requires: drbd-bash-completion = %{version} |
| %endif |
| |
| %description |
| DRBD mirrors a block device over the network to another machine. |
| Think of it as networked raid 1. It is a building block for |
| setting up high availability (HA) clusters. |
| |
| This is a virtual package, installing the full DRBD userland suite. |
| |
| # Just a few docs go into the "drbd" package. Everything else is part |
| # of one of the drbd-* packages. |
| %files |
| %defattr(-,root,root,-) |
| %doc COPYING |
| %doc ChangeLog |
| %doc README |
| |
| %package utils |
| Summary: Management utilities for DRBD |
| Group: System Environment/Kernel |
| # Our kernel modules "require" specific drbd-utils versions, not ranges. |
| # Which was natural as long as userland and module shared the same repo |
| # and source tarball, and would be build together. |
| # |
| # Now we split the userland part, we "provide" a list of versions here, |
| # to be able to use this package with existing module packages. |
| # |
| %if %{with 84support} |
| # which 8.4 version equivalent this package provides |
| Provides: drbd-utils = 8.4.5 |
| Provides: drbd-utils = 8.4.4 |
| Provides: drbd-utils = 8.4.3 |
| Provides: drbd-utils = 8.4.2 |
| Provides: drbd-utils = 8.4.1 |
| Provides: drbd-utils = 8.4.0 |
| %endif |
| %if %{with 83support} |
| # which 8.3 version equivalent this package provides |
| Provides: drbd-utils = 8.3.16 |
| %endif |
| # We used to have one monolithic userland package. |
| # Since all other packages require drbd-utils, |
| # it should be sufficient to add the conflict here. |
| Conflicts: drbd < 8.3.6 |
| # These exist in centos extras: |
| Conflicts: drbd82 drbd83 |
| %if %{initscripttype} == "sysv" |
| @RPM_REQ_CHKCONFIG_POST@ |
| @RPM_REQ_CHKCONFIG_PREUN@ |
| %endif |
| |
| %description utils |
| DRBD mirrors a block device over the network to another machine. |
| Think of it as networked raid 1. It is a building block for |
| setting up high availability (HA) clusters. |
| |
| This packages includes the DRBD administration tools. |
| |
| %files utils |
| %defattr(755,root,root,-) |
| %if %{with sbinsymlinks} |
| /sbin/drbdsetup |
| /sbin/drbdadm |
| /sbin/drbdmeta |
| %endif |
| %{_sbindir}/drbdsetup |
| %{_sbindir}/drbdadm |
| %{_sbindir}/drbdmeta |
| %if %{with 83support} |
| %dir /lib/drbd/ |
| /lib/drbd/drbdsetup-83 |
| /lib/drbd/drbdadm-83 |
| %endif |
| %if %{with 84support} |
| /lib/drbd/drbdsetup-84 |
| /lib/drbd/drbdadm-84 |
| %endif |
| %if %{with drbdmon} |
| %{_sbindir}/drbdmon |
| %endif |
| %if %{initscripttype} == "sysv" |
| %{_initddir}/drbd |
| %endif |
| %{_sbindir}/drbd-overview |
| %dir %{_prefix}/lib/drbd |
| %{_prefix}/lib/drbd/outdate-peer.sh |
| %{_prefix}/lib/drbd/snapshot-resync-target-lvm.sh |
| %{_prefix}/lib/drbd/unsnapshot-resync-target-lvm.sh |
| %{_prefix}/lib/drbd/notify-out-of-sync.sh |
| %{_prefix}/lib/drbd/notify-split-brain.sh |
| %{_prefix}/lib/drbd/notify-emergency-reboot.sh |
| %{_prefix}/lib/drbd/notify-emergency-shutdown.sh |
| %{_prefix}/lib/drbd/notify-io-error.sh |
| %{_prefix}/lib/drbd/notify-pri-lost-after-sb.sh |
| %{_prefix}/lib/drbd/notify-pri-lost.sh |
| %{_prefix}/lib/drbd/notify-pri-on-incon-degr.sh |
| %{_prefix}/lib/drbd/notify.sh |
| %dir %{_var}/lib/drbd |
| %ghost %dir %{_var}/run/drbd |
| |
| %defattr(-,root,root,-) |
| %if %{initscripttype} == "systemd" |
| %{_unitdir}/drbd.service |
| %{_tmpfilesdir}/drbd.conf |
| /lib/drbd/drbd |
| %endif |
| %config(noreplace) %{_sysconfdir}/drbd.conf |
| %dir %{_sysconfdir}/drbd.d |
| %config(noreplace) %{_sysconfdir}/drbd.d/global_common.conf |
| %if %{without manual} |
| %else |
| %{_mandir}/man8/drbd-* |
| %{_mandir}/man8/drbdsetup-* |
| %{_mandir}/man8/drbdadm-* |
| %{_mandir}/man5/drbd.conf-* |
| %{_mandir}/man8/drbdmeta-* |
| %if %{with drbdmon} |
| %{_mandir}/man8/drbdmon-* |
| %endif |
| %endif |
| %doc scripts/drbd.conf.example |
| %doc COPYING |
| %doc ChangeLog |
| %doc README |
| |
| %ifarch %{ix86} x86_64 |
| %if %{with xen} |
| %package xen |
| Summary: Xen block device management script for DRBD |
| Group: System Environment/Kernel |
| Requires: drbd-utils = %{version}-%{release} |
| @RPM_REQ_XEN@ |
| @RPM_SUBPACKAGE_NOARCH@ |
| |
| %description xen |
| This package contains a Xen block device helper script for DRBD, capable of |
| promoting and demoting DRBD resources as necessary. |
| |
| %files xen |
| %defattr(755,root,root,-) |
| %{_sysconfdir}/xen/scripts/block-drbd |
| %endif # with xen |
| %endif # arch %{ix86} x86_64 |
| |
| %if %{with udev} |
| %package udev |
| Summary: udev integration scripts for DRBD |
| Group: System Environment/Kernel |
| Requires: drbd-utils = %{version}-%{release}, udev |
| @RPM_SUBPACKAGE_NOARCH@ |
| |
| %description udev |
| This package contains udev helper scripts for DRBD, managing symlinks to |
| DRBD devices in /dev/drbd/by-res and /dev/drbd/by-disk. |
| |
| %files udev |
| %defattr(-,root,root,-) |
| %config @udevrulesdir@/65-drbd.rules* |
| %endif # with udev |
| |
| %if %{with pacemaker} |
| %package pacemaker |
| Summary: Pacemaker resource agent for DRBD |
| Group: System Environment/Base |
| Requires: drbd-utils = %{version}-%{release} |
| @RPM_REQ_PACEMAKER@ |
| License: GPLv2 |
| @RPM_SUBPACKAGE_NOARCH@ |
| |
| %description pacemaker |
| This package contains the master/slave DRBD resource agent for the |
| Pacemaker High Availability cluster manager. |
| |
| %files pacemaker |
| %defattr(755,root,root,-) |
| %{_prefix}/lib/drbd/crm-fence-peer.sh |
| %{_prefix}/lib/drbd/crm-fence-peer.9.sh |
| %{_prefix}/lib/drbd/crm-unfence-peer.sh |
| %{_prefix}/lib/drbd/crm-unfence-peer.9.sh |
| %{_prefix}/lib/drbd/stonith_admin-fence-peer.sh |
| %{_prefix}/lib/ocf/resource.d/linbit/drbd |
| %{_prefix}/lib/ocf/resource.d/linbit/drbd.shellfuncs.sh |
| %endif # with pacemaker |
| |
| # Dependencies for drbd-rgmanager are particularly awful. On RHEL 5 |
| # and prior (and corresponding Fedora releases), %{_datadir}/cluster |
| # was owned by rgmanager version 2, so we have to depend on that. |
| # |
| # With Red Hat Cluster 3.0.1 (around Fedora 12), the DRBD resource |
| # agent was merged in, and it became part of the resource-agents 3 |
| # package (which of course is different from resource-agents on all |
| # other platforms -- go figure). So for resource-agents >= 3, we must |
| # generally conflict. |
| # |
| # Then for RHEL 6, Red Hat in all their glory decided to keep the |
| # packaging scheme, but kicked DRBD out of the resource-agents |
| # package. Thus, for RHEL 6 specifically, we must not conflict with |
| # resource-agents >=3, but instead require it. |
| # |
| # The saga continues: |
| # In RHEL 6.1 they have listed the drbd resource agent as valid agent, |
| # but do not include it in their resource-agents package. -> So we |
| # drop any dependency regarding rgmanager's version. |
| # |
| # All of this for exactly two (2) files. |
| %if %{with rgmanager} |
| %package rgmanager |
| Summary: Red Hat Cluster Suite agent for DRBD |
| Group: System Environment/Base |
| Requires: drbd-utils = %{version}-%{release} |
| @RPM_SUBPACKAGE_NOARCH@ |
| |
| %description rgmanager |
| This package contains the DRBD resource agent for the Red Hat Cluster Suite |
| resource manager. |
| |
| As of Red Hat Cluster Suite 3.0.1, the DRBD resource agent is included |
| in the Cluster distribution. |
| |
| %files rgmanager |
| %defattr(755,root,root,-) |
| %{_datadir}/cluster/drbd.sh |
| %{_prefix}/lib/drbd/rhcs_fence |
| |
| %defattr(-,root,root,-) |
| %{_datadir}/cluster/drbd.metadata |
| %endif # with rgmanager |
| |
| %if %{with heartbeat} |
| %package heartbeat |
| Summary: Heartbeat resource agent for DRBD |
| Group: System Environment/Base |
| Requires: %{name}-utils = %{version}-%{release} |
| @RPM_REQ_HEARTBEAT@ |
| License: GPLv2 |
| @RPM_SUBPACKAGE_NOARCH@ |
| |
| %description heartbeat |
| This package contains the DRBD resource agents for the Heartbeat cluster |
| resource manager (in v1 compatibility mode). |
| |
| %files heartbeat |
| %defattr(755,root,root,-) |
| %{_sysconfdir}/ha.d/resource.d/drbddisk |
| %{_sysconfdir}/ha.d/resource.d/drbdupper |
| |
| %defattr(-,root,root,-) |
| %if %{without manual} |
| %else |
| %{_mandir}/man8/drbddisk-* |
| %endif |
| %endif # with heartbeat |
| |
| %if %{with bashcompletion} |
| %package bash-completion |
| Summary: Programmable bash completion support for drbdadm |
| Group: System Environment/Base |
| Requires: drbd-utils = %{version}-%{release} |
| @RPM_REQ_BASH_COMPLETION@ |
| @RPM_SUBPACKAGE_NOARCH@ |
| |
| %description bash-completion |
| This package contains programmable bash completion support for the drbdadm |
| management utility. |
| |
| %files bash-completion |
| %defattr(-,root,root,-) |
| %config %{_sysconfdir}/bash_completion.d/drbdadm* |
| %endif # with bashcompletion |
| |
| |
| %prep |
| %setup -q -n drbd-utils-%{version} |
| |
| %build |
| # rebuild configure... |
| aclocal |
| autoheader |
| autoconf |
| %configure \ |
| %{?_without_udev} \ |
| %{?_without_xen} \ |
| %{?_without_pacemaker} \ |
| %{?_without_heartbeat} \ |
| %{?_with_rgmanager} \ |
| %{?_without_bashcompletion} \ |
| %{?_without_83support} \ |
| %{?_without_84support} \ |
| %{?_without_manual} \ |
| --with-initdir=%{_initddir} \ |
| %{?_tmpfilesdir:--with-tmpfilesdir=%{_tmpfilesdir}} \ |
| --with-initscripttype=%{initscripttype} \ |
| %{?_without_drbdmon} |
| make %{?_smp_mflags} |
| |
| %install |
| rm -rf %{buildroot} |
| make install DESTDIR=%{buildroot} CREATE_MAN_LINK=no |
| |
| %if %{with sbinsymlinks} |
| # Don't do this if you are already on a /sbin -=> /usr/sbin distro |
| # compat: we used to live in /sbin/ |
| # there may be many hardcoded /sbin/drbd* out there, |
| # including variants of our own scripts. |
| mkdir -p %{buildroot}/var/run/drbd |
| mkdir %{buildroot}/sbin/ |
| cd %{buildroot}/sbin/ |
| ln -sv ..%{_sbindir}/drbdadm . |
| ln -sv ..%{_sbindir}/drbdmeta . |
| ln -sv ..%{_sbindir}/drbdsetup . |
| %endif |
| |
| %clean |
| rm -rf %{buildroot} |
| |
| %post utils |
| %if %{initscripttype} == "systemd" |
| %systemd_post drbd.service |
| %endif |
| %if %{initscripttype} == "sysv" |
| chkconfig --add drbd |
| %endif |
| %if %{without manual} |
| %else |
| for f in drbd drbdadm drbdmeta drbdsetup; do |
| ln -sf $f-8.4.8.gz %{_mandir}/man8/$f.8.gz |
| done |
| ln -sf drbd.conf-8.4.5.gz %{_mandir}/man5/drbd.conf.5.gz |
| %if %{with drbdmon} |
| ln -sf drbdmon-9.0.8.gz %{_mandir}/man8/drbdmon.8.gz |
| %endif |
| %endif |
| %if %{without udev} |
| for i in `seq 0 15` ; do |
| test -b /dev/drbd$i || mknod -m 0660 /dev/drbd$i b 147 $i; |
| done |
| %endif #without udev |
| |
| %preun utils |
| for f in drbd drbdadm drbdmeta drbdsetup; do |
| rm -f %{_mandir}/man8/$f.8.gz |
| done |
| rm -f %{_mandir}/man5/drbd.conf.5.gz |
| rm -f %{_mandir}/man8/drbdmon.8.gz |
| %if %{initscripttype} == "systemd" |
| %systemd_preun drbd.service |
| %endif |
| %if %{initscripttype} == "sysv" |
| if [ $1 -eq 0 ]; then |
| %{_initrddir}/drbd stop >/dev/null 2>&1 |
| /sbin/chkconfig --del drbd |
| fi |
| %endif |
| |
| %if %{initscripttype} == "systemd" |
| %postun utils |
| %systemd_postun |
| %endif |
| |
| |
| %changelog |
| * Fri Sep 08 2017 Roland Kammerer <roland.kammerer@linbit.com> - 9.1.1-1 |
| - fix for regression of "drbdadm adjust" in v9 |
| |
| * Tue Aug 29 2017 Roland Kammerer <roland.kammerer@linbit.com> - 9.1.0-1 |
| - New upstream release. |
| |
| * Fri Jun 02 2017 Lars Ellenberg <lars@linbit.com> - 9.0.0-1 |
| - New upstream release. |
| |
| * Fri Apr 28 2017 Lars Ellenberg <lars@linbit.com> - 8.9.11-2 |
| - fix for regression of drbd-8.4 pacemaker integration |
| - fix 8.4 compatibility of shipped global_common.conf |
| |
| * Fri Mar 31 2017 Philipp Reisner <phil@linbit.com> - 8.9.11-1 |
| - New upstream release. |
| |
| * Fri Dec 23 2016 Philipp Reisner <phil@linbit.com> - 8.9.10-1 |
| - New upstream release. |
| |
| * Thu Oct 20 2016 Philipp Reisner <phil@linbit.com> - 8.9.9-1 |
| - New upstream release. |
| |
| * Tue Sep 06 2016 Philipp Reisner <phil@linbit.com> - 8.9.8-1 |
| - New upstream release. |
| |
| * Thu Jul 14 2016 Philipp Reisner <phil@linbit.com> - 8.9.7-1 |
| - New upstream release. |
| |
| * Wed Feb 3 2016 Roland Kammerer <roland.kammerer@linbit.com> - 8.9.6-1 |
| - New upstream release. |
| |
| * Wed Dec 16 2015 Philipp Reisner <phil@linbit.com> - 8.9.5-1 |
| - New upstream release. |
| |
| * Fri Sep 18 2015 Philipp Reisner <phil@linbit.com> - 8.9.4-1 |
| - New upstream release. |
| |
| * Wed Jul 29 2015 Lars Ellenberg <lars@linbit.com> - 8.9.3-2 |
| - fixes for regression of drbd-8.4 pacemaker integration |
| |
| * Tue Jun 16 2015 Philipp Reisner <phil@linbit.com> - 8.9.3-1 |
| - New upstream release. |
| |
| * Fri Apr 03 2015 Philipp Reisner <phil@linbit.com> - 8.9.2-1 |
| - New upstream release. |
| |
| * Fri Aug 08 2014 Lars Ellenberg <lars@linbit.com> - 8.9.1-3 |
| - some more patches had been only merged into the "9" tools, |
| but unfortunately not the 8.4 tool compat tools |
| - place udev rules into $udevdir/*rules.d* |
| - rebuild: fixed default in case pkg-config does not know about udevdir |
| - fixed udev generated "by-disk" symlinks for drbd 8.4 |
| |
| * Tue Aug 05 2014 Lars Ellenberg <lars@linbit.com> - 8.9.1-1 |
| - New upstream release. |
| |
| * Tue Jun 10 2014 Philipp Reisner <phil@linbit.com> - 8.9.0-1 |
| - New upstream release. |
| |