From 8a5dc2e71880c3d175961c922600fa8b84fc5eac Mon Sep 17 00:00:00 2001 From: Honza Horak Date: Sat, 6 Dec 2014 09:00:06 +0100 Subject: [PATCH] Rework usage of macros and remove some compatibility artefacts --- mariadb-scripts.patch | 4 +- mariadb.spec | 111 +++++++++--------------------------------- 2 files changed, 25 insertions(+), 90 deletions(-) diff --git a/mariadb-scripts.patch b/mariadb-scripts.patch index d5ba659..f42c991 100644 --- a/mariadb-scripts.patch +++ b/mariadb-scripts.patch @@ -1,7 +1,7 @@ diff -up mariadb-10.0.15/scripts/CMakeLists.txt.systemd mariadb-10.0.15/scripts/CMakeLists.txt --- mariadb-10.0.15/scripts/CMakeLists.txt.systemd 2014-11-27 15:06:24.670736998 +0100 +++ mariadb-10.0.15/scripts/CMakeLists.txt 2014-11-27 15:04:26.252530666 +0100 -@@ -374,6 +374,34 @@ ELSE() +@@ -374,6 +374,32 @@ ELSE() COMPONENT ${${file}_COMPONENT} ) ENDFOREACH() @@ -17,8 +17,6 @@ diff -up mariadb-10.0.15/scripts/CMakeLists.txt.systemd mariadb-10.0.15/scripts/ + mysql-scripts-common + mysql_config_multilib + mysql.init -+ mysql-compat.service -+ mysql-compat.conf + my.cnf + ) + FOREACH(file ${SYSTEMD_SCRIPTS}) diff --git a/mariadb.spec b/mariadb.spec index f775987..48e64a7 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -1,5 +1,4 @@ -# Name of the package without any prefixes -%global pkgname mariadb +# Prefix that is used for patches %global pkgnamepatch mariadb # Regression tests may take a long time (many cores recommended), skip them by @@ -10,7 +9,7 @@ # In f20+ use unversioned docdirs, otherwise the old versioned one %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} -# use Full RELRO for all binaries (RHBZ#1092548) +# Use Full RELRO for all binaries (RHBZ#1092548) %global _hardened_build 1 # By default, patch(1) creates backup files when chunks apply with offsets. @@ -63,9 +62,6 @@ %bcond_without init_systemd %bcond_with init_sysv %global daemon_name %{name} -# Provide temporary service file name that will be removed after some time -# (Fedora 22?) -%global mysqld_unit mysqld %else %bcond_with init_systemd %bcond_without init_sysv @@ -85,9 +81,9 @@ %global logrotateddir %{_sysconfdir}/logrotate.d %global logfiledir %{_localstatedir}/log/%{daemon_name} %global logfile %{logfiledir}/%{daemon_name}.log -%if 0%{?fedora} >= 20 -%global old_logfile %{_localstatedir}/log/mysqld.log -%endif + +# Defining where database data live +%global dbdatadir %{_localstatedir}/lib/mysql # Home directory of mysql user should be same for all packages that create it %global mysqluserhome /var/lib/mysql @@ -98,24 +94,16 @@ # Provide mysql names for compatibility %bcond_without mysql_names - -# When replacing mysql by mariadb these packages are not upated, but rather -# installed and uninstalled. Thus we loose information about mysqld service -# enablement. To address this we use a file to store that information within -# the transaction. Basically the file is created when mysqld is enabled in -# the beginning of the transaction and mysqld is enabled again in the end -# of the transaction in case this flag file exists. -%global mysqld_enabled_flag_file %{_localstatedir}/lib/rpm-state/mysqld_enabled -%global mysqld_running_flag_file %{_localstatedir}/lib/rpm-state/mysqld_running +%bcond_without conflicts # Make long macros shorter %global sameevr %{epoch}:%{version}-%{release} %global compatver 10.0 %global bugfixver 15 -Name: %{pkgname} +Name: mariadb Version: %{compatver}.%{bugfixver} -Release: 1%{?with_debug:.debug}%{?dist} +Release: 2%{?with_debug:.debug}%{?dist} Epoch: 1 Summary: A community developed branch of MySQL @@ -140,8 +128,6 @@ Source13: mysql-wait-ready.sh Source14: mysql-check-socket.sh Source15: mysql-scripts-common.sh Source16: mysql-check-upgrade.sh -Source17: mysql-compat.service.in -Source18: mysql-compat.conf.in Source19: mysql.init.in Source50: rh-skipped-tests-base.list Source51: rh-skipped-tests-intel.list @@ -167,7 +153,6 @@ Patch31: %{pkgnamepatch}-string-overflow.patch Patch32: %{pkgnamepatch}-basedir.patch Patch33: %{pkgnamepatch}-covscan-signexpr.patch Patch34: %{pkgnamepatch}-covscan-stroverflow.patch -Patch35: %{pkgnamepatch}-config.patch Patch36: %{pkgnamepatch}-ssltest.patch BuildRequires: cmake @@ -212,7 +197,7 @@ Provides: mysql-compat-client%{?_isa} = %{sameevr} # MySQL (with caps) is upstream's spelling of their own RPMs for mysql %{?obsoleted_mysql_case_evr:Obsoletes: MySQL < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql < %{obsoleted_mysql_evr}} -Conflicts: community-mysql +%{?with_conflicts:Conflicts: community-mysql} # Filtering: https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering %if 0%{?fedora} > 14 || 0%{?rhel} > 6 @@ -325,8 +310,8 @@ Provides: mysql-compat-server = %{sameevr} Provides: mysql-compat-server%{?_isa} = %{sameevr} %endif %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-server < %{obsoleted_mysql_case_evr}} -Conflicts: community-mysql-server -Conflicts: mariadb-galera-server +%{?with_conflicts:Conflicts: community-mysql-server} +%{?with_conflicts:Conflicts: mariadb-galera-server} %{?obsoleted_mysql_evr:Obsoletes: mysql-server < %{obsoleted_mysql_evr}} %description server @@ -382,7 +367,7 @@ Provides: mysql-devel%{?_isa} = %{sameevr} %endif %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-devel < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-devel < %{obsoleted_mysql_evr}} -Conflicts: community-mysql-devel +%{?with_conflicts:Conflicts: community-mysql-devel} %description devel MariaDB is a multi-user, multi-threaded SQL database server. This @@ -421,7 +406,7 @@ Requires: %{name}-devel%{?_isa} = %{sameevr} Provides: mysql-embedded-devel = %{sameevr} Provides: mysql-embedded-devel%{?_isa} = %{sameevr} %endif -Conflicts: community-mysql-embedded-devel +%{?with_conflicts:Conflicts: community-mysql-embedded-devel} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-embedded-devel < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-embedded-devel < %{obsoleted_mysql_evr}} @@ -442,7 +427,7 @@ Requires: %{name}%{?_isa} = %{sameevr} Provides: mysql-bench = %{sameevr} Provides: mysql-bench%{?_isa} = %{sameevr} %endif -Conflicts: community-mysql-bench +%{?with_conflicts:Conflicts: community-mysql-bench} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-bench < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-bench < %{obsoleted_mysql_evr}} @@ -472,7 +457,7 @@ Requires: perl(Socket) Requires: perl(Sys::Hostname) Requires: perl(Test::More) Requires: perl(Time::HiRes) -Conflicts: community-mysql-test +%{?with_conflicts:Conflicts: community-mysql-test} %if %{with mysql_names} Provides: mysql-test = %{sameevr} Provides: mysql-test%{?_isa} = %{sameevr} @@ -503,7 +488,6 @@ MariaDB is a community developed branch of MySQL. %patch32 -p1 %patch33 -p1 %patch34 -p1 -%patch35 -p1 %patch36 -p1 # removing bundled cmd-line-utils @@ -539,7 +523,7 @@ cat %{SOURCE55} >> mysql-test/rh-skipped-tests.list %endif cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} \ - %{SOURCE14} %{SOURCE15} %{SOURCE16} %{SOURCE17} %{SOURCE18} %{SOURCE19} \ + %{SOURCE14} %{SOURCE15} %{SOURCE16} %{SOURCE19} \ scripts %build @@ -585,13 +569,8 @@ export LDFLAGS -DFEATURE_SET="community" \ -DINSTALL_LAYOUT=RPM \ -DDAEMON_NAME="%{daemon_name}" \ -%if 0%{?mysqld_unit:1} - -DDAEMON_NAME_COMPAT="%{mysqld_unit}" \ -%endif -DLOG_LOCATION="%{logfile}" \ - -DLOG_LOCATION_COMPAT="%{old_logfile}" \ -DPID_FILE_DIR="%{_localstatedir}/run/%{daemon_name}" \ - -DPID_FILE_DIR_COMPAT="%{_localstatedir}/run/%{mysqld_unit}" \ -DNICE_PROJECT_NAME="MariaDB" \ -DRPM="%{?rhel:rhel%{rhel}}%{!?rhel:fedora%{fedora}}" \ -DCMAKE_INSTALL_PREFIX="%{_prefix}" \ @@ -615,8 +594,8 @@ export LDFLAGS -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SQLBENCHDIR=share \ -DINSTALL_SUPPORTFILESDIR=share/%{name} \ - -DMYSQL_DATADIR="%{_localstatedir}/lib/mysql" \ - -DMYSQL_UNIX_ADDR="%{_localstatedir}/lib/mysql/mysql.sock" \ + -DMYSQL_DATADIR="%{dbdatadir}" \ + -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock" \ -DENABLED_LOCAL_INFILE=ON \ -DENABLE_DTRACE=ON \ -DWITH_EMBEDDED_SERVER=ON \ @@ -680,16 +659,12 @@ rm -rf %{buildroot}%{_pkgdocdir}/MariaDB-server-%{version}/ mkdir -p %{buildroot}%{logfiledir} chmod 0750 %{buildroot}%{logfiledir} touch %{buildroot}%{logfile} -%if 0%{?old_logfile:1} -ln -s %{logfile} %{buildroot}%{old_logfile} -%endif # current setting in my.cnf is to use /var/run/mariadb for creating pid file, # however since my.cnf is not updated by RPM if changed, we need to create mysqld # as well because users can have odd settings in their /etc/my.cnf -%{?mysqld_unit:mkdir -p %{buildroot}%{_localstatedir}/run/%{mysqld_unit}} mkdir -p %{buildroot}%{_localstatedir}/run/%{daemon_name} -install -p -m 0755 -d %{buildroot}%{_localstatedir}/lib/mysql +install -p -m 0755 -d %{buildroot}%{dbdatadir} %if %{with config} install -D -p -m 0644 scripts/my.cnf %{buildroot}%{_sysconfdir}/my.cnf @@ -704,13 +679,6 @@ install -D -p -m 644 scripts/mysql.service %{buildroot}%{_unitdir}/%{daemon_name install -D -p -m 0644 scripts/mysql.tmpfiles.d %{buildroot}%{_tmpfilesdir}/%{name}.conf %endif -# install alternative systemd unit file for compatibility reasons -%if 0%{?mysqld_unit:1} -install -p -m 644 scripts/mysql-compat.service %{buildroot}%{_unitdir}/%{mysqld_unit}.service -mkdir -p %{buildroot}%{_unitdir}/%{daemon_name}.service.d -install -p -m 644 scripts/mysql-compat.conf %{buildroot}%{_unitdir}/%{daemon_name}.service.d/mysql-compat.conf -%endif - # install SysV init script %if %{with init_sysv} install -D -p -m 755 scripts/mysql.init %{buildroot}%{_initddir}/%{daemon_name} @@ -874,34 +842,6 @@ export MTR_BUILD_THREAD=%{__isa_bits} /usr/sbin/useradd -M -N -g mysql -o -r -d %{mysqluserhome} -s /sbin/nologin \ -c "MySQL Server" -u 27 mysql >/dev/null 2>&1 || : -%if %{with init_systemd} -# Explicitly enable mysqld if it was enabled in the beginning -# of the transaction. Otherwise mysqld is disabled always when -# replacing mysql with mariadb, because it is not recognized -# as updating, but rather as removal and install. -if /bin/systemctl is-enabled mysqld.service >/dev/null 2>&1 ; then - touch %mysqld_enabled_flag_file >/dev/null 2>&1 || : -fi - -# Since mysqld.service became a symlink to mariadb.service, turning off -# the running mysqld service doesn't work fine (BZ#1002996). As a work-around -# we explicitly stop mysqld before upgrade and start after it again. -if [ ! -L %{_unitdir}/mysqld.service ] && /bin/systemctl is-active mysqld.service &>/dev/null ; then - touch %mysqld_running_flag_file >/dev/null 2>&1 || : - /bin/systemctl stop mysqld.service >/dev/null 2>&1 || : -fi - -%posttrans server -if [ -f %mysqld_enabled_flag_file ] ; then - /bin/systemctl enable %{daemon_name}.service >/dev/null 2>&1 || : - rm -f %mysqld_enabled_flag_file >/dev/null 2>&1 || : -fi -if [ -f %mysqld_running_flag_file ] ; then - /bin/systemctl start %{daemon_name}.service >/dev/null 2>&1 || : - rm -f %mysqld_running_flag_file >/dev/null 2>&1 || : -fi -%endif - %if %{with clibrary} %post libs -p /sbin/ldconfig %endif @@ -919,7 +859,7 @@ if [ $1 = 1 ]; then /sbin/chkconfig --add %{daemon_name} fi %endif -/bin/chmod 0755 %{_localstatedir}/lib/mysql +/bin/chmod 0755 %{dbdatadir} %preun server %if %{with init_systemd} @@ -1129,8 +1069,6 @@ fi %{?with_mroonga:%{_datadir}/%{name}/mroonga/uninstall.sql} %{_datadir}/%{name}/my-*.cnf -%{?mysqld_unit:%{_unitdir}/%{mysqld_unit}.service} -%{?mysqld_unit:%{_unitdir}/%{daemon_name}.service.d/mysql-compat.conf} %{?with_init_systemd:%{_unitdir}/%{daemon_name}.service} %{?with_init_sysv:%{_initddir}/%{daemon_name}} %{_libexecdir}/mysql-prepare-db-dir @@ -1140,14 +1078,10 @@ fi %{_libexecdir}/mysql-scripts-common %{?with_init_systemd:%{_tmpfilesdir}/%{name}.conf} -%{?mysqld_unit:%attr(0755,mysql,mysql) %dir %{_localstatedir}/run/%{mysqld_unit}} %attr(0755,mysql,mysql) %dir %{_localstatedir}/run/%{daemon_name} -%attr(0755,mysql,mysql) %dir %{_localstatedir}/lib/mysql +%attr(0755,mysql,mysql) %dir %{dbdatadir} %attr(0750,mysql,mysql) %dir %{logfiledir} %attr(0640,mysql,mysql) %config %ghost %verify(not md5 size mtime) %{logfile} -%if 0%{?old_logfile:1} - %config %ghost %verify(not md5 size mtime) %{old_logfile} -%endif %config(noreplace) %{logrotateddir}/%{daemon_name} %if %{with oqgraph} @@ -1199,6 +1133,9 @@ fi %endif %changelog +* Fri Dec 05 2014 Honza Horak - 1:10.0.15-2 +- Rework usage of macros and remove some compatibility artefacts + * Thu Nov 27 2014 Jakub Dorňák - 1:10.0.15-1 - Update to 10.0.15