diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | mysqlnd_ms.ini | 35 | ||||
-rw-r--r-- | php-pecl-mysqlnd-ms.spec | 217 |
3 files changed, 256 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1e65467 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../common/Makefile + diff --git a/mysqlnd_ms.ini b/mysqlnd_ms.ini new file mode 100644 index 0000000..584857f --- /dev/null +++ b/mysqlnd_ms.ini @@ -0,0 +1,35 @@ +; Enable mysqlnd_qc extension module +extension=mysqlnd_ms.so + +; Configuration documentation +; http://www.php.net/manual/en/mysqlnd-ms.configuration.php + +; Enables or disables the plugin. If set to disabled, the extension +; will not plug into mysqlnd to proxy internal mysqlnd C API calls. +;mysqlnd_ms.enable = 0 + +; If enabled the plugin checks if the host (server) parameter value of +; any MySQL connection attempt matches a section name from the plugin +; configuration file. If not, the connection attempt is blocked. +;mysqlnd_ms.force_config_usage = 0 + +; Plugin specific configuration file. +;mysqlnd_ms.ini_file = "/etc/mysqlnd_ms.json" + +; Enables or disables the collection of statistics. The collection of +; statistics is disabled by default for performance reasons. +; Statistics are returned by the function mysqlnd_ms_get_stats(). +;mysqlnd_ms.collect_statistics = 0 + +; Enables or disables support of MySQL multi master replication setups. +; This feature is experimental. It will not be documented before reasonable +; stability has been achieved. It is meant for development only. +;mysqlnd_ms.multi_master = 0 + +; Enables or disables built-in read write splitting. +; Controls whether load balancing and lazy connection functionality can be used +; independently of read write splitting. If read write splitting is disabled, +; only servers from the master list will be used for statement execution. +; All configured slave servers will be ignored. +;mysqlnd_ms.disable_rw_split = 0 + diff --git a/php-pecl-mysqlnd-ms.spec b/php-pecl-mysqlnd-ms.spec new file mode 100644 index 0000000..6519585 --- /dev/null +++ b/php-pecl-mysqlnd-ms.spec @@ -0,0 +1,217 @@ +%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}} +%global pecl_name mysqlnd_ms + +Summary: A replication and load balancing plugin for mysqlnd +Name: php-pecl-mysqlnd-ms +Version: 1.3.2 +Release: 2%{?dist} + +License: PHP +Group: Development/Languages +URL: http://pecl.php.net/package/mysqlnd_ms + +Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz + +# From http://www.php.net/manual/en/mysqlnd-ms.configuration.php +Source1: %{pecl_name}.ini + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: php-devel >= 5.3.6 +BuildRequires: php-mysqlnd +BuildRequires: php-pear + +Requires(post): %{__pecl} +Requires(postun): %{__pecl} + +Requires: php-mysqlnd%{?_isa} +Requires: php(zend-abi) = %{php_zend_api} +Requires: php(api) = %{php_core_api} + +Provides: php-pecl(%{pecl_name}) = %{version}-%{release} +Provides: php-pecl(%{pecl_name})%{?_isa} = %{version}-%{release} + +# RPM 4.8 +%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} +%{?filter_setup} +# RPM 4.9 +%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}%{_libdir}/.*\\.so$ + + +%description +The replication and load balancing plugin is a plugin for the mysqlnd library. +It can be used with PHP MySQL extensions (ext/mysql, ext/mysqli, PDO_MySQL), +if they are compiled to use mysqlnd. The plugin inspects queries to do +read-write splitting. Read-only queries are send to configured MySQL +replication slave servers all other queries are redirected to the MySQL +replication master server. Very little, if any, application changes required, +dependent on the usage scenario required. + +Documentation : http://www.php.net/mysqlnd_ms + + +%package devel +Summary: Mysqlnd_ms developer files (header) +Group: Development/Libraries +Requires: php-pecl-mysqlnd-ms%{?_isa} = %{version}-%{release} +Requires: php-devel + +%description devel +These are the files needed to compile programs using mysqlnd_ms extension. + + +%prep +%setup -c -q + +cp %{SOURCE1} %{pecl_name}.ini + +extver=$(sed -n '/#define MYSQLND_MS_VERSION /{s/.* "//;s/".*$//;p}' %{pecl_name}-%{version}/mysqlnd_ms.h) +if test "x${extver}" != "x%{version}"; then + : Error: Upstream version is ${extver}, expecting %{version}. + exit 1 +fi + +%if 0%{?__ztsphp:1} +# Build ZTS extension if ZTS devel available (fedora >= 17) +cp -r %{pecl_name}-%{version} %{pecl_name}-zts +%endif + + +%build +cd %{pecl_name}-%{version} +%{_bindir}/phpize +%configure \ + --with-libdir=%{_lib} \ + --enable-mysqlnd-ms \ + --with-php-config=%{_bindir}/php-config +make %{?_smp_mflags} + +%if 0%{?__ztsphp:1} +cd ../%{pecl_name}-zts +%{_bindir}/zts-phpize +%configure \ + --with-libdir=%{_lib} \ + --enable-mysqlnd-ms \ + --with-php-config=%{_bindir}/zts-php-config +make %{?_smp_mflags} +%endif + +%install +rm -rf %{buildroot} +# for short-circuit +rm -f %{pecl_name}-*/modules/{json,mysqlnd}.so + +make install -C %{pecl_name}-%{version} \ + INSTALL_ROOT=%{buildroot} + +%if 0%{?__ztsphp:1} +make install -C %{pecl_name}-zts \ + INSTALL_ROOT=%{buildroot} + +# Drop in the bit of configuration +install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_ztsinidir}/%{pecl_name}.ini +%endif +install -D -m 644 %{pecl_name}.ini %{buildroot}%{_sysconfdir}/php.d/%{pecl_name}.ini + +# Install XML package description +install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml + + +%clean +rm -rf %{buildroot} + + +%post +%{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : + + +%postun +if [ $1 -eq 0 ] ; then + %{pecl_uninstall} %{pecl_name} >/dev/null || : +fi + + +%check +cd %{pecl_name}-%{version} +ln -sf %{php_extdir}/mysqlnd.so modules/ +ln -sf %{php_extdir}/json.so modules/ + +# only check if build extension can be loaded +php -n -q \ + -d extension_dir=modules \ + -d extension=json.so \ + -d extension=mysqlnd.so \ + -d extension=%{pecl_name}.so \ + --modules | grep %{pecl_name} + +%if 0%{?__ztsphp:1} +cd ../%{pecl_name}-zts +ln -sf %{php_ztsextdir}/mysqlnd.so modules/ +ln -sf %{php_ztsextdir}/json.so modules/ + +# only check if build extension can be loaded +%{__ztsphp} -n -q \ + -d extension_dir=modules \ + -d extension=json.so \ + -d extension=mysqlnd.so \ + -d extension=%{pecl_name}.so \ + --modules | grep %{pecl_name} +%endif + + +%files +%defattr(-, root, root, -) +%doc %{pecl_name}-%{version}/{CHANGES,CREDITS,LICENSE,README} +%{pecl_xmldir}/%{name}.xml + +%config(noreplace) %{_sysconfdir}/php.d/%{pecl_name}.ini +%{php_extdir}/%{pecl_name}.so + +%if 0%{?__ztsphp:1} +%config(noreplace) %{php_ztsinidir}/%{pecl_name}.ini +%{php_ztsextdir}/%{pecl_name}.so +%endif + +%files devel +%defattr(-,root,root,-) +%{_includedir}/php/ext/%{pecl_name} +%if 0%{?__ztsphp:1} +%{php_ztsincldir}/ext/%{pecl_name} +%endif + + +%changelog +* Mon Apr 30 2012 Remi Collet <remi@fedoraproject.org> - 1.3.2-2 +- rebuild for EL and PHP 5.4 + +* Mon Apr 30 2012 Remi Collet <remi@fedoraproject.org> - 1.3.2-1 +- update to 1.2.3 (stable) +- add version check +- add devel sub-package + +* Thu Feb 02 2012 Remi Collet <remi@fedoraproject.org> - 1.2.2-2 +- build against php 5.4 + +* Thu Feb 02 2012 Remi Collet <remi@fedoraproject.org> - 1.2.2-1 +- update to 1.2.2 (stable) + +* Wed Jan 25 2012 Remi Collet <remi@fedoraproject.org> - 1.1.2-5 +- zts binary in /usr/bin with zts prefix + +* Sun Jan 21 2012 Remi Collet <remi@fedoraproject.org> - 1.1.2-4 +- merge ZTS change for fedora 17 +- filter_setup is enough + +* Sun Nov 13 2011 Remi Collet <remi@fedoraproject.org> - 1.1.2-3 +- build against php 5.4 + +* Mon Nov 07 2011 Remi Collet <remi@fedoraproject.org> - 1.1.2-2 +- update to 1.1.2 (stable) with zts extension + +* Mon Nov 07 2011 Remi Collet <remi@fedoraproject.org> - 1.1.2-1 +- update to 1.1.2 (stable) + +* Fri Oct 14 2011 Remi Collet <remi@fedoraproject.org> - 1.1.1-1 +- update to 1.1.1 + +* Sun Oct 02 2011 Remi Collet <remi@fedoraproject.org> - 1.1.0-1 +- Initial RPM |