%define ver 8.0.32 %define patchlevel 24 %define tarballver %{ver}-%{patchlevel} Name: greatsql Version: %{ver}.%{patchlevel} Release: 1%{?dist} Summary: GreatSQL is a MySQL branch originated from GreatDB License: GPLv2 URL: https://greatsql.cn/ Source0: https://product.greatdb.com/GreatSQL-%{tarballver}/greatsql-%{tarballver}.tar.xz Source1: https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2 BuildRequires: bison BuildRequires: m4 BuildRequires: bison-devel BuildRequires: openssl-devel BuildRequires: libxml2-devel BuildRequires: pam-devel BuildRequires: curl-devel BuildRequires: readline-devel BuildRequires: cyrus-sasl-devel cyrus-sasl-scram BuildRequires: libicu-devel BuildRequires: libevent-devel BuildRequires: protobuf-lite-devel libzstd-devel BuildRequires: libtirpc-devel BuildRequires: rpcgen BuildRequires: systemd-devel BuildRequires: pkgconfig(systemd) BuildRequires: openldap-devel BuildRequires: krb5-devel BuildRequires: cmake >= 3.5.1 %if 0%{?anolis_ver} >= 23 BuildRequires: jemalloc-devel BuildRequires: libfido2-devel BuildRequires: zlib-devel >= 1.2.13 BuildRequires: lz4-devel >= 1.9.3 %endif %description GreatSQL is a MySQL branch originated from GreatDB. %package client Summary: GreatSQL - Client Requires: %{name}-shared = %{version} Provides: mysql Provides: mysql-client %description client This package contains the standard GreatSQL client and administration tools. %package server Summary: GreatSQL: a very fast and reliable SQL database server Provides: mysql-server = %{version}-%{release} Requires: greatsql-client = %{version} Requires: greatsql-shared = %{version} %description server The GreatSQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. GreatSQL is intended for mission-critical, heavy-load production systems. This package includes the GreatSQL with XtraDB binary 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. %package shared Summary: GreatSQL - Shared libraries Provides: mysql-libs = %{version}-%{release} %description shared This package contains the shared libraries (*.so*) which certain languages and applications need to dynamically load and use GreatSQL. %package devel Summary: GreatSQL - Development header files and libraries Requires: %{name}-shared = %{version} %description devel This package contains the development header files and libraries necessary to develop GreatSQL client applications. %package mysql-router Summary: MySQL Router Requires: %{name}-shared = %{version} Requires(pre): shadow-utils %description mysql-router The MySQL Router software delivers a fast, multi-threaded way of routing 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 || : %post mysql-router %systemd_post mysqlrouter.service %preun mysql-router %systemd_preun mysqlrouter.service %postun mysql-router %systemd_postun_with_restart mysqlrouter.service %package test Summary: Test suite for the GreatSQL Provides: mysql-test = %{version}-%{release} %description test This package contains the GreatSQL regression test suite. %prep %autosetup -n greatsql-%{tarballver} %build %if 0%{?__cmake_in_source_build} %undefine __cmake_in_source_build %endif %if "%{_vendor}" == "openEuler" %define __cmake_builddir build %define __cmake /usr/bin/cmake -S . -B %__cmake_builddir %define cmake_build /usr/bin/cmake --build "%{__cmake_builddir}" %{?_smp_mflags} --verbose %define cmake_install DESTDIR="%{buildroot}" /usr/bin/cmake --install "%{__cmake_builddir}" %endif %cmake \ -DWITH_BOOST=%{SOURCE1} \ -DINSTALL_LAYOUT=RPM \ -DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \ -DMYSQL_UNIX_ADDR="%{_sharedstatedir}/mysql/mysql.sock" \ -DINSTALL_MYSQLSHAREDIR=share/%{name} \ -DINSTALL_SUPPORTFILESDIR=share/%{name} \ -DWITH_SYSTEMD=1 \ -DWITH_PAM=1 \ -DWITH_INNODB_MEMCACHED=1 \ -DWITH_SSL=system \ -DWITH_READLINE=system \ -DWITH_LIBEVENT=system \ -DWITH_ICU=system \ -DWITH_ZSTD=system \ %if 0%{?anolis_ver} >= 23 -DWITH_FIDO=system \ -DWITH_ZLIB=system \ -DWITH_LZ4=system \ %endif -DWITH_PROTOBUF=system \ -DWITH_ROCKSDB=0 \ -DALLOW_NO_SSE42=1 \ %{nil} %cmake_build %install %cmake_install install -D -m 0644 %{__cmake_builddir}/support-files/mysql-log-rotate %{buildroot}%{_sysconfdir}/logrotate.d/mysql install -D -m 0644 build-ps/rpm/mysqld.cnf %{buildroot}%{_sysconfdir}/my.cnf install -d %{buildroot}%{_sysconfdir}/my.cnf.d install -d %{buildroot}%{_sysconfdir}/ld.so.conf.d echo %{_libdir}/mysql > %{buildroot}%{_sysconfdir}/ld.so.conf.d/greatsql-shared-%{version}-%{_arch}.conf # Remove files pages we explicitly do not want to package 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 install -d -m 0755 %{buildroot}%{_rundir}/mysqld install -d -m 0755 %{buildroot}%{_rundir}/mysqlrouter install -d -m 0755 %{buildroot}/var/log/mysqlrouter %files client %doc README.md %{_bindir}/mysql %{_bindir}/mysql_config_editor %{_bindir}/mysql_migrate_keyring %{_bindir}/mysql_secure_installation %{_bindir}/mysql_ssl_rsa_setup %{_bindir}/mysqladmin %{_bindir}/mysqlbinlog %{_bindir}/mysqlcheck %{_bindir}/mysqldecrypt %{_bindir}/mysqldump %{_bindir}/mysqlimport %{_bindir}/mysqlpump %{_bindir}/mysqlshow %{_bindir}/mysqlslap %dir %{_libdir}/mysql/plugin %{_libdir}/mysql/plugin/authentication_fido_client.so %{_libdir}/mysql/plugin/authentication_kerberos_client.so %{_libdir}/mysql/plugin/authentication_ldap_sasl_client.so %{_libdir}/mysql/plugin/authentication_oci_client.so %{_infodir}/mysql.info* %{_mandir}/man1/mysql.1* %{_mandir}/man1/mysql_config_editor.1* %{_mandir}/man1/mysql_secure_installation.1* %{_mandir}/man1/mysql_ssl_rsa_setup.1* %{_mandir}/man1/mysqladmin.1* %{_mandir}/man1/mysqlbinlog.1* %{_mandir}/man1/mysqlcheck.1* %{_mandir}/man1/mysqldump.1* %{_mandir}/man1/mysqlimport.1* %{_mandir}/man1/mysqlpump.1* %{_mandir}/man1/mysqlshow.1* %{_mandir}/man1/mysqlslap.1* %files server %config(noreplace,missingok) %{_sysconfdir}/logrotate.d/mysql %config(noreplace) %{_sysconfdir}/my.cnf %dir %{_sysconfdir}/my.cnf.d %{_bindir}/ibd2sdi %{_bindir}/innochecksum %{_bindir}/my_print_defaults %{_bindir}/myisam_ftdump %{_bindir}/myisamchk %{_bindir}/myisamlog %{_bindir}/myisampack %{_bindir}/mysql_tzinfo_to_sql %{_bindir}/mysql_upgrade %{_bindir}/mysqld_pre_systemd %{_bindir}/mysqld_safe %{_bindir}/mysqldumpslow %{_bindir}/perror %{_bindir}/ps-admin %{_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 %{_unitdir}/mysqld@.service %{_tmpfilesdir}/mysql.conf %dir %{_libdir}/mysql/plugin %{_libdir}/mysql/plugin/adt_null.so %{_libdir}/mysql/plugin/audit_log.so %{_libdir}/mysql/plugin/authentication_fido.so %{_libdir}/mysql/plugin/authentication_ldap_sasl.so %{_libdir}/mysql/plugin/authentication_ldap_simple.so %{_libdir}/mysql/plugin/auth_pam_compat.so %{_libdir}/mysql/plugin/auth_pam.so %{_libdir}/mysql/plugin/auth_socket.so %{_libdir}/mysql/plugin/binlog_utils_udf.so %{_libdir}/mysql/plugin/connection_control.so %{_libdir}/mysql/plugin/data_masking.so %{_libdir}/mysql/plugin/ddl_rewriter.so %{_libdir}/mysql/plugin/dialog.so %{_libdir}/mysql/plugin/greatdb_ha.so %{_libdir}/mysql/plugin/group_replication.so %{_libdir}/mysql/plugin/ha_example.so %{_libdir}/mysql/plugin/ha_mock.so %{_libdir}/mysql/plugin/innodb_engine.so %{_libdir}/mysql/plugin/keyring_file.so %{_libdir}/mysql/plugin/keyring_udf.so %{_libdir}/mysql/plugin/keyring_vault.so %{_libdir}/mysql/plugin/libfnv1a_udf.so %{_libdir}/mysql/plugin/libfnv_udf.so %{_libdir}/mysql/plugin/libmemcached.so %{_libdir}/mysql/plugin/libmurmur_udf.so #{_libdir}/mysql/plugin/libpluginmecab.so #{_libdir}/mysql/plugin/libpluginngram.so %{_libdir}/mysql/plugin/locking_service.so %{_libdir}/mysql/plugin/mypluglib.so %{_libdir}/mysql/plugin/mysql_clone.so %{_libdir}/mysql/plugin/mysql_no_login.so #{_libdir}/mysql/plugin/mysqlx.so %{_libdir}/mysql/plugin/procfs.so %{_libdir}/mysql/plugin/rewrite_example.so %{_libdir}/mysql/plugin/rewriter.so %{_libdir}/mysql/plugin/semisync_master.so %{_libdir}/mysql/plugin/semisync_replica.so %{_libdir}/mysql/plugin/semisync_slave.so %{_libdir}/mysql/plugin/semisync_source.so %{_libdir}/mysql/plugin/test_udf_wrappers.so %ifarch x86_64 %{_libdir}/mysql/plugin/tokudb_backup.so %endif %{_libdir}/mysql/plugin/validate_password.so %{_libdir}/mysql/plugin/version_token.so %{_libdir}/mysql/plugin/component_audit_api_message_emit.so %{_libdir}/mysql/plugin/component_encryption_udf.so %{_libdir}/mysql/plugin/component_keyring_file.so %{_libdir}/mysql/plugin/component_keyring_kmip.so %{_libdir}/mysql/plugin/component_keyring_kms.so %{_libdir}/mysql/plugin/component_log_filter_dragnet.so %{_libdir}/mysql/plugin/component_log_sink_json.so %{_libdir}/mysql/plugin/component_log_sink_syseventlog.so %{_libdir}/mysql/plugin/component_mysqlbackup.so %{_libdir}/mysql/plugin/component_query_attributes.so %{_libdir}/mysql/plugin/component_reference_cache.so %{_libdir}/mysql/plugin/component_validate_password.so %{_sbindir}/mysqld %{_datadir}/greatsql %{_mandir}/man1/ibd2sdi.1* %{_mandir}/man1/innochecksum.1* %{_mandir}/man1/lz4_decompress.1* %{_mandir}/man1/my_print_defaults.1* %{_mandir}/man1/myisam_ftdump.1* %{_mandir}/man1/myisamchk.1* %{_mandir}/man1/myisamlog.1* %{_mandir}/man1/myisampack.1* %{_mandir}/man1/mysql_tzinfo_to_sql.1* %{_mandir}/man1/mysql_upgrade.1* %{_mandir}/man1/mysqldumpslow.1* %{_mandir}/man1/mysqlman.1* %{_mandir}/man1/perror.1* %{_mandir}/man8/mysqld.8* %{_mandir}/man1/zlib_decompress.1* %dir %attr(755, mysql, mysql) %{_rundir}/mysqld %files shared %{_sysconfdir}/ld.so.conf.d/greatsql-shared-%{version}-%{_arch}.conf %dir %{_libdir}/mysql %{_libdir}/mysql/libperconaserver*.so.* %dir %{_includedir}/coredumper %{_includedir}/coredumper/coredumper.h %{_prefix}/lib/libcoredumper.a %transfiletriggerin shared -- %{_libdir}/mysql /usr/sbin/ldconfig %transfiletriggerpostun shared -- %{_libdir}/mysql /usr/sbin/ldconfig %files devel %{_bindir}/mysql_config %{_includedir}/mysql %{_datadir}/aclocal/mysql.m4 %{_libdir}/pkgconfig/* %{_libdir}/mysql/libperconaserverclient.so %{_libdir}/mysql/libperconaserverclient.a %{_libdir}/mysql/libmysqlservices.a %{_mandir}/man1/mysql_config.1* %files mysql-router %config(noreplace,missingok) %{_sysconfdir}/logrotate.d/mysqlrouter %{_bindir}/mysqlrouter %{_bindir}/mysqlrouter_keyring %{_bindir}/mysqlrouter_passwd %{_bindir}/mysqlrouter_plugin_info %{_unitdir}/mysqlrouter.service %{_tmpfilesdir}/mysqlrouter.conf %dir %{_libdir}/mysqlrouter %dir %{_libdir}/mysqlrouter/private %{_libdir}/mysqlrouter/private/libmysqlharness.so.* %{_libdir}/mysqlrouter/private/libmysqlharness_stdx.so.* %{_libdir}/mysqlrouter/private/libmysqlharness_tls.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter_http.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter_http_auth_backend.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter_http_auth_realm.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter_io_component.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter_connection_pool.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter_destination_status.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter_metadata_cache.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter_mysqlxmessages.so.* %{_libdir}/mysqlrouter/private/libmysqlrouter_routing.so.* %{_libdir}/mysqlrouter/*.so %{_mandir}/man1/mysqlrouter.1* %{_mandir}/man1/mysqlrouter_passwd.1* %{_mandir}/man1/mysqlrouter_plugin_info.1* %dir %attr(755, mysqlrouter, mysqlrouter) /var/log/mysqlrouter %dir %attr(755, mysqlrouter, mysqlrouter) %{_rundir}/mysqlrouter %files test %{_bindir}/comp_err %{_bindir}/mysql_client_test %{_bindir}/mysql_keyring_encryption_test %{_bindir}/mysqltest %{_bindir}/mysqltest_safe_process %{_bindir}/mysqlxtest %dir %{_libdir}/mysql/plugin %{_libdir}/mysql/plugin/auth.so %{_libdir}/mysql/plugin/auth_test_plugin.so %{_libdir}/mysql/plugin/conflicting_variables.so %{_libdir}/mysql/plugin/libdaemon_example.so %{_libdir}/mysql/plugin/libtest_framework.so %{_libdir}/mysql/plugin/libtest_services.so %{_libdir}/mysql/plugin/libtest_services_threaded.so %{_libdir}/mysql/plugin/libtest_session_attach.so %{_libdir}/mysql/plugin/libtest_session_detach.so %{_libdir}/mysql/plugin/libtest_session_info.so %{_libdir}/mysql/plugin/libtest_session_in_thd.so %{_libdir}/mysql/plugin/libtest_sql_2_sessions.so %{_libdir}/mysql/plugin/libtest_sql_all_col_types.so %{_libdir}/mysql/plugin/libtest_sql_cmds_1.so %{_libdir}/mysql/plugin/libtest_sql_commit.so %{_libdir}/mysql/plugin/libtest_sql_complex.so %{_libdir}/mysql/plugin/libtest_sql_errors.so %{_libdir}/mysql/plugin/libtest_sql_lock.so %{_libdir}/mysql/plugin/libtest_sql_processlist.so %{_libdir}/mysql/plugin/libtest_sql_replication.so %{_libdir}/mysql/plugin/libtest_sql_reset_connection.so %{_libdir}/mysql/plugin/libtest_sql_shutdown.so %{_libdir}/mysql/plugin/libtest_sql_sleep_is_connected.so %{_libdir}/mysql/plugin/libtest_sql_sqlmode.so %{_libdir}/mysql/plugin/libtest_sql_stmt.so %{_libdir}/mysql/plugin/libtest_sql_stored_procedures_functions.so %{_libdir}/mysql/plugin/libtest_sql_views_triggers.so %{_libdir}/mysql/plugin/libtest_x_sessions_deinit.so %{_libdir}/mysql/plugin/libtest_x_sessions_init.so %{_libdir}/mysql/plugin/pfs_example_plugin_employee.so %{_libdir}/mysql/plugin/qa_auth_client.so %{_libdir}/mysql/plugin/qa_auth_interface.so %{_libdir}/mysql/plugin/qa_auth_server.so %{_libdir}/mysql/plugin/replication_observers_example_plugin.so %{_libdir}/mysql/plugin/test_security_context.so %{_libdir}/mysql/plugin/test_services_command_services.so %{_libdir}/mysql/plugin/test_services_host_application_signal.so %{_libdir}/mysql/plugin/test_services_plugin_registry.so %{_libdir}/mysql/plugin/test_udf_services.so %{_libdir}/mysql/plugin/udf_example.so %{_libdir}/mysql/plugin/component_example_component1.so %{_libdir}/mysql/plugin/component_example_component2.so %{_libdir}/mysql/plugin/component_example_component3.so %{_libdir}/mysql/plugin/component_log_sink_test.so %{_libdir}/mysql/plugin/component_mysqlx_global_reset.so %{_libdir}/mysql/plugin/component_pfs_example_component_population.so %{_libdir}/mysql/plugin/component_pfs_example.so %{_libdir}/mysql/plugin/component_test_audit_api_message.so %{_libdir}/mysql/plugin/component_test_backup_lock_service.so %{_libdir}/mysql/plugin/component_test_component_deinit.so %{_libdir}/mysql/plugin/component_test_host_application_signal.so %{_libdir}/mysql/plugin/component_test_mysql_command_services.so %{_libdir}/mysql/plugin/component_test_mysql_current_thread_reader.so %{_libdir}/mysql/plugin/component_test_mysql_runtime_error.so %{_libdir}/mysql/plugin/component_test_mysql_system_variable_set.so %{_libdir}/mysql/plugin/component_test_pfs_notification.so %{_libdir}/mysql/plugin/component_test_pfs_resource_group.so %{_libdir}/mysql/plugin/component_test_sensitive_system_variables.so %{_libdir}/mysql/plugin/component_test_status_var_reader.so %{_libdir}/mysql/plugin/component_test_status_var_service.so %{_libdir}/mysql/plugin/component_test_status_var_service_int.so %{_libdir}/mysql/plugin/component_test_status_var_service_reg_only.so %{_libdir}/mysql/plugin/component_test_status_var_service_str.so %{_libdir}/mysql/plugin/component_test_status_var_service_unreg_only.so %{_libdir}/mysql/plugin/component_test_string_service.so %{_libdir}/mysql/plugin/component_test_string_service_charset.so %{_libdir}/mysql/plugin/component_test_string_service_long.so %{_libdir}/mysql/plugin/component_test_sys_var_service.so %{_libdir}/mysql/plugin/component_test_sys_var_service_int.so %{_libdir}/mysql/plugin/component_test_sys_var_service_same.so %{_libdir}/mysql/plugin/component_test_sys_var_service_str.so %{_libdir}/mysql/plugin/component_test_system_variable_source.so %{_libdir}/mysql/plugin/component_test_table_access.so %{_libdir}/mysql/plugin/component_test_udf_registration.so %{_libdir}/mysql/plugin/component_test_udf_services.so %{_libdir}/mysql/plugin/component_udf_reg_3_func.so %{_libdir}/mysql/plugin/component_udf_reg_avg_func.so %{_libdir}/mysql/plugin/component_udf_reg_int_func.so %{_libdir}/mysql/plugin/component_udf_reg_int_same_func.so %{_libdir}/mysql/plugin/component_udf_reg_only_3_func.so %{_libdir}/mysql/plugin/component_udf_reg_real_func.so %{_libdir}/mysql/plugin/component_udf_unreg_3_func.so %{_libdir}/mysql/plugin/component_udf_unreg_int_func.so %{_libdir}/mysql/plugin/component_udf_unreg_real_func.so %{_libdir}/mysql/plugin/daemon_example.ini %{_libdir}/mysql/plugin/data_masking.ini %{_datadir}/mysql-test %{_mandir}/man1/comp_err.1* %changelog