summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-08-18 08:20:55 +0000
committerCoprDistGit <infra@openeuler.org>2023-08-18 08:20:55 +0000
commitaa29e0dd075dc6cd124b99b4dbccc6734ad70175 (patch)
tree73f19b6f042e2efaf54cd6e4f88f5298021b3cd4
parentf640beb98721f6efa36b6289f2cc282afb5dad55 (diff)
automatic import of greatsqlopeneuler22.03_LTS_SP2
-rw-r--r--greatsql.spec100
1 files changed, 97 insertions, 3 deletions
diff --git a/greatsql.spec b/greatsql.spec
index ce0e67d..efd292d 100644
--- a/greatsql.spec
+++ b/greatsql.spec
@@ -67,6 +67,84 @@ as well as related utilities to run and administer GreatSQL.
If you want to access and work with the database, you have to install
package "greatsql-client" as well.
+%pretrans server
+if [ -d %{_datadir}/mysql ] && [ ! -L %{_datadir}/mysql ]; then
+ MYCNF_PACKAGE=$(rpm -qf /usr/share/mysql --queryformat "%{NAME}")
+fi
+
+if [ "$MYCNF_PACKAGE" == "mariadb-libs" -o "$MYCNF_PACKAGE" == "mysql-libs" ]; then
+ MODIFIED=$(rpm -Va "$MYCNF_PACKAGE" | grep '/usr/share/mysql' | awk '{print $1}' | grep -c 5)
+ if [ "$MODIFIED" == 1 ]; then
+ cp -r %{_datadir}/mysql %{_datadir}/mysql.old
+ fi
+fi
+
+%pre server
+/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
+/usr/sbin/useradd -M -g mysql -o -r -d /var/lib/mysql -s /bin/false \
+ -c "GreatSQL" -u 27 mysql >/dev/null 2>&1 || :
+if [ "$1" = 1 ]; then
+ if [ -f %{_sysconfdir}/my.cnf ]; then
+ timestamp=$(date '+%Y%m%d-%H%M')
+ cp %{_sysconfdir}/my.cnf \
+ %{_sysconfdir}/my.cnf.rpmsave-${timestamp}
+ fi
+fi
+
+%post server
+datadir=$(/usr/bin/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p' | tail -n 1)
+/bin/chmod 0751 "$datadir" >/dev/null 2>&1 || :
+if [ ! -e /var/log/mysqld.log ]; then
+ /usr/bin/install -m0640 -omysql -gmysql /dev/null /var/log/mysqld.log
+fi
+%systemd_post mysqld.service
+if [ $1 == 1 ]; then
+ /usr/bin/systemctl enable mysqld >/dev/null 2>&1 || :
+fi
+if [ -d /etc/greatsql.conf.d ]; then
+ CONF_EXISTS=$(grep "greatsql.conf.d" /etc/my.cnf | wc -l)
+ if [ ${CONF_EXISTS} = 0 ]; then
+ echo "!includedir /etc/greatsql.conf.d/" >> /etc/my.cnf
+ fi
+fi
+echo "datadir=/var/lib/mysql" >> /etc/my.cnf
+echo "socket=/var/lib/mysql/mysql.sock" >> /etc/my.cnf
+echo "log-error=/var/log/mysqld.log" >> /etc/my.cnf
+echo "pid-file=/var/run/mysqld/mysqld.pid" >> /etc/my.cnf
+echo "slow_query_log = ON" >> /etc/my.cnf
+echo "long_query_time = 1" >> /etc/my.cnf
+echo "log_slow_verbosity = FULL" >> /etc/my.cnf
+echo "log_error_verbosity = 3" >> /etc/my.cnf
+echo "innodb_buffer_pool_size = 1G" >> /etc/my.cnf
+echo "innodb_log_file_size = 128M" >> /etc/my.cnf
+
+%preun server
+%systemd_preun mysqld.service
+if [ "$1" = 0 ]; then
+ if [ -L %{_datadir}/mysql ]; then
+ rm %{_datadir}/mysql
+ fi
+ if [ -f %{_sysconfdir}/my.cnf ]; then
+ cp %{_sysconfdir}/my.cnf \
+ %{_sysconfdir}/my.cnf.rpmsave
+ fi
+fi
+
+%postun server
+%systemd_postun_with_restart mysqld.service
+
+%posttrans server
+if [ -d %{_datadir}/mysql ] && [ ! -L %{_datadir}/mysql ]; then
+ MYCNF_PACKAGE=$(rpm -qf /usr/share/mysql --queryformat "%{NAME}")
+ if [ "$MYCNF_PACKAGE" == "file %{_datadir}/mysql is not owned by any package" ]; then
+ mv %{_datadir}/mysql %{_datadir}/mysql.old
+ fi
+fi
+
+if [ ! -d %{_datadir}/mysql ] && [ ! -L %{_datadir}/mysql ]; then
+ ln -s %{_datadir}/greatsql %{_datadir}/mysql
+fi
+
%package shared
Summary: GreatSQL - Shared libraries
Provides: mysql-libs = %{version}-%{release}
@@ -75,6 +153,10 @@ Provides: mysql-libs = %{version}-%{release}
This package contains the shared libraries (*.so*) which certain languages
and applications need to dynamically load and use GreatSQL.
+%post -n greatsql-shared -p /sbin/ldconfig
+
+%postun -n greatsql-shared -p /sbin/ldconfig
+
%package devel
Summary: GreatSQL - Development header files and libraries
Requires: %{name}-shared = %{version}
@@ -95,7 +177,7 @@ connections from MySQL Clients to MySQL Servers.
%pre mysql-router
getent group mysqlrouter > /dev/null || /usr/sbin/groupadd -r mysqlrouter >/dev/null 2>&1 || :
getent passwd mysqlrouter > /dev/null || /usr/sbin/useradd -M -N -g mysqlrouter -r -d /var/lib/mysqlrouter -s /bin/false \
- -c "Percona MySQL Router" mysqlrouter >/dev/null 2>&1 || :
+ -c "GreatSQL MySQL Router" mysqlrouter >/dev/null 2>&1 || :
%post mysql-router
%systemd_post mysqlrouter.service
@@ -172,7 +254,11 @@ rm -rf %{buildroot}/usr/include/kmippp.h
rm -rf %{buildroot}/usr/lib/libkmip.a
rm -rf %{buildroot}/usr/lib/libkmippp.a
+# Ensure that needed directories exists
+install -d -m 0751 %{buildroot}/var/lib/mysql
install -d -m 0755 %{buildroot}%{_rundir}/mysqld
+install -d -m 0750 %{buildroot}/var/lib/mysql-files
+install -d -m 0750 %{buildroot}/var/lib/mysql-keyring
install -d -m 0755 %{buildroot}%{_rundir}/mysqlrouter
install -d -m 0755 %{buildroot}/var/log/mysqlrouter
@@ -232,8 +318,6 @@ install -d -m 0755 %{buildroot}/var/log/mysqlrouter
%{_bindir}/ps_mysqld_helper
%if 0%{?anolis_ver} < 23
%{_bindir}/lz4_decompress
-%dir %{_libdir}/mysql/private
-%{_libdir}/mysql/private/libfido2.so.*
%endif
%{_bindir}/zlib_decompress
%{_unitdir}/mysqld.service
@@ -314,11 +398,19 @@ install -d -m 0755 %{buildroot}/var/log/mysqlrouter
%{_mandir}/man1/perror.1*
%{_mandir}/man8/mysqld.8*
%{_mandir}/man1/zlib_decompress.1*
+
+%dir %attr(751, mysql, mysql) /var/lib/mysql
+%dir %attr(750, mysql, mysql) /var/lib/mysql-files
+%dir %attr(750, mysql, mysql) /var/lib/mysql-keyring
%dir %attr(755, mysql, mysql) %{_rundir}/mysqld
%files shared
%{_sysconfdir}/ld.so.conf.d/greatsql-shared-%{version}-%{_arch}.conf
%dir %{_libdir}/mysql
+%if 0%{?anolis_ver} < 23
+%dir %{_libdir}/mysql/private
+%{_libdir}/mysql/private/libfido2.so.*
+%endif
%{_libdir}/mysql/libperconaserver*.so.*
%dir %{_includedir}/coredumper
%{_includedir}/coredumper/coredumper.h
@@ -468,3 +560,5 @@ install -d -m 0755 %{buildroot}/var/log/mysqlrouter
%{_mandir}/man1/comp_err.1*
%changelog
+* Thu Aug 17 2023 Funda Wang <fundawang@yeah.net> - 8.0.32.24-1
+- Import package