File pinba.patch of Package mysql-community-server
Index: build.inc
===================================================================
--- build.inc (revision 3fd960415e46704bb5c233903fe7b702)
+++ build.inc (working copy)
@@ -12,10 +12,10 @@
BuildMySQL() {
# The --enable-assembler simply does nothing on systems that do not
# support assembler speedups.
- suffix="$1"; shift
- mkdir _build$suffix
- pushd _build$suffix
- ../configure \
+ # suffix="$1"; shift
+ # mkdir _build$suffix
+ # pushd _build$suffix
+ ./configure \
--enable-assembler \
--without-readline \
--infodir=%{_infodir} \
@@ -47,11 +47,13 @@
--with-plugins=%{builtin_plugins} \
HOSTNAME="/bin/hostname -f" \
"$@"
+
+ cd include && make && cd ..
# Add this for MyISAM RAID support:
# --with-raid
# benchdir does not fit in above model. Fix when we make a separate package
- make %{?jobs:-j%jobs}
- nm --numeric-sort sql/mysqld > sql/mysqld.sym
+ # make %{?jobs:-j%jobs}
+ # nm --numeric-sort sql/mysqld > sql/mysqld.sym
# needed for make check, which is not VPATH aware
# copy the files unconditionally so that manual 'make check' after
# the build works, too
@@ -61,14 +63,14 @@
done
cp -a ../scripts/*.sql scripts/
%if %{?_with_testsuite:1}0
- pushd mysql-test; perl ./mysql-test-run.pl --force; popd
+ # pushd mysql-test; perl ./mysql-test-run.pl --force; popd
%endif
- popd
+ # popd
}
# Build the client, extra tools, libraries
BuildMySQL "" --with-embedded-server
# build mysqld-debug
-BuildMySQL "-debug" --with-debug --without-embedded-server
+#BuildMySQL "-debug" --with-debug --without-embedded-server
%if 0%{?prefered} > 0
mkdir -p _buildlibmysqld/tmp
@@ -85,9 +87,9 @@
%else # cmake build
BuildMySQL() {
- mkdir _build$1
- pushd _build$1
- shift
+ # mkdir _build$1
+ # pushd _build$1
+ # shift
cmake -DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_READLINE=0 \
@@ -101,13 +103,14 @@
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_EMBEDDED_SERVER=true \
-DDENABLE_DOWNLOADS=false \
- "$@" ..
- make %{?jobs:-j%jobs}
- nm --numeric-sort sql/mysqld > sql/mysqld.sym
- popd
+ "$@" .
+ cd include && make && cd ..
+ #make %{?jobs:-j%jobs}
+ #nm --numeric-sort sql/mysqld > sql/mysqld.sym
+ # popd
}
BuildMySQL "" -DCMAKE_BUILD_TYPE=Release -DINSTALL_SQLBENCHDIR=share
-BuildMySQL "-debug" -DCMAKE_BUILD_TYPE=Debug
+#BuildMySQL "-debug" -DCMAKE_BUILD_TYPE=Debug
%endif
Index: install.inc
===================================================================
--- install.inc (revision 3fd960415e46704bb5c233903fe7b702)
+++ install.inc (working copy)
@@ -1,130 +1,4 @@
-# install the debug server first, so that we don't overwrite the standard
-# /usr/sbin/mysqld
-mkdir -p %buildroot%_libdir/mysql
-make -C _build-debug/sql install DESTDIR=%buildroot
-mv %buildroot/usr/sbin/mysqld %buildroot/usr/sbin/mysqld-debug
-install -m 644 _build-debug/sql/mysqld.sym %buildroot%_libdir/mysql/mysqld-debug.sym
-# install the client, extra tools, libraries and the standard server
-make -C _build install DESTDIR=%buildroot benchdir_root=/usr/share/
-install -m 644 _build/sql/mysqld.sym %buildroot%_libdir/mysql/mysqld.sym
-# remove most static libs (FIXME: don't build them at all...)
-rm -f %buildroot%_libdir/libmysqlclient*a
-rm -f %buildroot%_libdir/libmysqlservices*a
-rm -f %buildroot%_libdir/mysql/*.a %buildroot%_libdir/mysql/*.la
-rm -f %buildroot%_libdir/mysql/plugin/*a
-# XXX: package these? The ndb tools are linked statically atm
-rm -f %buildroot%_libdir/mysql/libndbclient.*
-rm -f %{buildroot}/usr/share/mysql-test/mysql-test-run
-rm -f %{buildroot}/usr/share/mysql-test/mtr
-ln -sf mysql-test-run.pl %{buildroot}/usr/share/mysql-test/mtr
-ln -sf mysql-test-run.pl %{buildroot}/usr/share/mysql-test/mysql-test-run
-mv %{buildroot}/usr/share/mysql-test/lib/My/SafeProcess/my_safe_process %{buildroot}%{_bindir}
-# generate filelist for binaries and their manpages (easier than enumerating
-# all the binaries and manapages manually, esp. when there are new manpages in
-# each release)
-filelist()
-{
- echo '%%defattr(-, root, root)'
- pushd %buildroot >/dev/null
- for i; do
- if test -e usr/sbin/"$i"; then
- echo /usr/sbin/"$i"
- fi
- if test -e usr/bin/"$i"; then
- echo /usr/bin/"$i"
- fi
- if ls usr/share/man/*/"$i".[1-9]* >/dev/null 2>&1; then
- echo "%%doc %_mandir/*/$i.[1-9]*"
- fi
- done
- popd >/dev/null
-}
-filelist innochecksum my_print_defaults myisam_ftdump myisamchk myisamlog myisampack mysql_fix_extensions mysql_fix_privilege_tables mysql_install_db mysql_secure_installation mysql_upgrade mysqlbug mysqld mysqld_multi mysqld_safe mysqlbinlog mysqldumpslow mysqlmanager resolve_stack_dump resolveip {m,}aria_chk {m,}aria_dump_log {m,}aria_ftdump {m,}aria_pack {m,}aria_read_log xtstat >mysql.files
-filelist mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow >mysql-client.files
-filelist mysql_config >libmysqlclient-devel.files
-filelist mysqlslap >mysql-bench.files
-filelist mysql_client_test mysql_client_test_embedded mysql_waitpid mysqltest mysqltest_embedded >mysql-test.files
-# all binaries that don't need to be in a "default" install (mysql.rpm +
-# mysql-client.rpm)
-filelist msql2mysql mysql_convert_table_format mysql_find_rows mysql_setpermission mysql_tzinfo_to_sql mysql_zap mysqlaccess mysqlhotcopy perror replace mysql_embedded mysql_plugin >mysql-tools.files
-filelist ndbd ndbmtd ndbd_redo_log_reader >mysql-ndb-storage.files
-filelist ndb_mgmd >mysql-ndb-management.files
-filelist ndb_{config,desc,error_reporter,mgm,print_backup_file,print_schema_file,print_sys_file,restore,select_all,select_count,show_tables,size.pl,test_platform,waiter} >mysql-ndb-tools.files
-filelist ndb_{cpcd,delete_all,drop_index,drop_table} >mysql-ndb-extra.files
-rm -f %{buildroot}%{_libdir}/mysql/plugin/daemon_example.ini
-### files not installed by make install
-# Create directory structure
-DOCS=(COPYING README EXCEPTIONS-CLIENT %_sourcedir/README.debug %_sourcedir/README.SuSE plugin/daemon_example/daemon_example.ini)
-DOCDIR=%buildroot%_defaultdocdir/%name
-install -d -m 755 ${DOCDIR}
-install -d -m 755 %buildroot/etc/logrotate.d
-install -d -m 755 %buildroot/etc/init.d
-install -m 644 _build/support-files/mysql-log-rotate %buildroot/etc/logrotate.d/mysql
-%if 0%{?prefered} > 0%{?use_cmake}
-install -m 644 _buildlibmysqld/*.so* %buildroot%_libdir
-ln -s libmysqld.so.0.0.1 %buildroot%_libdir/libmysqld.so.0
-ln -s libmysqld.so.0.0.1 %buildroot%_libdir/libmysqld.so
-%endif
-install -m 660 _build/support-files/my-medium.cnf %buildroot/etc/my.cnf
-install -m 640 scripts/mysqlaccess.conf %buildroot/etc/mysqlaccess.conf
-for i in "${DOCS[@]}"; do
- install -m 644 "${i}" "${DOCDIR}" || true
-done
-install -m 755 %_sourcedir/rc.mysql-multi %buildroot/etc/init.d/mysql
-ln -sf ../../etc/init.d/mysql %buildroot/usr/sbin/rcmysql
-# this is used by the init script
-install -m 755 -d %buildroot/var/run/mysql
-# SuSEfirewall service description
-install -D -m 644 %_sourcedir/mysql.SuSEfirewall2 \
- %buildroot/etc/sysconfig/SuSEfirewall2.d/services/mysql
-# testsuite
-mkdir -p '%buildroot'/usr/share/mysql-test/
-install -m 755 suse-test-run '%buildroot'/usr/share/mysql-test/
-# XXX this should go under /var/..., but some tests get confused by a symlink
-# var -> ../../../var/...
-#ln -sf ../../../var/lib/mysql/mysql-test %buildroot/usr/share/mysql-test/var
-mkdir '%buildroot'/usr/share/mysql-test/var
-# Final fixes
-find '%buildroot'/usr/share/mysql-test -name '*.orig' -delete
-%if 0%{?suse_version} > 1030
-%fdupes -s '%buildroot'/usr/share/mysql-test
-%endif
-%if 0%{?fedora_version} > 8
-fdupes -q -n -r '%buildroot'/usr/share/mysql-test
-%endif
-dos2unixConversion() {
- %{__sed} -i 's/\r//g' "$1"
-}
-for i in `grep -Rl '\r' '%buildroot'/usr/share/sql-bench`; do
- dos2unixConversion "$i"
-done
-%if ! 0%{cluster} > 0
-cat mysql-ndb-storage.files mysql-ndb-management.files \
- mysql-ndb-tools.files mysql-ndb-extra.files | \
- sed 's|^%%doc\ ||' | while read tmp; do
- cd '%buildroot'
- rm -f .$tmp
-done
-%endif
-%if ! 0%{prefered} > 0
-cat libmysqlclient-devel.files | while read tmp; do
- cd '%buildroot'
- rm -f .$tmp
-done
-rm -rf '%buildroot'/%_libdir/libmysqld.*
-rm -rf '%buildroot'/%_libdir/*.la
-rm -rf '%buildroot'/%_libdir/*.so
-rm -rf '%buildroot'/%_libdir/*.a
-rm -rf '%buildroot'/%_includedir
-rm -rf '%buildroot'/%_datadir/man/*/mysql_config*
-rm -rf '%buildroot'/%_datadir/aclocal
-%endif
-sed -i 's|doc/packages/mysql|doc/packages/%{name}|g' '%buildroot'/etc/init.d/mysql
-ln -s mysqlcheck '%buildroot'%_bindir/mysqlrepair
-ln -s mysqlcheck '%buildroot'%_bindir/mysqlanalyze
-ln -s mysqlcheck '%buildroot'%_bindir/mysqloptimize
-if [ -f '%buildroot'/usr/bin/mysqlaccess.conf ]; then
- mv '%buildroot'/usr/bin/mysqlaccess.conf '%buildroot'/etc/mysqlaccess.conf
-fi
-mkdir -p '%buildroot'/etc/mysql
-[ -z "`ls -1 %_sourcedir/*.cnf`" ] || cp %_sourcedir/*.cnf '%buildroot'/etc/mysql
+cd ../pinba_engine-%{pinba_version}%{pinba_version_suffix}
+make install
+rm -rf %{buildroot}/%{_libdir}/mysql/plugin/*.la
+rm -rf %{buildroot}/%{_libdir}/mysql/plugin/*.a
Index: mysql-community-server.spec
===================================================================
--- mysql-community-server.spec (revision 3fd960415e46704bb5c233903fe7b702)
+++ mysql-community-server.spec (working copy)
@@ -18,10 +18,13 @@
# norootforbuild
# Few definitions which will alter build
-%define prefered 1
+%define prefered 0
%define use_cmake 1
%define cluster 0
%define builtin_plugins partition,csv,heap,myisam,innobase
+
+%define pinba_version 1.0.0
+%define pinba_version_suffix -dev
%if %{?rel:0}%{!?rel:1}
%define rel 1
@@ -52,6 +55,7 @@
Source12: series
Source13: default_plugins.cnf
Source14: old-ssl.series
+Source100: pinba_engine-%{pinba_version}%{pinba_version_suffix}.tar.gz
Patch1: mysql-5.5.15-arm.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version}
@@ -117,6 +121,25 @@
David Axmark <davida@mysql.com>
+%package -n pinba-mysql-engine
+Summary: Pinba is a realtime monitoring/statistics server for PHP using MySQL as a read-only interface
+License: GPLv2
+Group: Productivity/Databases/Servers
+Url: http://pinba.org
+BuildRequires: Judy-devel libevent-devel libprotobuf-lite7 protobuf-devel
+
+%description -n pinba-mysql-engine
+Pinba is a realtime monitoring/statistics server for PHP using MySQL as a read-only interface.
+
+It accumulates and processes data sent over UDP by multiple PHP processes and displays statistics
+in a nice human-readable form of simple "reports", also providing read-only interface to the raw data
+in order to make possible generation of more sophisticated reports and stats.
+
+With Pinba extension users also can measure particular parts of the code using timers with arbitrary tags.
+
+Pinba is not a debugging tool in a common sense, since you're not supposed to do debugging on production
+servers, but its main goal is to help developers to monitor performance of PHP scripts,
+locate bottlenecks in realtime and direct developers' attention to the code that really needs it.
%if 0%{?prefered} > 0
#-------------------------------------------------------------------------------
@@ -396,6 +419,9 @@
%prep
#-------------------------------------------------------------------------------
+%setup -q -T -b 100 -n pinba_engine-%{pinba_version}%{pinba_version_suffix}
+cd ..
+
%setup -q -n mysql-%version -D -a 9
cp %_sourcedir/README.SuSE .
cp %_sourcedir/suse-test-run .
@@ -415,11 +441,13 @@
rm -f sql/sql_builtin.cc
sed -i 's|@localstatedir@|/var/log|' support-files/mysql-log-rotate.sh
-#-------------------------------------------------------------------------------
-
%build
#-------------------------------------------------------------------------------
%{expand:%(cat %_sourcedir/build.inc)}
+
+cd ../pinba_engine-%{pinba_version}%{pinba_version_suffix}
+%configure --with-mysql=../mysql-%{version} --libdir=%{buildroot}%{_libdir}/mysql/plugin --datadir=%{buildroot}%{_datadir} --disable-static
+make %{?jobs:-j%jobs}
#-------------------------------------------------------------------------------
@@ -510,145 +538,13 @@
#-------------------------------------------------------------------------------
-%files -f mysql.files
-#-------------------------------------------------------------------------------
+%files -n pinba-mysql-engine
%defattr(-, root, root)
-%config(noreplace) %attr(0640, root, mysql) /etc/my.cnf
-%dir %attr(0750, root, mysql) /etc/mysql
-%config(noreplace) %attr(0640, root, mysql) /etc/mysql/*
-%config /etc/logrotate.d/mysql
-%doc %{_defaultdocdir}/%{name}
-%doc %{_infodir}/mysql.info.*
-/etc/init.d/mysql
-/usr/sbin/rcmysql
-/usr/share/mysql/
-%ghost %dir %attr(755,mysql,mysql)/var/run/mysql
-%dir %{_libdir}/mysql
-%{_libdir}/mysql/mysqld.sym
-%config /etc/sysconfig/SuSEfirewall2.d/services/mysql
+%dir %_libdir/mysql
%dir %_libdir/mysql/plugin
-%_libdir/mysql/plugin/*.so
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files client -f mysql-client.files
-#-------------------------------------------------------------------------------
-%defattr(-, root, root)
-%config /etc/mysqlaccess.conf
-#-------------------------------------------------------------------------------
-
-%if 0%{prefered} > 0
-#-------------------------------------------------------------------------------
-
-%files -n libmysqlclient-devel -f libmysqlclient-devel.files
-#-------------------------------------------------------------------------------
-%defattr(-, root, root)
-/usr/include/mysql
-%{_libdir}/libmysqlclient.so
-%{_libdir}/libmysqlclient_r.so
-/usr/share/aclocal/mysql.m4
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files -n libmysqld-devel
-#-------------------------------------------------------------------------------
-%defattr(-,root,root)
-%_libdir/libmysqld.a
-%_libdir/libmysqld.so
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files -n libmysqld18
-#-------------------------------------------------------------------------------
-%defattr(-,root,root)
-%_libdir/libmysqld.so.*
-#-------------------------------------------------------------------------------
-%endif
-
-#-------------------------------------------------------------------------------
-
-%files -n libmysqlclient18
-#-------------------------------------------------------------------------------
-%defattr(-, root, root)
-%{_libdir}/libmysqlclient.so.*
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files -n libmysqlclient_r18
-#-------------------------------------------------------------------------------
-%defattr(-, root, root)
-%{_libdir}/libmysqlclient_r.so.*
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files bench -f mysql-bench.files
-#-------------------------------------------------------------------------------
-%defattr(-, root, root)
-/usr/share/sql-bench
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-%if %{defined mdkversion}
-
-%files debuging
-%else
-
-%files debug
-%endif
-#-------------------------------------------------------------------------------
-%defattr(-, root, root)
-/usr/sbin/mysqld-debug
-%{_libdir}/mysql/mysqld-debug.sym
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files test -f mysql-test.files
-#-------------------------------------------------------------------------------
-%defattr(-, root, root)
-%{_bindir}/my_safe_process
-%_mandir/man1/mysql-test-run.pl.1*
-%_mandir/man1/mysql-stress-test.pl.1*
-/usr/share/mysql-test/valgrind.supp
-%dir %attr(755, root, root)/usr/share/mysql-test
-/usr/share/mysql-test/[^v]*
-%dir %attr(755, mysql, mysql) /usr/share/mysql-test/var
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files tools -f mysql-tools.files
-%defattr(-, root, root)
-%_bindir/mysqlrepair
-%_bindir/mysqlanalyze
-%_bindir/mysqloptimize
-#-------------------------------------------------------------------------------
-
-%if 0%{cluster} > 0
-#-------------------------------------------------------------------------------
-
-%files ndb-storage -f mysql-ndb-storage.files
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files ndb-management -f mysql-ndb-management.files
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files ndb-tools -f mysql-ndb-tools.files
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-
-%files ndb-extra -f mysql-ndb-extra.files
-#-------------------------------------------------------------------------------
-%endif
+%_libdir/mysql/plugin/libpinba_engine.so*
+%dir %_datadir/pinba_engine
+%doc %_datadir/pinba_engine/README
+%_datadir/pinba_engine/default_tables.sql
%changelog