%define mariadb_epoch_default   1
%define mariadb_version_default 5.5.56
%define mariadb_release_default 2
%define mariadb_dist_default    .el7
%define mariadb_download_base_url_default http://vault.centos.org/7.4.1708/os/Source/SPackages/
%define mariadb_spec_file_default mariadb.spec

%define _mariadb_epoch %{?mariadb_epoch:%{mariadb_epoch}}%{!?mariadb_epoch:%{mariadb_epoch_default}}
%define _mariadb_version %{?mariadb_version:%{mariadb_version}}%{!?mariadb_version:%{mariadb_version_default}}
%define _mariadb_release %{?mariadb_release:%{mariadb_release}}%{!?mariadb_release:%{mariadb_release_default}}
%define _mariadb_dist %{?mariadb_dist:%{mariadb_dist}}%{!?mariadb_dist:%{mariadb_dist_default}}
%define _mariadb_download_base_url %{?mariadb_download_base_url:%{mariadb_download_base_url}}%{!?mariadb_download_base_url:%{mariadb_download_base_url_default}}
%define _mariadb_spec_file %{?mariadb_spec_file:%{mariadb_spec_file}}%{!?mariadb_spec_file:%{mariadb_spec_file_default}}

%define _mariadb_package_version %{_mariadb_epoch}:%{_mariadb_version}-%{_mariadb_release}%{_mariadb_dist}

%define groonga_required_version @REQUIRED_GROONGA_VERSION@

Name:		mariadb-mroonga
Version:	@VERSION@
Release:	1%{?dist}
Summary:	A fast fulltext searchable storage engine for MariaDB

Group:		Applications/Databases
License:	LGPLv2.1
URL:		http://mroonga.org/
Source0:	http://packages.groonga.org/source/mroonga/mroonga-%{version}.tar.gz

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
BuildRequires:	groonga-devel >= %{groonga_required_version}
BuildRequires:	groonga-normalizer-mysql-devel
BuildRequires:	wget
BuildRequires:	mariadb-devel = %{_mariadb_package_version}
Requires:	mariadb-server = %{_mariadb_package_version}
Requires:	mariadb = %{_mariadb_package_version}
Requires:	groonga-libs >= %{groonga_required_version}
Requires:	groonga-normalizer-mysql

%description
Mroonga is a fast fulltext searchable storage plugin for MariaDB.
It is based on Groonga that is a fast fulltext search engine and
column store. Groonga is good at real-time update.

%package doc
Summary:	Documentation for Mroonga
Group:		Documentation
License:	LGPLv2.1

%description doc
Documentation for Mroonga


%prep
%setup -q -n mroonga-%{version}

mariadb_full_version=%{_mariadb_version}-%{_mariadb_release}%{_mariadb_dist}
srpm=mariadb-${mariadb_full_version}.src.rpm
if [ ! -f ../../SRPMS/$srpm ]; then
  wget --continue -O ../../SRPMS/$srpm %{_mariadb_download_base_url}/$srpm
  rpm -Uvh ../../SRPMS/$srpm
  rm ../../SRPMS/$srpm
fi

%build
mariadb_source=../mariadb-%{_mariadb_version}
if [ ! -d ${mariadb_source} ]; then
  rpmbuild -bc                                  \
    --define 'runselftest 0'                    \
    --define 'optflags -O0'                     \
    ../../SPECS/%{_mariadb_spec_file}
