Blob Blame History Raw

Name: mysql-mmm
Version: 2.1.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}-1.pdf
Source3: mysql-mmm-agent.init
Source4: mysql-mmm-monitor.init
Source5: mmm_mon_log.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.0.9-paths.patch
Patch1: mysql-mmm-2.0.9-configs.patch 
Patch4: mysql-mmm-2.0.10-default_logging.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
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 mmmd_mon 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}-1.pdf
EOF


%patch0 -p1 
%patch1 -p1
%patch4 -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}

install -m 0644 %SOURCE1 %{buildroot}%{_sysconfdir}/logrotate.d/mysql-mmm

# 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

# Additional logs
install -m 0640 %SOURCE5 %{buildroot}%{_sysconfdir}/%{name}/mmm_mon_log.conf

%clean
%{__rm} -rf %{buildroot}


%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}-1.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
%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
%attr(755,root,root) %{_sysconfdir}/init.d/mysql-mmm-agent
%{perl_vendorlib}/MMM/Agent
%{_libexecdir}/mysql-mmm/agent/
%{_sbindir}/mmmd_agent

%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
%attr(755,root,root) %{_sysconfdir}/init.d/mysql-mmm-monitor
%{perl_vendorlib}/MMM/Monitor
%{_libexecdir}/mysql-mmm/monitor/
%{_sbindir}/mmmd_mon
%{_sbindir}/mmm_control


%changelog
* Mon Feb 22 2010 BJ Dierkes <wdierkes@rackspace.com> - 2.1.0-1
- Latest sources from upstream

* 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)