Name: mysql-mmm
Version: 2.2.0
Release: 1%{?dist}
Summary: Multi-Master Replication Manager for MySQL
License: GPLv2
URL: http://mysql-mmm.org
Group: Applications/System
Source: http://mysql-mmm.org/_media/:mmm2:/%{name}-%{version}.tar.gz
Source1: mysql-mmm.logrotate
Source2: http://mysql-mmm.org/_media/:mmm2:/%{name}-%{version}.pdf
Source3: mysql-mmm-agent.init
Source4: mysql-mmm-monitor.init
Source5: mmm_mon_log.conf
Source6: mmm_agent.conf
Source7: mmm_mon.conf
Source8: mmm_tools.conf
Source9: mmm_common.conf
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildArch: noarch
Provides: mmm = %{version}-%{release}
Provides: mysql-master-master = %{version}-%{release}
Patch0: mysql-mmm-2.1.0-paths.patch
%description
MMM (MySQL Master-Master Replication Manager) is a set of flexible scripts
to perform monitoring/failover and management of MySQL Master-Master
replication configurations (with only one node writable at any time). The
toolset also has the ability to read balance standard master/slave
configurations with any number of slaves, so you can use it to move virtual
IP addresses around a group of servers depending on whether they are behind
in replication. In addition to that, it also has scripts for data backups,
resynchronization between nodes etc.
%package agent
Summary: MMM Database Server Agent Daemon and Libraries
Group: Applications/System
Requires: %{name} = %{version}-%{release}
Requires: iproute
Requires: perl-DBD-mysql
Provides: mysql-master-master-agent = %{version}-%{release}
Provides: mmm-agent = %{version}-%{release}
%description agent
Agent daemon and libraries which run on each MySQL server and provides the
monitoring node with a simple set of remote services.
%package monitor
Summary: MMM Monitor Server Daemon and Libraries
Group: Applications/System
Requires: %{name} = %{version}-%{release}
Requires: perl(Class::Singleton), perl(DBD::mysql)
Provides: mysql-master-master-monitor = %{version}-%{release}
Provides: mmm-monitor = %{version}-%{release}
%description monitor
Monitoring daemon and libraries that do all monitoring work and make all
decisions about roles moving and so on.
%package tools
Summary: MMM Control Scripts and Libraries
Group: Applications/System
Requires: %{name} = %{version}-%{release}
Provides: mysql-master-master-tools = %{version}-%{release}
Provides: mmm-tools = %{version}-%{release}
%description tools
Scripts and libraries dedicated to management of the mmm_mond processes
by com- mands.
%prep
%setup -q
cp -a %{SOURCE2} .
# currently the README included with mysql-mmm is zero-length
cat >>README <<EOF
Full documentation can be found at:
%{_docdir}/%{name}-%{version}/%{name}-%{version}.pdf
EOF
%patch0 -p1
%build
# pass
%install
rm -rf %{buildroot}
# Install
make install DESTDIR=%{buildroot}
# additional
%{__mkdir_p} %{buildroot}%{_sysconfdir}/logrotate.d \
%{buildroot}%{_localstatedir}/run/%{name} \
%{buildroot}%{_localstatedir}/lib/%{name} \
%{buildroot}%{_datadir}/mysql-mmm
install -m 0644 %SOURCE1 %{buildroot}%{_sysconfdir}/logrotate.d/mysql-mmm
# Replace config files
%{__rm} -f %{buildroot}%{_sysconfdir}/mysql-mmm/*.conf
install -m 0640 %SOURCE5 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_mon_log.conf
install -m 0640 %SOURCE6 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_agent.conf
install -m 0640 %SOURCE7 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_mon.conf
install -m 0640 %SOURCE8 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_tools.conf
install -m 0640 %SOURCE9 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_common.conf
# Replace our init scripts
%{__rm} -f %{buildroot}%{_sysconfdir}/init.d/mysql-mmm-agent
%{__rm} -f %{buildroot}%{_sysconfdir}/init.d/mysql-mmm-monitor
install -m 0755 %SOURCE3 %{buildroot}%{_sysconfdir}/init.d/mysql-mmm-agent
install -m 0755 %SOURCE4 %{buildroot}%{_sysconfdir}/init.d/mysql-mmm-monitor
# Create defaults files
%{__mkdir_p} %{buildroot}%{_sysconfdir}/default
cat >%{buildroot}%{_sysconfdir}/default/mysql-mmm-agent <<EOF
# mysql-mmm-agent defaults
ENABLED=1
EOF
cat >%{buildroot}%{_sysconfdir}/default/mysql-mmm-monitor <<EOF
# mysql-mmm-monitor defaults
ENABLED=1
EOF
%clean
%{__rm} -rf %{buildroot}
%pre agent
# For pre 2.1.0 compatibility
if [ $1 -ge 2 ]; then
# check for old pid path
if [ -e %{_localstatedir}/run/mysql-mmm/mmmd_agent.pid ]; then
mv %{_localstatedir}/run/mysql-mmm/mmmd_agent.pid \
%{_localstatedir}/run/mysql-mmm/mmm_agentd.pid >/dev/null 2>&1 ||:
mv %{_localstatedir}/log/mysql-mmm/mmmd_agent.log \
%{_localstatedir}/log/mysql-mmm/mmm_agentd.log >/dev/null 2>&1 ||:
sed -i 's|mmmd_agent|mmm_agentd|g' %{_sysconfdir}/mysql-mmm/mmm_common.conf >/dev/null 2>&1 ||:
fi
fi
%pre monitor
# For pre 2.1.0 compatibility
if [ $1 -ge 2 ]; then
# check for old pid path
if [ -e %{_localstatedir}/run/mysql-mmm/mmmd_mon.pid ]; then
mv %{_localstatedir}/run/mysql-mmm/mmmd_mon.pid \
%{_localstatedir}/run/mysql-mmm/mmm_mond.pid >/dev/null 2>&1 ||:
mv %{_localstatedir}/log/mysql-mmm/mmmd_mon.log \
%{_localstatedir}/log/mysql-mmm/mmm_mond.log >/dev/null 2>&1 ||:
sed -i 's|mmmd_mon|mmm_mond|g' %{_sysconfdir}/mysql-mmm/mmm_mon.conf >/dev/null 2>&1 ||:
sed -i 's|mmmd_mon|mmm_mond|g' %{_sysconfdir}/mysql-mmm/mmm_mon_log.conf >/dev/null 2>&1 ||:
fi
# check for old status path
if [ -e %{_localstatedir}/lib/mysql-mmm/mmmd_mon.status ]; then
mv %{_localstatedir}/lib/mysql-mmm/mmmd_mon.status \
%{_localstatedir}/lib/mysql-mmm/mmm_mond.status >/dev/null 2>&1 ||:
fi
fi
%post agent
if [ $1 -eq 1 ]; then
/sbin/chkconfig --add mysql-mmm-agent
/sbin/chkconfig mysql-mmm-agent off
elif [ $1 -ge 2 ]; then
/sbin/service mysql-mmm-agent condrestart
fi
%post monitor
if [ $1 -eq 1 ]; then
/sbin/chkconfig --add mysql-mmm-monitor
/sbin/chkconfig mysql-mmm-monitor off
elif [ $1 -ge 2 ] ; then
/sbin/service mysql-mmm-monitor condrestart
fi
%preun agent
if [ $1 -eq 0 ]; then
/sbin/service mysql-mmm-agent stop > /dev/null 2>&1
/sbin/chkconfig --del mysql-mmm-agent
fi
%preun monitor
if [ $1 -eq 0 ]; then
/sbin/service mysql-mmm-monitor stop > /dev/null 2>&1
/sbin/chkconfig --del mysql-mmm-monitor
fi
%files
%defattr(-,root,root,-)
%doc COPYING INSTALL README VERSION %{name}-%{version}.pdf
%dir %{_sysconfdir}/mysql-mmm
%attr(755,root,root) %dir %{_localstatedir}/lib/mysql-mmm
%attr(755,root,root) %dir %{_localstatedir}/run/mysql-mmm
%attr(755,root,root) %dir %{_localstatedir}/log/mysql-mmm
%attr(755,root,root) %dir %{_datadir}/mysql-mmm
%config(noreplace) %{_sysconfdir}/logrotate.d/mysql-mmm
%config(noreplace) %attr(640,root,root) %{_sysconfdir}/mysql-mmm/mmm_common.conf
%{perl_vendorlib}/MMM/Common
%files tools
%defattr(-,root,root,-)
%doc README
%config(noreplace) %attr(644,root,root) %{_sysconfdir}/mysql-mmm/mmm_tools.conf
%{perl_vendorlib}/MMM/Tools
%{_libexecdir}/mysql-mmm/tools/
%{_sbindir}/mmm_backup
%{_sbindir}/mmm_clone
%{_sbindir}/mmm_restore
%files agent
%defattr(-,root,root,-)
%doc README
%config(noreplace) %attr(640,root,root) %{_sysconfdir}/mysql-mmm/mmm_agent.conf
%config(noreplace) %attr(644,root,root) %{_sysconfdir}/default/mysql-mmm-agent
%attr(755,root,root) %{_sysconfdir}/init.d/mysql-mmm-agent
%{perl_vendorlib}/MMM/Agent
%{_libexecdir}/mysql-mmm/agent/
%{_sbindir}/mmm_agentd
%files monitor
%defattr(-,root,root,-)
%doc README
%config(noreplace) %attr(640,root,root) %{_sysconfdir}/mysql-mmm/mmm_mon.conf
%config(noreplace) %attr(640,root,root) %{_sysconfdir}/mysql-mmm/mmm_mon_log.conf
%config(noreplace) %attr(644,root,root) %{_sysconfdir}/default/mysql-mmm-monitor
%attr(755,root,root) %{_sysconfdir}/init.d/mysql-mmm-monitor
%{perl_vendorlib}/MMM/Monitor
%{_libexecdir}/mysql-mmm/monitor/
%{_sbindir}/mmm_mond
%{_sbindir}/mmm_control
%changelog
* Wed Mar 10 2010 BJ Dierkes <wdierkes@rackspace.com> - 2.2.0-1
- Latest upstream release. Resolves LaunchPad Issues 416572, 422549,
531011, 531841, 525719. Full ChangeLog available at:
http://mysql-mmm.org/mmm2:changelog
- Removed Patch5: mysql-mmm-2.1.1-backward_compat.patch, sed conf files
in pre instead (if old pid exists).
* Mon Mar 08 2010 BJ Dierkes <wdierkes@rackspace.com> - 2.1.1-1
- Latest source provides minor update for DBI timeout handling
Full changelog available: http://mysql-mmm.org/mmm2:changelog
- Agent Requires: perl-DBD-mysql. Resolves BZ #568870
- Removed Patch4: mysql-mmm-2.0.10-default_logging.patch (applied
upstream)
- Added Patch5: mysql-mmm-2.1.1-backward_compat.patch for backward
compat with mmm < 2.0
* Thu Feb 25 2010 BJ Dierkes <wdierkes@rackspace.com> - 2.1.0-3
- Fixed init scripts to check for ENABLED only within the start
function.
* Tue Feb 23 2010 BJ Dierkes <wdierkes@rackspace.com> - 2.1.0-2
- Added defaults file for mysql-mmm-agent and mysql-mmm-monitor
Resolves BZ #567753
- Init scripts exit if ENABLED != 1
- Fixed typo in mysql-mmm-monitor where mmmd_mon was still referenced
* Mon Feb 22 2010 BJ Dierkes <wdierkes@rackspace.com> - 2.1.0-1.1
- Latest sources from upstream adds a number of bug fixes. Full
changelog available at http://mysql-mmm.org/mmm2:changelog
- Updated init scripts to reflect new binary paths
(i.e. mmmd_agent -> mmm_agentd)
- Updated Patch0: mysql-mmm-2.1.0-paths.patch
- Removed Patch1: mysql-mmm-2.0.9-configs.patch (added source
config files)
* Wed Feb 17 2010 BJ Dierkes <wdierkes@rackspace.com> - 2.0.11-2
- Rebuild for F13/devel retag
* Mon Feb 08 2010 BJ Dierkes <wdierkes@rackspace.com> - 2.0.11-1
- Latest sources from upstream
- Removed Patch3: mysql-mmm-2.0.10-lp473446.patch (appied upstream)
- Added default mmm_mon_log.conf to allow logger modification
* Fri Dec 04 2009 BJ Dierkes <wdierkes@rackspace.com> - 2.0.10-4
- Add auto_set_online to 60 in mmm_mon.conf
- Provides full version-release for all subpackages
- Append doc location to pdf documentation in README
- Use subsys/lockfile in init scripts
* Thu Nov 19 2009 BJ Dierkes <wdierkes@rackspace.com> - 2.0.10-3
- BuildArch: noarch
- Monitor subpackage Requires: perl(DBD::mysql)
- Provides full version-release for mmm, mysql-master-master
- Removed redundant /var/run/mysql-mmm entry
- Use _localstatedir macro for /var/log/mysql-mmm file listing
- Fixed logic in post and postun scripts to properly handle
install/upgrade conditions.
- Post scripts now perform condrestart
- Added Source3: mysql-mmm-agent.init
- Added Source4: mysql-mmm-monitor.init
* Tue Nov 17 2009 BJ Dierkes <wdierkes@rackspace.com> - 2.0.10-2
- Removed Patch2: mysql-mmm-2.0.10-sleep.patch (obsoleted by Patch3)
- Added Patch3: mysql-mmm-2.0.10-lp473446.patch
- Added Patch4: mysql-mmm-2.0.10-default_logging.patch
* Tue Nov 03 2009 BJ Dierkes <wdierkes@rackspace.com> - 2.0.10-1
- Latest sources from upstream.
- Added Patch1: mysql-mmm-2.0.9-configs.patch
- Added Patch2: mysql-mmm-2.0.10-sleep.patch
- Moved mmm_control under monitor package
* Mon Oct 19 2009 BJ Dierkes <wdierkes@rackspace.com> - 2.0.9-1
- Starting mostly from scratch with 2.0 branch
- Added Patch0: mysql-mmm-2.0.9-patchs.patch
* Tue Oct 13 2009 BJ Dierkes <wdierkes@rackspace.com> - 1.2.6-4
- Cleaning up rpmlint errors
- No longer require perl-DBD-MySQL
* Tue Sep 29 2009 BJ Dierkes <wdierkes@rackspace.com> - 1.2.6-3.3
- Removing .rs tag (Packaging for Fedora/Epel).
* Mon Sep 28 2009 BJ Dierkes <wdierkes@rackspace.com> - 1.2.6-3.2.rs
- Change subpackage -control to -tools
- No longer build or include send_arp, removing requirement of
libnet
- Keep etc config files actually in /etc, symlink at _mmm_instdir/etc
* Thu Sep 23 2009 BJ Dierkes <wdierkes@rackspace.com> - 1.2.6-3.rs
- Cleaned up spec a bit further, moved sed changes to patches
- Added Patch1: mysql-master-master-1.2.6-libnet_1.1.patch
- Added Patch2: mysql-master-master-1.2.6-paths.patch
- Explicitly require libnet >= 1.1
- Added subpackages to break up agent, monitor, and control (backup/restore)
* Mon Sep 21 2009 Andrew Garner <andrew.garner@rackspace.com> - 1.2.6-2.abg
- Added patch for http://code.google.com/p/mysql-master-master/issues/detail?id=35
* Wed Sep 02 2009 Andrew Garner <andrew.garner@rackspace.com> - 1.2.6-1.abg
- New upstream release
* Thu Jul 09 2009 Andrew Garner <andrew.garner@rackspace.com>
- Fix release string to drop out incorrect ~rs identifier
- Updated to release 5.abg
* Thu Apr 16 2009 Andrew Garner <andrew.garner@rackspace.com>
- Change /etc/init.d/mysql-mmm_{mon,agent} back to mmm_{mon,agent}
- symlink /etc/mysql-mmm to /usr/lib/mysql-mmm (not the other way around)
* Mon Apr 14 2009 Andrew Garner <andrew.garner@rackspace.com>
- Cleanup spec
- Use standard state/log paths
- Rebuild fping
- Added dist suffix
- Changed Release to 4.rs-abg
* Sun Apr 13 2009 Andrew Garner <andrew.garner@rackspace.com>
- Fix send_arp for RHEL 5.3's libnet
- Changed /usr/local/mmm to /usr/lib/mysql-mmm/
- Changed /etc/init.d/mmm_{mon,agent} to mysql-mmm_{mon,agent}
- Changed Release to 3.rs-abg
* Thu Apr 09 2009 Andrew Garner <andrew.garner@rackspace.com>
- Updating for Rackspace
* Wed Feb 25 2009 Ryan Lowe <ryan.a.lowe@percona.com>
- Initial build (I owe JayKim)