--- mysql.spec.nodsc 2012-03-20 17:35:11.831545857 +0100 +++ mysql.spec 2012-05-30 16:44:19.311993957 +0200 @@ -1,4 +1,6 @@ -Name: mysql +%{?scl:%scl_package mysql} + +Name: %{?scl_prefix}mysql Version: 5.5.21 Release: 1%{?dist} @@ -66,6 +68,8 @@ Requires: grep, fileutils Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: bash +%{?scl:Requires:%scl_runtime} + # MySQL (with caps) is upstream's spelling of their own RPMs for mysql Conflicts: MySQL # mysql-cluster used to be built from this SRPM, but no more @@ -107,9 +111,9 @@ Requires(preun): chkconfig Requires(preun): initscripts Requires(postun): initscripts # This is for /etc/tmpfiles.d -Requires: systemd-units +#Requires: systemd-units # mysqlhotcopy needs DBI/DBD support -Requires: perl-DBI, perl-DBD-MySQL +#Requires: perl-DBI, perl-DBD-MySQL Conflicts: MySQL-server %description server @@ -200,6 +204,13 @@ the MySQL sources. %patch18 -p1 %patch19 -p1 +# path fixes for dsc +sed -i -e 's|/etc/|%{_sysconfdir}/|' mysys/default.c +sed -i -e 's|/etc/my|%{_sysconfdir}/my|' scripts/mysqld_multi.sh +sed -i -e 's|/etc/|%{_sysconfdir}/|' scripts/mysqlaccess.sh +sed -i -e 's|/usr/|%{_prefix}/|' ./client/mysql_plugin.c +sed -i -e 's|/usr|%{_prefix}|' ./mysql-test/t/file_contents.test + # workaround for upstream bug #56342 rm -f mysql-test/t/ssl_8k_key-master.opt @@ -257,8 +268,8 @@ cmake . -DBUILD_CONFIG=mysql_release \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SQLBENCHDIR=share \ -DINSTALL_SUPPORTFILESDIR=share/mysql \ - -DMYSQL_DATADIR="/var/lib/mysql" \ - -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock" \ + -DMYSQL_DATADIR="%{_scl_root}/var/lib/mysql" \ + -DMYSQL_UNIX_ADDR="%{_scl_root}/var/lib/mysql/mysql.sock" \ -DENABLED_LOCAL_INFILE=ON \ -DENABLE_DTRACE=ON \ -DWITH_EMBEDDED_SERVER=ON \ @@ -332,8 +343,8 @@ find $RPM_BUILD_ROOT -print | sed "s|^$R # we only apply this to known Red Hat multilib arches, per bug #181335 case `uname -i` in i386 | x86_64 | ppc | ppc64 | s390 | s390x | sparc | sparc64 ) - mv $RPM_BUILD_ROOT/usr/include/mysql/my_config.h $RPM_BUILD_ROOT/usr/include/mysql/my_config_`uname -i`.h - install -m 644 %{SOURCE5} $RPM_BUILD_ROOT/usr/include/mysql/ + mv $RPM_BUILD_ROOT%{_includedir}/mysql/my_config.h $RPM_BUILD_ROOT%{_includedir}/mysql/my_config_`uname -i`.h + install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_includedir}/mysql/ ;; *) ;; @@ -353,17 +364,31 @@ chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/my install -m 644 Docs/INFO_SRC ${RPM_BUILD_ROOT}%{_libdir}/mysql/ install -m 644 Docs/INFO_BIN ${RPM_BUILD_ROOT}%{_libdir}/mysql/ -mkdir -p $RPM_BUILD_ROOT/var/log -touch $RPM_BUILD_ROOT/var/log/mysqld.log - -mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d -mkdir -p $RPM_BUILD_ROOT/var/run/mysqld -install -m 0755 -d $RPM_BUILD_ROOT/var/lib/mysql -install -m 0755 %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysqld -install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT/etc/my.cnf +mkdir -p $RPM_BUILD_ROOT%{_scl_root}/var/log +touch $RPM_BUILD_ROOT%{_scl_root}/var/log/mysqld.log -mkdir -p $RPM_BUILD_ROOT/etc/tmpfiles.d -install -m 0644 %{SOURCE10} $RPM_BUILD_ROOT/etc/tmpfiles.d/mysql.conf +mkdir -p $RPM_BUILD_ROOT%{_scl_root}/var/lock/subsys/ +mkdir -p $RPM_BUILD_ROOT%{_root_sysconfdir}/rc.d/init.d +mkdir -p $RPM_BUILD_ROOT%{_scl_root}/var/run/mysqld +install -m 0755 -d $RPM_BUILD_ROOT%{_scl_root}/var/lib/mysql +sed -e 's|/etc/my.cnf|%{_sysconfdir}/my.cnf|' \ + -e 's|/etc/sysconfig/mysqld|%{_sysconfdir}/sysconfig/mysqld|' \ + -e 's|/etc/sysconfig/\$prog|%{_sysconfdir}/sysconfig/\$prog|' \ + -e 's|/var/run/|%{_scl_root}/var/run/|' \ + -e 's|/usr|%{_prefix}|' \ + -e 's|/var/lock/|%{_scl_root}/var/lock/|' \ + -e 's|/var/lib/|%{_scl_root}/var/lib/|' \ + -e 's|/var/log/|%{_scl_root}/var/log/|' \ + <%{SOURCE2} >mysql.init +install -m 0755 mysql.init $RPM_BUILD_ROOT%{_root_sysconfdir}/rc.d/init.d/%{?scl_prefix}mysqld + +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir} +sed -e 's|=/var/|=%{_scl_root}/var/|' >my.cnf <%{SOURCE3} +install -m 0644 my.cnf $RPM_BUILD_ROOT%{_sysconfdir}/my.cnf + +#mkdir -p $RPM_BUILD_ROOT%{_root_sysconfdir}/tmpfiles.d +#sed -e 's|/var/run/mysqld|%{_scl_root}/var/run/mysqld|' <%{SOURCE10} >%{?scl_prefix}mysql.conf +#install -m 0644 %{?scl_prefix}mysql.conf $RPM_BUILD_ROOT%{_root_sysconfdir}/tmpfiles.d/%{?scl_prefix}mysql.conf # Fix funny permissions that cmake build scripts apply to config files chmod 644 ${RPM_BUILD_ROOT}%{_datadir}/mysql/config.*.ini @@ -393,17 +418,18 @@ mv ${RPM_BUILD_ROOT}%{_datadir}/mysql-te ln -s ../../../../../bin/my_safe_process ${RPM_BUILD_ROOT}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process # Remove files that %%doc will install in preferred location -rm -f ${RPM_BUILD_ROOT}/usr/COPYING -rm -f ${RPM_BUILD_ROOT}/usr/README +rm -f ${RPM_BUILD_ROOT}%{_prefix}/COPYING +rm -f ${RPM_BUILD_ROOT}%{_prefix}/README # Remove files we don't want installed at all -rm -f ${RPM_BUILD_ROOT}/usr/INSTALL-BINARY -rm -f ${RPM_BUILD_ROOT}/usr/docs/ChangeLog -rm -f ${RPM_BUILD_ROOT}/usr/data/mysql/.empty -rm -f ${RPM_BUILD_ROOT}/usr/data/test/.empty +rm -f ${RPM_BUILD_ROOT}%{_prefix}/INSTALL-BINARY +rm -f ${RPM_BUILD_ROOT}%{_prefix}/docs/ChangeLog +rm -f ${RPM_BUILD_ROOT}%{_prefix}/data/mysql/.empty +rm -f ${RPM_BUILD_ROOT}%{_prefix}/data/test/.empty # should move this to /etc/ ? rm -f ${RPM_BUILD_ROOT}%{_bindir}/mysqlaccess.conf rm -f ${RPM_BUILD_ROOT}%{_bindir}/mysql_embedded +rm -f ${RPM_BUILD_ROOT}%{_bindir}/mysqlhotcopy rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/*.a rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/binary-configure rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/magic @@ -414,9 +440,10 @@ rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/comp_err.1* rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mysql-stress-test.pl.1* rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mysql-test-run.pl.1* +rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mysqlhotcopy.1* -mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d -echo "%{_libdir}/mysql" > $RPM_BUILD_ROOT/etc/ld.so.conf.d/%{name}-%{_arch}.conf +mkdir -p $RPM_BUILD_ROOT%{_root_sysconfdir}/ld.so.conf.d +echo "%{_libdir}/mysql" > $RPM_BUILD_ROOT%{_root_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf # copy additional docs into build tree so %%doc will find them cp %{SOURCE6} README.mysql-docs @@ -438,15 +465,15 @@ rm -rf $RPM_BUILD_ROOT %post server if [ $1 = 1 ]; then - /sbin/chkconfig --add mysqld + /sbin/chkconfig --add %{?scl_prefix}mysqld fi -/bin/chmod 0755 /var/lib/mysql -/bin/touch /var/log/mysqld.log +/bin/chmod 0755 %{_scl_root}/var/lib/mysql +/bin/touch %{_scl_root}/var/log/mysqld.log %preun server if [ $1 = 0 ]; then - /sbin/service mysqld stop >/dev/null 2>&1 - /sbin/chkconfig --del mysqld + /sbin/service %{?scl_prefix}mysqld stop >/dev/null 2>&1 + /sbin/chkconfig --del %{?scl_prefix}mysqld fi %postun libs @@ -456,7 +483,7 @@ fi %postun server if [ $1 -ge 1 ]; then - /sbin/service mysqld condrestart >/dev/null 2>&1 || : + /sbin/service %{?scl_prefix}mysqld condrestart >/dev/null 2>&1 || : fi @@ -498,7 +525,7 @@ fi %doc README COPYING README.mysql-license # although the default my.cnf contains only server settings, we put it in the # libs package because it can be used for client settings too. -%config(noreplace) /etc/my.cnf +%config(noreplace) %{_sysconfdir}/my.cnf %dir %{_libdir}/mysql %{_libdir}/mysql/libmysqlclient.so.* /etc/ld.so.conf.d/* @@ -550,7 +577,7 @@ fi %{_bindir}/mysqldumpslow %{_bindir}/mysqld_multi %{_bindir}/mysqld_safe -%{_bindir}/mysqlhotcopy +#%{_bindir}/mysqlhotcopy %{_bindir}/mysqltest %{_bindir}/innochecksum %{_bindir}/perror @@ -558,7 +585,7 @@ fi %{_bindir}/resolve_stack_dump %{_bindir}/resolveip -/usr/libexec/mysqld +%{_libexecdir}/mysqld %{_libdir}/mysql/INFO_SRC %{_libdir}/mysql/INFO_BIN @@ -586,7 +613,7 @@ fi %{_mandir}/man1/mysqlcheck.1* %{_mandir}/man1/mysqld_multi.1* %{_mandir}/man1/mysqld_safe.1* -%{_mandir}/man1/mysqlhotcopy.1* +#%{_mandir}/man1/mysqlhotcopy.1* %{_mandir}/man1/mysqlimport.1* %{_mandir}/man1/mysqlman.1* %{_mandir}/man1/mysql_setpermission.1* @@ -607,16 +634,17 @@ fi %{_datadir}/mysql/my-*.cnf %{_datadir}/mysql/config.*.ini -/etc/rc.d/init.d/mysqld -/etc/tmpfiles.d/mysql.conf -%attr(0755,mysql,mysql) %dir /var/run/mysqld -%attr(0755,mysql,mysql) %dir /var/lib/mysql -%attr(0640,mysql,mysql) %config(noreplace) %verify(not md5 size mtime) /var/log/mysqld.log +/etc/rc.d/init.d/%{?scl_prefix}mysqld +#/etc/tmpfiles.d/%{?scl_prefix}mysql.conf +%attr(0755,mysql,mysql) %dir %{_scl_root}/var/run/mysqld +%attr(0755,mysql,mysql) %dir %{_scl_root}/var/lib/mysql +%attr(0640,mysql,mysql) %config(noreplace) %verify(not md5 size mtime) %{_scl_root}/var/log/mysqld.log +%{_scl_root}/var/lock/subsys/ %files devel %defattr(-,root,root) -/usr/include/mysql -/usr/share/aclocal/mysql.m4 +%{_includedir}/mysql +%{_datadir}/aclocal/mysql.m4 %{_libdir}/mysql/libmysqlclient.so %{_libdir}/mysql/libmysqlclient_r.so