From b5896bce14151d1920d4d3fa0c9eebde40697321 Mon Sep 17 00:00:00 2001 From: GreatSQL Date: Sun, 20 Apr 2025 13:52:08 +0800 Subject: [PATCH] 8.0.32-27.5: remove greatsql-test & greatsql-tokudb & greatsql-rocksdb, fixed incorrect conflict - remove greatsql-test, greatsql-tokudb, greatsql-rocksdb package - updated conflict declarations with MySQL/MariaDB/Percona - new file /etc/greatsql.cnf for GreatSQL - remove some duplicate requires - change PROTOBUF=bundled to system - add new library libfido2.so - fixed several incorrect conflict declarations --- greatsql.cnf | 15 ++ greatsql.spec | 488 ++++++++++++++++---------------------------------- 2 files changed, 173 insertions(+), 330 deletions(-) create mode 100644 greatsql.cnf diff --git a/greatsql.cnf b/greatsql.cnf new file mode 100644 index 0000000..1e73e93 --- /dev/null +++ b/greatsql.cnf @@ -0,0 +1,15 @@ +[mysqld] +user = mysql +datadir = /var/lib/mysql +socket = /var/lib/mysql/mysql.sock +log-error = /var/log/mysqld.log +pid-file = /var/run/mysqld/mysqld.pid +slow_query_log = ON +long_query_time = 0.01 +log_slow_verbosity = FULL +log_error_verbosity = 3 +innodb_buffer_pool_size = 1G +innodb_redo_log_capacity = 256M +innodb_io_capacity = 10000 +innodb_io_capacity_max = 20000 +innodb_flush_sync = OFF diff --git a/greatsql.spec b/greatsql.spec index 958cc80..46cd07a 100644 --- a/greatsql.spec +++ b/greatsql.spec @@ -31,8 +31,7 @@ %global mysql_version 8.0.32 %global greatsql_version 27 %global revision aa66a385910 -%global tokudb_backup_version %{mysql_version}-%{greatsql_version} -%global rpm_release 4 +%global rpm_release 5 %global release %{greatsql_version}.%{rpm_release}%{?dist} @@ -40,12 +39,6 @@ %{?with_ssl: %global ssl_option -DWITH_SSL=%{with_ssl}} %{!?with_ssl: %global ssl_option -DWITH_SSL=system} -# By default a build will be done including the TokuDB -%{!?with_tokudb: %global tokudb 0} - -# By default a build will be done including the RocksDB -%{!?with_rocksdb: %global rocksdb 0} - # Pass path to mecab lib %{?with_mecab: %global mecab_option -DWITH_MECAB=%{with_mecab}} %{?with_mecab: %global mecab 1} @@ -62,24 +55,6 @@ %{!?compilation_comment_debug: %global compilation_comment_debug GreatSQL - Debug (GPL), Release %{greatsql_version}, Revision %{revision}} %{!?src_base: %global src_base greatsql} -# Setup cmake flags for TokuDB -%if 0%{?tokudb} - %global TOKUDB_FLAGS -DWITH_VALGRIND=OFF -DUSE_VALGRIND=OFF -DDEBUG_EXTNAME=OFF -DBUILD_TESTING=OFF -DUSE_GTAGS=OFF -DUSE_CTAGS=OFF -DUSE_ETAGS=OFF -DUSE_CSCOPE=OFF -DTOKUDB_BACKUP_PLUGIN_VERSION=%{tokudb_backup_version} - %global TOKUDB_DEBUG_ON -DTOKU_DEBUG_PARANOID=ON - %global TOKUDB_DEBUG_OFF -DTOKU_DEBUG_PARANOID=OFF -%else - %global TOKUDB_FLAGS -DWITHOUT_TOKUDB=1 - %global TOKUDB_DEBUG_ON %{nil} - %global TOKUDB_DEBUG_OFF %{nil} -%endif - -# Setup cmake flags for RocksDB -%if 0%{?rocksdb} - %global ROCKSDB_FLAGS -DWITH_ROCKSDB=0 -%else - %global ROCKSDB_FLAGS -DWITH_ROCKSDB=0 -%endif - %global shared_lib_pri_name mysqlclient %global shared_lib_sec_name perconaserverclient @@ -109,18 +84,48 @@ SOURCE0: https://product.greatdb.com/GreatSQL-%{mysql_version}-%{greatsql SOURCE10: https://archives.boost.io/release/1.77.0/source/boost_1_77_0.tar.bz2 SOURCE11: mysqld.cnf SOURCE12: mysql_config.sh +SOURCE13: greatsql.cnf Patch0: mysql-5.7-sharedlib-rename.patch Patch1: add-riscv64-support.patch + +BuildRequires: bison BuildRequires: cmake >= 2.8.2 -BuildRequires: make +BuildRequires: cyrus-sasl-devel BuildRequires: gcc BuildRequires: gcc-c++ +BuildRequires: gzip +BuildRequires: krb5-devel +BuildRequires: libaio-devel +BuildRequires: libcurl-devel +BuildRequires: libedit-devel +BuildRequires: libevent-devel +BuildRequires: libicu-devel +BuildRequires: libtirpc-devel +BuildRequires: libudev-devel +BuildRequires: libzstd-devel +BuildRequires: lz4 +BuildRequires: lz4-devel +BuildRequires: m4 +BuildRequires: make +BuildRequires: mecab-devel +BuildRequires: ncurses-devel +%ifnarch aarch64 +BuildRequires: numactl-devel +%endif +BuildRequires: openldap-devel +BuildRequires: openssl +BuildRequires: openssl-devel +BuildRequires: pam-devel BuildRequires: perl +BuildRequires: perl(base) BuildRequires: perl(Carp) BuildRequires: perl(Config) BuildRequires: perl(Cwd) BuildRequires: perl(Data::Dumper) +BuildRequires: perl(Digest::file) +BuildRequires: perl(Digest::MD5) BuildRequires: perl(English) +BuildRequires: perl(Env) BuildRequires: perl(Errno) BuildRequires: perl(Exporter) BuildRequires: perl(Fcntl) @@ -131,84 +136,49 @@ BuildRequires: perl(File::Path) BuildRequires: perl(File::Spec) BuildRequires: perl(File::Spec::Functions) BuildRequires: perl(File::Temp) +BuildRequires: perl(FindBin) +BuildRequires: perl-generators BuildRequires: perl(Getopt::Long) +BuildRequires: perl(if) +BuildRequires: perl-interpreter BuildRequires: perl(IO::File) BuildRequires: perl(IO::Handle) BuildRequires: perl(IO::Pipe) BuildRequires: perl(IO::Select) BuildRequires: perl(IO::Socket) BuildRequires: perl(IO::Socket::INET) +BuildRequires: perl(IPC::Open3) BuildRequires: perl(JSON) +BuildRequires: perl(lib) +BuildRequires: perl(LWP::Simple) BuildRequires: perl(Memoize) +BuildRequires: perl(Net::Ping) BuildRequires: perl(POSIX) +BuildRequires: perl(Socket) +BuildRequires: perl(strict) BuildRequires: perl(Sys::Hostname) +BuildRequires: perl(Test::More) BuildRequires: perl(Time::HiRes) BuildRequires: perl(Time::localtime) -BuildRequires: time -BuildRequires: libaio-devel -BuildRequires: ncurses-devel -BuildRequires: pam-devel +BuildRequires: perl(warnings) +BuildRequires: procps +BuildRequires: protobuf-lite-devel BuildRequires: readline-devel -%ifnarch aarch64 -BuildRequires: numactl-devel -%endif -BuildRequires: openssl -BuildRequires: openssl-devel -BuildRequires: zlib-devel -BuildRequires: bison -BuildRequires: openldap-devel -BuildRequires: libcurl-devel -BuildRequires: libedit-devel -BuildRequires: libevent-devel -BuildRequires: libicu-devel -BuildRequires: lz4 -BuildRequires: lz4-devel -BuildRequires: libzstd-devel +BuildRequires: rpcgen %if 0%{?systemd} BuildRequires: systemd BuildRequires: pkgconfig(systemd) %endif -BuildRequires: cyrus-sasl-devel -BuildRequires: openldap-devel - -BuildRequires: cmake >= 3.6.1 -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: libtirpc-devel -BuildRequires: rpcgen -BuildRequires: m4 -BuildRequires: krb5-devel -BuildRequires: libudev-devel - -#some more requires, 2025.3.21 -BuildRequires: mecab-devel -BuildRequires: gzip -BuildRequires: perl(base) -BuildRequires: perl(Digest::file) -BuildRequires: perl(Digest::MD5) -BuildRequires: perl(Env) -BuildRequires: perl(FindBin) -BuildRequires: perl(if) -BuildRequires: perl-interpreter -BuildRequires: perl-generators -BuildRequires: perl(IPC::Open3) -BuildRequires: perl(lib) -BuildRequires: perl(LWP::Simple) -BuildRequires: perl(Net::Ping) -BuildRequires: perl(Socket) -BuildRequires: perl(strict) -BuildRequires: perl(Test::More) -BuildRequires: perl(warnings) -BuildRequires: procps -BuildRequires: protobuf-lite-devel +BuildRequires: time BuildRequires: zlib -#end for some more requires +BuildRequires: zlib-devel BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -Conflicts: community-mysql mysql-community -Conflicts: mariadb -Conflicts: Percona-Server +%bcond_without conflicts +%{?with_conflicts:Conflicts: mariadb} +%{?with_conflicts:Conflicts: mysql} +%{?with_conflicts:Conflicts: percona-server} # For rpm => 4.9 only: https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering %global __requires_exclude ^perl\\(GD|hostnames|lib::mtr|lib::v1|mtr_|My::|Lmo|Lmo::Meta|Lmo::Object|Lmo::Types|Lmo::Utils|Percona::Toolkit|Quoter|Transformers) @@ -236,11 +206,14 @@ Requires(pre): greatsql-shared Requires: greatsql-client Requires: greatsql-icu-data-files Requires: openssl -Conflicts: greatsql-mysql-config < %{version}-%{release} -Obsoletes: greatsql-mysql-config < %{version}-%{release} -Conflicts: mysql-server mysql-community-server mysql-config -Conflicts: mariadb-server mariadb-galera-server mariadb-connector-c-config mariadb-config -Conflicts: Percona-SQL-server-50 Percona-Server-server-51 Percona-Server-server-55 Percona-Server-server-56 Percona-Server-server-57 Percona-Server-server +Provides: MySQL-server%{?_isa} = %{version}-%{release} +Provides: mysql-server%{?_isa} = %{version}-%{release} +Provides: mysql-server = %{version}-%{release} +%{?with_conflicts:Conflicts: mysql-server} +%{?with_conflicts:Conflicts: mariadb-server} +%{?with_conflicts:Conflicts: mariadb-galera-server} +%{?with_conflicts:Conflicts: percona-server} +%{?with_conflicts:Conflicts: greatsql-server-57} %if 0%{?systemd} Requires(post): systemd Requires(preun): systemd @@ -260,62 +233,28 @@ For a description of GreatSQL see https://greatsql.cn Summary: GreatSQL - Client Group: Applications/Databases Requires: greatsql-shared -Conflicts: mysql mysql-client mysql-community-client -Conflicts: mariadb mariadb-client -Conflicts: Percona-SQL-client-50 Percona-Server-client-51 Percona-Server-client-55 Percona-Server-client-56 Percona-Server-client-57 Percona-Server-client +Provides: mysql-client MySQL-client mysql MySQL +%{?with_conflicts:Conflicts: mysql} +%{?with_conflicts:Conflicts: mysql-client} +%{?with_conflicts:Conflicts: mariadb} +%{?with_conflicts:Conflicts: mariadb-client} +%{?with_conflicts:Conflicts: percona-server-client} +%{?with_conflicts:Conflicts: greatsql-client-57} %description -n greatsql-client This package contains the standard GreatSQL client and administration tools. For a description of GreatSQL see https://greatsql.cn -%package -n greatsql-test -Summary: Test suite for the GreatSQL -Group: Applications/Databases -Requires: perl(Carp) -Requires: perl(Config) -Requires: perl(Cwd) -Requires: perl(Data::Dumper) -Requires: perl(English) -Requires: perl(Errno) -Requires: perl(Exporter) -Requires: perl(Fcntl) -Requires: perl(File::Basename) -Requires: perl(File::Copy) -Requires: perl(File::Find) -Requires: perl(File::Path) -Requires: perl(File::Spec) -Requires: perl(File::Spec::Functions) -Requires: perl(File::Temp) -Requires: perl(Getopt::Long) -Requires: perl(IO::File) -Requires: perl(IO::Handle) -Requires: perl(IO::Pipe) -Requires: perl(IO::Select) -Requires: perl(IO::Socket) -Requires: perl(IO::Socket::INET) -Requires: perl(JSON) -Requires: perl(Memoize) -Requires: perl(POSIX) -Requires: perl(Sys::Hostname) -Requires: perl(Time::HiRes) -Requires: perl(Time::localtime) -Requires(pre): greatsql-shared greatsql-client greatsql-server -Conflicts: mysql-test mysql-community-test -Conflicts: mariadb-test -Conflicts: Percona-SQL-test-50 Percona-Server-test-51 Percona-Server-test-55 Percona-Server-test-56 Percona-Server-test-57 Percona-Server-test - -%description -n greatsql-test -This package contains the GreatSQL regression test suite. - -For a description of GreatSQL see https://greatsql.cn - %package -n greatsql-devel Summary: GreatSQL - Development header files and libraries Group: Applications/Databases -Conflicts: mysql-devel mysql-community-devel -Conflicts: mariadb-devel mariadb-connector-c-devel -Conflicts: Percona-SQL-devel-50 Percona-Server-devel-51 Percona-Server-devel-55 Percona-Server-devel-56 Percona-Server-devel-57 Percona-Server-devel +Provides: mysql-devel = %{version}-%{release} +Provides: mysql-devel%{?_isa} = %{version}-%{release} +%{?with_conflicts:Conflicts: mysql-devel} +%{?with_conflicts:Conflicts: mariadb-devel} +%{?with_conflicts:Conflicts: percona-server-devel} +%{?with_conflicts:Conflicts: greatsql-devel-57} %description -n greatsql-devel This package contains the development header files and libraries necessary @@ -326,9 +265,11 @@ For a description of GreatSQL see https://greatsql.cn %package -n greatsql-shared Summary: GreatSQL - Shared libraries Group: Applications/Databases -Conflicts: mysql-libs mysql-community-libs mysql-libs < %{version}-%{release} -Conflicts: mariadb-libs -Conflicts: Percona-Server-shared-51 Percona-Server-shared-55 Percona-Server-shared-55 Percona-Server-shared-56 Percona-Server-shared-57 Percona-Server-shared +Provides: mysql-libs = %{version}-%{release} +Provides: mysql-libs%{?_isa} = %{version}-%{release} +Provides: mysql-shared +%{?with_conflicts:Conflicts: greatsql-shared-57} +%{?with_conflicts:Conflicts: mysql-libs} %description -n greatsql-shared This package contains the shared libraries (*.so*) which certain languages @@ -336,42 +277,12 @@ and applications need to dynamically load and use GreatSQL. For a description of GreatSQL see https://greatsql.cn -%if 0%{?tokudb} -%package -n greatsql-tokudb -Summary: GreatSQL - TokuDB package -Group: Applications/Databases -Requires: greatsql-server = %{version}-%{release} -Requires: greatsql-shared = %{version}-%{release} -Requires: greatsql-client = %{version}-%{release} -Requires: jemalloc >= 3.3.0 -Conflicts: Percona-server-tokudb - -%description -n greatsql-tokudb -This package contains the TokuDB plugin for GreatSQL %{version}-%{release} -%endif - -%if 0%{?rocksdb} -%package -n greatsql-rocksdb -Summary: GreatSQL - RocksDB package -Group: Applications/Databases -Requires: greatsql-server = %{version}-%{release} -Requires: greatsql-shared = %{version}-%{release} -Requires: greatsql-client = %{version}-%{release} -Conflicts: Percona-server-rocksdb - -%description -n greatsql-rocksdb -This package contains the RocksDB plugin for GreatSQL %{version}-%{release} - -For a description of GreatSQL see https://greatsql.cn -%endif - %package -n greatsql-mysql-router Summary: GreatSQL MySQL Router Group: Applications/Databases +Provides: mysql-router Provides: greatsql-mysql-router = %{version}-%{release} Obsoletes: greatsql-mysql-router < %{version}-%{release} -Conflicts: mysql-router mysql-router-community -Conflicts: percona-mysql-router %description -n greatsql-mysql-router The GreatSQL MySQL Router software delivers a fast, multi-threaded way of @@ -383,8 +294,6 @@ For a description of GreatSQL see https://greatsql.cn Summary: Development header files and libraries for GreatSQL MySQL Router Group: Applications/Databases Provides: greatsql-mysql-router-devel = %{version}-%{release} -Conflicts: mysql-router-devel -Conflicts: percona-mysql-router-devel %description -n greatsql-mysql-router-devel This package contains the development header files and libraries @@ -405,7 +314,7 @@ For a description of GreatSQL see https://greatsql.cn pushd %{src_dir} %patch -P0 -p0 %patch -P1 -p1 -cp %{SOURCE11} scripts +cp %{SOURCE11} %{SOURCE13} scripts %build # Fail quickly and obviously if user tries to build as root @@ -425,27 +334,21 @@ mkdir release cmake ../%{src_dir} \ -DBUILD_CONFIG=mysql_release \ -DINSTALL_LAYOUT=RPM \ + -DWITH_DEBUG=OFF \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DWITH_BOOST=.. \ - -DCMAKE_C_FLAGS="%{optflags}%{?with_debug: -fno-strict-overflow -Wno-unused-result -Wno-unused-function -Wno-unused-but-set-variable}" \ - -DCMAKE_CXX_FLAGS="%{optflags}%{?with_debug: -fno-strict-overflow -Wno-unused-result -Wno-unused-function -Wno-unused-but-set-variable}" \ - -DCMAKE_EXE_LINKER_FLAGS="-pie %{build_ldflags}" \ - -DWITH_MYSQLD_LDFLAGS="%{build_ldflags}" \ - -DCMAKE_C_LINK_FLAGS="%{build_ldflags}" \ - -DCMAKE_CXX_LINK_FLAGS="%{build_ldflags}" \ - -DCMAKE_SKIP_INSTALL_RPATH=YES \ -%if 0%{?systemd} - -DWITH_SYSTEMD=1 \ -%endif - -DWITH_INNODB_MEMCACHED=1 \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ -DINSTALL_LIBDIR="%{_lib}/mysql" \ -DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \ -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \ -DINSTALL_MYSQLSHAREDIR=share/greatsql \ -DINSTALL_SUPPORTFILESDIR=share/greatsql \ -DFEATURE_SET="%{feature_set}" \ - -DWITH_AUTHENTICATION_LDAP=OFF \ - -DWITH_PAM=1 \ + -DWITH_EMBEDDED_SERVER=ON \ + -DCMAKE_SKIP_INSTALL_RPATH=YES \ + -DWITH_INNODB_MEMCACHED=1 \ + -DWITH_AUTHENTICATION_LDAP=OFF \ + -DWITH_PAM=ON \ -DWITH_TOKUDB=OFF \ -DWITH_TOKUDB_BACKUP=OFF \ -DWITH_NDB=OFF \ @@ -460,28 +363,33 @@ mkdir release -DALLOW_NO_SSE42=ON \ -DMYSQL_MAINTAINER_MODE=OFF \ -DFORCE_INSOURCE_BUILD=1 \ -%ifnarch aarch64 - -DWITH_NUMA=ON \ -%endif - -DWITH_LDAP=system \ -DWITH_SYSTEM_LIBS=ON \ - -DWITH_LZ4=bundled \ - -DWITH_ZLIB=bundled \ - -DWITH_PROTOBUF=system \ - -DWITH_RAPIDJSON=bundled \ - -DWITH_ICU=bundled \ - -DWITH_READLINE=system \ - -DWITH_LIBEVENT=bundled \ - -DWITH_ZSTD=bundled \ -DWITH_KEYRING_VAULT=ON \ - -DWITH_FIDO=bundled \ -DWITHOUT_RAPID_SECONDARY_STORAGE_ENGINE=1 \ - -DWITH_SSL=system \ - -DWITH_MECAB=system \ -DREPRODUCIBLE_BUILD=OFF \ + -DWITH_ARCHIVE_STORAGE_ENGINE=ON \ + -DWITH_BLACKHOLE_STORAGE_ENGINE=ON \ + -DWITH_FEDERATED_STORAGE_ENGINE=ON \ + -DWITH_EXTRA_CHARSETS=all \ + -DWITH_SYSTEMD=ON \ +%ifnarch aarch64 + -DWITH_NUMA=ON \ +%endif + -DWITH_LDAP=system \ + -DWITH_MECAB=system \ + -DWITH_PROTOBUF=system \ + -DWITH_READLINE=system \ + -DWITH_SSL=system \ + -DWITH_FIDO=bundled \ + -DWITH_ICU=bundled \ + -DWITH_LIBEVENT=bundled \ + -DWITH_LZ4=bundled \ + -DWITH_RAPIDJSON=bundled \ + -DWITH_ZLIB=bundled \ + -DWITH_ZSTD=bundled \ -DWITH_ROUTER=ON \ -DENABLED_LOCAL_INFILE=ON \ - -DCOMPILATION_COMMENT="%{compilation_comment_release}" %{TOKUDB_FLAGS} %{TOKUDB_DEBUG_OFF} %{ROCKSDB_FLAGS} + -DCOMPILATION_COMMENT="%{compilation_comment_release}" echo BEGIN_NORMAL_CONFIG ; egrep '^#define' include/config.h ; echo END_NORMAL_CONFIG make %{?_smp_mflags} ) @@ -508,9 +416,10 @@ make DESTDIR=%{buildroot} install #install -D -m 0644 packaging/rpm-common/mysql.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/mysql #investigate this logrotate install -D -m 0644 $MBD/release/support-files/mysql-log-rotate %{buildroot}%{_sysconfdir}/logrotate.d/mysql -install -D -m 0644 $MBD/%{src_dir}/build-gs/rpm/mysqld.cnf %{buildroot}%{_sysconfdir}/my.cnf -install -D -p -m 0644 %{_builddir}/greatsql-%{version}-%{greatsql_version}/greatsql-%{version}-%{greatsql_version}/scripts/mysqld.cnf %{buildroot}%{_sysconfdir}/my.cnf +#install -D -m 0644 $MBD/%{src_dir}/build-gs/rpm/mysqld.cnf %{buildroot}%{_sysconfdir}/my.cnf +#install -D -p -m 0644 %{_builddir}/greatsql-%{version}-%{greatsql_version}/greatsql-%{version}-%{greatsql_version}/scripts/mysqld.cnf %{buildroot}%{_sysconfdir}/my.cnf install -d %{buildroot}%{_sysconfdir}/my.cnf.d +install -D -p -m 0644 %{_builddir}/greatsql-%{version}-%{greatsql_version}/greatsql-%{version}-%{greatsql_version}/scripts/greatsql.cnf %{buildroot}%{_sysconfdir}/greatsql.cnf #%if 0%{?systemd} #%else @@ -550,6 +459,8 @@ rm -rf %{buildroot}/usr/cmake/coredumper-relwithdebinfo.cmake rm -rf %{buildroot}/usr/cmake/coredumper.cmake rm -rf %{buildroot}/usr/include/kmip.h rm -rf %{buildroot}/usr/include/kmippp.h +rm -rf %{buildroot}/usr/lib/libkmip.a +rm -rf %{buildroot}/usr/lib/libkmippp.a %check %if 0%{?runselftest} @@ -583,13 +494,20 @@ fi -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') + timestamp=$(date '+%Y%m%d-%s') cp %{_sysconfdir}/my.cnf \ %{_sysconfdir}/my.cnf.rpmsave-${timestamp} fi fi %post -n greatsql-server +if [ ! -f /etc/my.cnf ]; then + ln -sf /etc/greatsql.cnf /etc/my.cnf +elif [ -d /etc/my.cnf.d ] ; then + ln -sf /etc/greatsql.cnf /etc/my.cnf.d/greatsql.cnf +else + echo '!include /etc/greatsql.cnf' >> /etc/my.cnf +fi 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 @@ -607,26 +525,12 @@ fi fi %endif -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 "user = mysql" >> /etc/my.cnf -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 = 0.01" >> /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_redo_log_capacity = 256M" >> /etc/my.cnf -echo "innodb_io_capacity = 10000" >> /etc/my.cnf -echo "innodb_io_capacity_max = 20000" >> /etc/my.cnf -echo "innodb_flush_sync = OFF" >> /etc/my.cnf +#if [ -d /etc/my.conf.d ]; then +# CONF_EXISTS=$(grep "my.conf.d" /etc/my.cnf | wc -l) +# if [ ${CONF_EXISTS} = 0 ]; then +# echo "!includedir /etc/my.conf.d/" >> /etc/my.cnf +# fi +#fi %preun -n greatsql-server %if 0%{?systemd} @@ -642,8 +546,9 @@ if [ "$1" = 0 ]; then rm %{_datadir}/mysql fi if [ -f %{_sysconfdir}/my.cnf ]; then + timestamp=$(date '+%Y%m%d-%s') cp %{_sysconfdir}/my.cnf \ - %{_sysconfdir}/my.cnf.rpmsave + %{_sysconfdir}/my.cnf.rpmsave-${timestamp} fi fi @@ -655,6 +560,16 @@ fi /sbin/service mysql condrestart >/dev/null 2>&1 || : fi %endif +if [ -f /etc/my.cnf.d/greatsql.cnf ] || [ -L /etc/my.cnf.d/greatsql.cnf ] ; then + unlink /etc/my.cnf.d/greatsql.cnf +fi +if [ -f /etc/greatsql.cnf ] ; then + timestamp=$(date '+%Y%m%d-%s') + cp /etc/greatsql.cnf /etc/greatsql.cnf.rpmsave-${timestamp} +fi +if [ -L /etc/my.cnf ] ; then + unlink /etc/my.cnf +fi %posttrans -n greatsql-server if [ -d %{_datadir}/mysql ] && [ ! -L %{_datadir}/mysql ]; then @@ -672,15 +587,6 @@ fi %postun -n greatsql-shared -%if 0%{?rocksdb} -%post -n greatsql-rocksdb -if [ $1 -eq 1 ] ; then - echo -e "\n\n * This release of GreatSQL is distributed with RocksDB storage engine." - echo -e " * Run the following script to enable the RocksDB storage engine in GreatSQL:\n" - echo -e "\tps-admin --enable-rocksdb -u -p[mysql_admin_pass] [-S ] [-h -P ]\n" -fi -%endif - %pre -n greatsql-mysql-router /usr/sbin/groupadd -r mysqlrouter >/dev/null 2>&1 || : /usr/sbin/useradd -M -N -g mysqlrouter -r -d /var/lib/mysqlrouter -s /bin/false \ @@ -738,7 +644,7 @@ fi %attr(644, root, root) %{_mandir}/man1/lz4_decompress.1* %attr(644, root, root) %{_mandir}/man1/zlib_decompress.1* -%config(noreplace) %{_sysconfdir}/my.cnf +%config(noreplace) %{_sysconfdir}/greatsql.cnf %dir %{_sysconfdir}/my.cnf.d %attr(755, root, root) %{_bindir}/comp_err @@ -761,6 +667,7 @@ fi %attr(755, root, root) %{_bindir}/ps-admin %attr(755, root, root) %{_bindir}/zstd_decompress %attr(755, root, root) %{_bindir}/mysqldecompress +%attr(755, root, root) %{_bindir}/mysql_migrate_keyring %if 0%{?systemd} %attr(755, root, root) %{_bindir}/mysqld_pre_systemd %attr(755, root, root) %{_bindir}/mysqld_safe @@ -770,12 +677,15 @@ fi %endif %attr(755, root, root) %{_sbindir}/mysqld %dir %{_libdir}/mysql/private +%attr(755, root, root) %{_libdir}/mysql/private/libfido2.so.* %dir %{_libdir}/mysql/plugin %attr(755, root, root) %{_libdir}/mysql/plugin/procfs.so %attr(755, root, root) %{_libdir}/mysql/plugin/binlog_utils_udf.so %attr(755, root, root) %{_libdir}/mysql/plugin/adt_null.so %attr(755, root, root) %{_libdir}/mysql/plugin/auth_socket.so +%attr(755, root, root) %{_libdir}/mysql/plugin/authentication_fido.so +%attr(755, root, root) %{_libdir}/mysql/plugin/authentication_fido_client.so %attr(755, root, root) %{_libdir}/mysql/plugin/authentication_kerberos_client.so %attr(755, root, root) %{_libdir}/mysql/plugin/authentication_ldap_sasl.so %attr(755, root, root) %{_libdir}/mysql/plugin/authentication_ldap_sasl_client.so @@ -830,12 +740,14 @@ fi %attr(755, root, root) %{_libdir}/mysql/plugin/test_services_host_application_signal.so %attr(755, root, root) %{_libdir}/mysql/plugin/test_udf_wrappers.so %attr(755, root, root) %{_libdir}/mysql/plugin/data_masking* +%attr(644, root, root) %{_libdir}/mysql/plugin/daemon_example.ini %if 0%{?mecab} -%{_libdir}/mysql/mecab +%dir %attr(751, mysql, mysql) %{_libdir}/mysql/mecab %attr(755, root, root) %{_libdir}/mysql/plugin/libpluginmecab.so %endif #coredumper %attr(755, root, root) %{_includedir}/coredumper/coredumper.h +%attr(755, root, root) /usr/lib/libcoredumper.a # Percona plugins %attr(755, root, root) %{_libdir}/mysql/plugin/audit_log.so %attr(755, root, root) %{_libdir}/mysql/plugin/audit_login_messages.so @@ -857,6 +769,7 @@ fi %if 0%{?systemd} %attr(644, root, root) %{_unitdir}/mysqld.service %attr(644, root, root) %{_unitdir}/mysqld@.service +%attr(644, root, root) %{_prefix}/lib/tmpfiles.d/mysql.conf %else %attr(755, root, root) %{_sysconfdir}/init.d/mysql %endif @@ -909,8 +822,6 @@ fi %attr(755, root, root) %{_bindir}/mysqlshow %attr(755, root, root) %{_bindir}/mysqlslap %attr(755, root, root) %{_bindir}/mysql_config_editor -%attr(755, root, root) %{_bindir}/mysql_migrate_keyring -%attr(755, root, root) %{_bindir}/mysql_keyring_encryption_test %attr(644, root, root) %{_mandir}/man1/mysql.1* %attr(644, root, root) %{_mandir}/man1/mysqladmin.1* @@ -946,98 +857,6 @@ fi %attr(644, root, root) %{_sysconfdir}/ld.so.conf.d/mysql-%{_arch}.conf %{_libdir}/mysql/lib%{shared_lib_pri_name}.so.21* -%files -n greatsql-test -%defattr(-, root, root, -) -%doc %{?license_files_server} -%attr(-, root, root) %{_datadir}/mysql-test -%attr(755, root, root) %{_bindir}/mysql_client_test -%attr(755, root, root) %{_bindir}/mysqltest -%attr(755, root, root) %{_bindir}/mysqltest_safe_process -%attr(755, root, root) %{_bindir}/mysqlxtest - -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_sleep_is_connected.so -%attr(755, root, root) %{_libdir}/mysql/plugin/auth.so -%attr(755, root, root) %{_libdir}/mysql/plugin/auth_test_plugin.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_example_component1.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_example_component2.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_example_component3.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_log_sink_test.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_backup_lock_service.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_string_service_charset.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_string_service_long.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_string_service.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_pfs_example.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_pfs_example_component_population.so -%attr(755, root, root) %{_libdir}/mysql/plugin/pfs_example_plugin_employee.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_pfs_notification.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_pfs_resource_group.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_udf_registration.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_mysql_current_thread_reader.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_udf_reg_3_func.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_udf_reg_avg_func.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_udf_reg_int_func.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_udf_reg_int_same_func.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_udf_reg_only_3_func.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_udf_reg_real_func.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_udf_unreg_3_func.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_udf_unreg_int_func.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_udf_unreg_real_func.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_sys_var_service_int.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_sys_var_service.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_sys_var_service_same.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_sys_var_service_str.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_status_var_service.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_status_var_service_int.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_status_var_service_reg_only.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_status_var_service_str.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_status_var_service_unreg_only.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_system_variable_source.so -%attr(644, root, root) %{_libdir}/mysql/plugin/daemon_example.ini -%attr(755, root, root) %{_libdir}/mysql/plugin/libdaemon_example.so -%attr(755, root, root) %{_libdir}/mysql/plugin/replication_observers_example_plugin.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_framework.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_services.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_services_threaded.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_session_detach.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_session_attach.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_session_in_thd.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_session_info.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_2_sessions.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_all_col_types.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_cmds_1.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_commit.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_complex.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_errors.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_lock.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_processlist.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_replication.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_shutdown.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_stmt.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_sqlmode.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_stored_procedures_functions.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_views_triggers.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_x_sessions_deinit.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_x_sessions_init.so -%attr(755, root, root) %{_libdir}/mysql/plugin/qa_auth_client.so -%attr(755, root, root) %{_libdir}/mysql/plugin/qa_auth_interface.so -%attr(755, root, root) %{_libdir}/mysql/plugin/qa_auth_server.so -%attr(755, root, root) %{_libdir}/mysql/plugin/test_security_context.so -%attr(755, root, root) %{_libdir}/mysql/plugin/test_services_plugin_registry.so -%attr(755, root, root) %{_libdir}/mysql/plugin/test_udf_services.so -%attr(755, root, root) %{_libdir}/mysql/plugin/udf_example.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_mysqlx_global_reset.so -%attr(755, root, root) %{_libdir}/mysql/plugin/component_test_mysql_runtime_error.so -%attr(755, root, root) %{_libdir}/mysql/plugin/libtest_sql_reset_connection.so - -%if 0%{?rocksdb} -%files -n greatsql-rocksdb -%attr(-, root, root) -%{_libdir}/mysql/plugin/ha_rocksdb.so -%attr(755, root, root) %{_bindir}/ldb -%attr(755, root, root) %{_bindir}/mysql_ldb -%attr(755, root, root) %{_bindir}/sst_dump -%endif - %files -n greatsql-mysql-router %defattr(-, root, root, -) %doc %{src_dir}/router/README.router %{src_dir}/router/LICENSE.router @@ -1076,6 +895,15 @@ fi %{_libdir}/mysql/private/icudt69l/brkitr %changelog +* Sat Apr 19 2025 GreatSQL - 8.0.32-27.5 +- remove greatsql-test, greatsql-tokudb, greatsql-rocksdb package +- updated conflict declarations with MySQL/MariaDB/Percona +- new file /etc/greatsql.cnf for GreatSQL +- remove some duplicate requires +- change PROTOBUF=bundled to system +- add new library libfido2.so +- fixed several incorrect conflict declarations + * Tue Apr 15 2025 GreatSQL - 8.0.32-27.4 - fix issue with ld.so.conf.d/mysql-%{_arch}.conf -- Gitee