fi
%configure                                      \
  --disable-static                              \
  --with-mysql-source=${mariadb_source}         \
  %{?mroonga_configure_options}
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
rm $RPM_BUILD_ROOT%{_libdir}/mysql/plugin/*.la
mv $RPM_BUILD_ROOT%{_datadir}/doc/mroonga/ mysql-mroonga-doc/

%clean
rm -rf $RPM_BUILD_ROOT

%post
if /usr/bin/mysql -u root -e "quit" > /dev/null 2>&1; then
  password_option=""
else
  password_option="-p"
fi
current_version=0
version=$(echo %{groonga_required_version} | sed -e 's/\.//g')
required_version=$(expr $version)
version=$(/usr/bin/mysql -e "SHOW VARIABLES LIKE 'mroonga_libgroonga_version'" | \
  grep mroonga | cut -f 2 | sed -e 's/\.//g')
if [ -n "$version" ]; then
  current_version=$(expr $version)
fi
install_sql=%{_datadir}/mroonga/install.sql
uninstall_sql=%{_datadir}/mroonga/uninstall.sql

if [ "$1" = 2 ] ; then
  if [ $current_version -lt $required_version ]; then
    command="/usr/bin/mysql -u root $password_option"
    echo "run the following command after restarting MySQL server:";
    echo "  $command < ${uninstall_sql}"
    echo "  $command < ${install_sql}"
    exit 0
  else
    command="/usr/bin/mysql -u root $password_option"
    command="${command} < ${uninstall_sql}"
    echo $command
    eval $command || \
      (echo "run the following command to unregister Mroonga:"; \
       echo "  $command")
  fi
fi

command="/usr/bin/mysql -u root $password_option < ${install_sql}"
echo $command
eval $command || \
  (echo "run the following command to register Mroonga:"; \
   echo "  $command")

%preun
uninstall_sql=%{_datadir}/mroonga/uninstall.sql

if mysql -u root -e "quit" > /dev/null 2>&1; then
  password_option=""
else
  password_option="-p"
fi
if [ "$1" = 0 ]; then
  command="/usr/bin/mysql -u root $password_option < ${uninstall_sql}"
  echo $command
  eval $command || \
    (echo "run the following command to unregister Mroonga:"; \
     echo "  $command")
fi

%files
%defattr(-,root,root,-)
%{_libdir}/mysql/plugin/
%{_datadir}/mroonga/*
%{_datadir}/man/man1/*
%{_datadir}/man/*/man1/*

%files doc
%defattr(-,root,root,-)
%doc README COPYING
%doc mysql-mroonga-doc/*

%changelog
* Thu Oct 12 2017 Kentaro Hayashi <hayashi@clear-code.com> - 7.07-1
- new upstream release.

* Fri Sep 15 2017 Kouhei Sutou <kou@clear-code.com> - 7.06-2
- rebuild against the latest MariaDB.

* Tue Aug 29 2017 Kentaro Hayashi <hayashi@clear-code.com> - 7.06-1
- new upstream release.

* Sat Jul 29 2017 Kentaro Hayashi <hayashi@clear-code.com> - 7.05-1
- new upstream release.

* Thu Jun 29 2017 Kentaro Hayashi <hayashi@clear-code.com> - 7.04-1
- new upstream release.

* Mon May 29 2017 Kentaro Hayashi <hayashi@clear-code.com> - 7.03-1
- new upstream release.

* Sat Apr 29 2017 Kentaro Hayashi <hayashi@clear-code.com> - 7.02-1
- new upstream release.

* Wed Mar 29 2017 Kentaro Hayashi <hayashi@clear-code.com> - 7.01-1
- new upstream release.

* Thu Feb 09 2017 Kentaro Hayashi <hayashi@clear-code.com> - 7.00-1
- new upstream release.

* Sat Oct 29 2016 Kentaro Hayashi <hayashi@clear-code.com> - 6.10-1
- new upstream release.

* Thu Sep 29 2016 Kentaro Hayashi <hayashi@clear-code.com> - 6.09-1
- new upstream release.

* Mon Aug 29 2016 Kentaro Hayashi <hayashi@clear-code.com> - 6.08-1
- new upstream release.

* Fri Jul 29 2016 Kentaro Hayashi <hayashi@clear-code.com> - 6.07-1
- new upstream release.

* Thu Jun 30 2016 Masafumi Yokoyama <yokoyama@clear-code.com> - 6.06-1
- new upstream release.

* Wed Jun 29 2016 Kentaro Hayashi <hayashi@clear-code.com> - 6.05-1
- new upstream release.

* Sun May 29 2016 Kentaro Hayashi <hayashi@clear-code.com> - 6.03-1
- new upstream release.

* Fri Apr 29 2016 HAYASHI Kentaro <hayashi@clear-code.com> - 6.02-1
- new upstream release.

* Tue Mar 29 2016 Masafumi Yokoyama <yokoyama@clear-code.com> - 6.01-1
- new upstream release.

* Mon Feb 29 2016 Kouhei Sutou <kou@clear-code.com> - 6.00-1
- new upstream release.

* Tue Dec 29 2015 Kouhei Sutou <kou@clear-code.com> - 5.11-1
- new upstream release.

* Wed Dec 16 2015 Kouhei Sutou <kou@clear-code.com> - 5.10-2
- rebuild against MariaDB on CentOS 7.2. Reported by Larry Kim. Thanks!!!

* Sun Nov 29 2015 Kouhei Sutou <kou@clear-code.com> - 5.10-1
- new upstream release.

* Thu Oct 29 2015 Kouhei Sutou <kou@cozmixng.org> - 5.09-1
- new upstream release.

* Tue Sep 29 2015 Kouhei Sutou <kou@clear-code.com> - 5.08-1
- new upstream release.

* Mon Aug 31 2015 Kouhei Sutou <kou@clear-code.com> - 5.06-1
- new upstream release.

* Wed Jul 29 2015 Masafumi Yokoyama <yokoyama@clear-code.com> - 5.05-1
- new upstream release.

* Mon Jun 29 2015 Masafumi Yokoyama <myokoym@gmail.com> - 5.04-1
- new upstream release.

* Fri May 29 2015 HAYASHI Kentaro <hayashi@clear-code.com> - 5.03-1
- new upstream release.

* Wed Apr 29 2015 HAYASHI Kentaro <hayashi@clear-code.com> - 5.02-1
- new upstream release.

* Sun Mar 29 2015 HAYASHI Kentaro <hayashi@clear-code.com> - 5.01-1
- new upstream release.

* Mon Feb 09 2015  <hayashi@clear-code.com> - 5.00-1
- new upstream release.

* Thu Jan 29 2015 HAYASHI Kentaro <hayashi@clear-code.com> - 4.10-1
- new upstream release.

* Wed Jan 14 2015 HAYASHI Kentaro <hayashi@clear-code.com> - 4.09-2
- build against mariadb-5.5.40-2.el7_0.

* Mon Dec 29 2014 Kouhei Sutou <kou@cozmixng.org> - 4.09-1
- new upstream release.

* Sat Nov 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.08-1
- new upstream release.

* Wed Oct 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.07-1
- new upstream release.

* Mon Sep 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.06-1
- new upstream release.

* Fri Aug 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.05-1
- new upstream release.

* Thu Aug 14 2014 Kouhei Sutou <kou@clear-code.com> - 4.04-4
- build MariaDB for libmysqlservices.a.

* Thu Aug 14 2014 Kouhei Sutou <kou@clear-code.com> - 4.04-3
- support epoch in MariaDB.

* Wed Aug 13 2014 Kouhei Sutou <kou@clear-code.com> - 4.04-2
- build against mariadb-5.5.37-1.el7_0.

* Sun Aug 10 2014 Kouhei Sutou <kou@clear-code.com> - 4.04-1
- initial packaging for CentOS 7 based on mysql-mroogna package.

* Tue Jul 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.04-1
- new upstream release.

* Thu May 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.03-1
- new upstream release.

* Tue Apr 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.02-1
- new upstream release.

* Sat Mar 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.01-1
- new upstream release.

* Thu Feb 13 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-2
- use MySQL 5.1.73-3 on CentOS 6.

* Sun Feb 09 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-1
- new upstream release.

* Wed Jan 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 3.12-1
- new upstream release.

* Sun Dec 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.11-1
- new upstream release.

* Sat Dec 7 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.10-2
- use MySQL 5.1.71-1 on CentOS 6.

* Fri Nov 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.10-1
- new upstream release.

* Tue Oct 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.09-1
- new upstream release.

* Sun Sep 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.08-1
- new upstream release.
- use MySQL 5.6.14-1 on CentOS 5.

* Wed Sep 4 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.07-2
- fix a bug that mroonga is removed accidentally on upgrade #1918.
  Reported by @ceekz. Thanks!!!

* Thu Aug 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.07-1
- new upstream release.
- use MySQL 5.6.13-1 on CentOS 5.

* Mon Jul 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.06-1
- new upstream release.
- use MySQL 5.6.12-2 on CentOS 5.

* Sat Jun 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.05-1
- new upstream release.
- use MySQL 5.6.12 on CentOS 5.

* Wed May 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.04-1
- new upstream release.

* Fri May 10 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.03-2
- use MySQL 5.6.11-2 on CentOS 5. see http://bugs.mysql.com/bug.php?id=69027
  Reported by Y.Kentaro. Thanks!!!

* Mon Apr 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.03-1
- new upstream release.

* Fri Mar 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.02-0
- new upstream release.

* Thu Feb 28 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.01-0
- new upstream release.

* Sat Feb 09 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.00-0
- new upstream release.
- require groonga 3.0.0 or later

* Tue Feb 05 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 2.10-2
- use MySQL 5.1.67-1 on CentOS 6.
  Reported by wakisuke.ua. Thanks!!!

* Sat Dec 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.10-0
- new upstream release.

* Mon Dec 10 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.09-1
- use MySQL 5.1.66-2 on CentOS 6.
  Reported by wakisuke.ua. Thanks!!!

* Thu Nov 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.09-0
- new upstream release.
- use MySQL 5.5.28 on CentOS 5.
- use MySQL 5.1.66 on CentOS 6.

* Mon Oct 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.08-0
- new upstream release.
- add missing "DROP FUNCTION mroonga_snippet".
  Reported by @tokuhy. Thanks!!!

* Sat Sep 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.07-0
- new upstream release.

* Wed Aug 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.06-0
- new upstream release.
- make MySQL spec file name customizable.
- make mroonga configure options customizable.
- add missing mysql-devel BuildRequires. Reported by wing. Thanks!!!
- use MySQL 5.5.27.

* Sun Jul 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.05-0
- new upstream release.
- use MySQL 5.5.25a.

* Fri Jun 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.04-0
- new upstream release.
- ensure deleting mroonga plugin before install.
  Suggested by Kazuhiro Isobe. Thanks!!!
- use MySQL 5.5.25.

* Tue May 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.03-0
- new upstream release.
- use MySQL 5.5.24.
- make mysql_* variables customizable
- require groonga 2.0.3 or later.

* Sun Apr 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.02-0
- new upstream release.
- use MySQL 5.5.23.
- require groonga 2.0.2 or later.

* Thu Mar 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.01-0
- new upstream release.
- ensure plugin is uninstalled by closing all tables use mroonga.

* Wed Feb 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.00-0
- new upstream release.
- always install/uninstall plugin.
- use MySQL 5.1.61 and 5.5.21.
- require groonga 2.0.0 or later.

* Sun Jan 29 2012 Kouhei Sutou <kou@clear-code.com> - 1.20-0
- new upstream release.
- require groonga 1.3.0.
- groonga -> mroonga.
- use MySQL 5.5.20.

* Thu Dec 29 2011 Kouhei Sutou <kou@clear-code.com> - 1.11-0
- new upstream release.

* Sat Oct 29 2011 Kouhei Sutou <kou@clear-code.com> - 1.10-0
- new upstream release.
- groonga storage engine -> mroonga.

* Thu Sep 29 2011 Kouhei Sutou <kou@clear-code.com> - 1.0.0-0
- new upstream release.

* Mon Aug 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.9-0
- new upstream release.

* Fri Jul 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.8-0
- new upstream release.

* Wed Jun 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.7-0
- new upstream release.

* Sun May 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.6-0
- new upstream release.

* Tue May 17 2011 Kouhei Sutou <kou@clear-code.com> - 0.5-2
- use MySQL 5.5.12.

* Tue Mar 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.5-1
- new upstream release.

* Sat Jan 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.4-4
- do not remove plugin on upgrade.

* Wed Jan 12 2011 Kouhei Sutou <kou@clear-code.com> - 0.4-3
- rebuild without debug symbol.

* Thu Dec 30 2010 Kouhei Sutou <kou@clear-code.com> - 0.4-2
- use MySQL 5.5.8-1.
- fix SQL literal notation.

* Mon Nov 29 2010 Kouhei Sutou <kou@clear-code.com> - 0.4-1
- use the latest MySQL.
- new upstream release.

* Sun Nov 21 2010 Kouhei Sutou <kou@clear-code.com> - 0.3-2
- install user define function.

* Fri Oct 29 2010 Kouhei Sutou <kou@clear-code.com> - 0.3-1
- new upstream release.

* Fri Oct 08 2010 Kouhei Sutou <kou@clear-code.com> - 0.2-2
- specify target MySQL version.
- use %{version}.

* Wed Sep 29 2010 Kouhei Sutou <kou@clear-code.com> - 0.2-1
- new upstream release.

* Sun Sep 12 2010 Kouhei Sutou <kou@clear-code.com> - 0.1-3
- require MySQL-client-community.

* Fri Sep 10 2010 Kouhei Sutou <kou@clear-code.com> - 0.1-2
- use MySQL-devel-community.

* Fri Sep 03 2010 Kouhei Sutou <kou@clear-code.com> - 0.1-1
- initial packaging for CentOS.
