summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--mysqlnd_ms.ini35
-rw-r--r--php-pecl-mysqlnd-ms.spec217
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