Blob Blame History Raw

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)