[mariadb] Expand paths in helper scripts using cmake
Honza Horak
hhorak at fedoraproject.org
Mon Jul 21 14:17:43 UTC 2014
commit 5eaeb51ae724ec750876f90bbf992e81c0f9141a
Author: Honza Horak <hhorak at redhat.com>
Date: Mon Jul 21 14:41:04 2014 +0200
Expand paths in helper scripts using cmake
mariadb-check-socket => mariadb-check-socket.sh | 0
...adb-prepare-db-dir => mariadb-prepare-db-dir.sh | 6 +-
...adb-scripts-common => mariadb-scripts-common.sh | 6 +-
mariadb-wait-ready => mariadb-wait-ready.sh | 4 +-
mariadb.service => mariadb.service.in | 16 +++---
mariadb.spec | 46 +++++++++++---------
mariadb.tmpfiles.d | 2 -
mariadb.tmpfiles.d.in | 2 +
mysql_config.sh => mysql_config_multilib.sh | 8 ++--
mysqld.service | 12 -----
mysqld.service.in | 12 +++++
11 files changed, 60 insertions(+), 54 deletions(-)
---
diff --git a/mariadb-check-socket b/mariadb-check-socket.sh
similarity index 100%
rename from mariadb-check-socket
rename to mariadb-check-socket.sh
diff --git a/mariadb-prepare-db-dir b/mariadb-prepare-db-dir.sh
similarity index 92%
rename from mariadb-prepare-db-dir
rename to mariadb-prepare-db-dir.sh
index 3b464e9..0e574bc 100644
--- a/mariadb-prepare-db-dir
+++ b/mariadb-prepare-db-dir.sh
@@ -10,7 +10,7 @@ source "`dirname ${BASH_SOURCE[0]}`/mariadb-scripts-common"
SERVICE_NAME="$1"
if [ x"$SERVICE_NAME" = x ]
then
- SERVICE_NAME=mariadb.service
+ SERVICE_NAME=@RPM_PACKAGE_PREFIX at mariadb.service
fi
myuser=`systemctl show -p User "${SERVICE_NAME}" |
@@ -61,11 +61,11 @@ if [ ! -d "$datadir/mysql" ] ; then
# Now create the database
echo "Initializing MySQL database"
- /usr/bin/mysql_install_db --datadir="$datadir" --user="$myuser"
+ @bindir@/mysql_install_db --datadir="$datadir" --user="$myuser"
ret=$?
if [ $ret -ne 0 ] ; then
echo "Initialization of MySQL database failed." >&2
- echo "Perhaps /etc/my.cnf is misconfigured." >&2
+ echo "Perhaps @sysconfdir@/my.cnf is misconfigured." >&2
# Clean up any partially-created database files
if [ ! -e "$datadir/mysql/user.frm" ] ; then
rm -rf "$datadir"/*
diff --git a/mariadb-scripts-common b/mariadb-scripts-common.sh
similarity index 87%
rename from mariadb-scripts-common
rename to mariadb-scripts-common.sh
index 7278350..7ce9a11 100755
--- a/mariadb-scripts-common
+++ b/mariadb-scripts-common.sh
@@ -38,9 +38,9 @@ get_mysql_option(){
# must correspond with values defined in mysqld_safe script and source
# code itself.
-server_sections="mysqld_safe mysqld server mariadb"
+server_sections="mysqld_safe mysqld server mysqld- at MAJOR_VERSION@. at MINOR_VERSION@ mariadb mariadb- at MAJOR_VERSION@. at MINOR_VERSION@ client-server"
-get_mysql_option "$server_sections" datadir "/var/lib/mysql"
+get_mysql_option "$server_sections" datadir "@MYSQL_DATADIR@"
datadir="$result"
# if there is log_error in the my.cnf, my_print_defaults still
@@ -50,7 +50,7 @@ datadir="$result"
get_mysql_option "$server_sections" log-error "`hostname`.err"
errlogfile="$result"
-get_mysql_option "$server_sections" socket "/var/lib/mysql/mysql.sock"
+get_mysql_option "$server_sections" socket "@MYSQL_UNIX_ADDR@"
socketfile="$result"
get_mysql_option "$server_sections" pid-file "`hostname`.pid"
diff --git a/mariadb-wait-ready b/mariadb-wait-ready.sh
similarity index 94%
rename from mariadb-wait-ready
rename to mariadb-wait-ready.sh
index ad1392b..cf5409f 100644
--- a/mariadb-wait-ready
+++ b/mariadb-wait-ready.sh
@@ -11,7 +11,7 @@ source "`dirname ${BASH_SOURCE[0]}`/mariadb-scripts-common"
if [ $# -ne 1 ] ; then
echo "You need to pass daemon pid as an argument for this script."
exit 20
-fi
+fi
# Service file passes us the daemon's PID (actually, mysqld_safe's PID)
daemon_pid="$1"
@@ -24,7 +24,7 @@ while /bin/true; do
ret=1
break
fi
- RESPONSE=`/usr/bin/mysqladmin --no-defaults --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1`
+ RESPONSE=`@bindir@/mysqladmin --no-defaults --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1`
mret=$?
if [ $mret -eq 0 ] ; then
break
diff --git a/mariadb.service b/mariadb.service.in
similarity index 80%
rename from mariadb.service
rename to mariadb.service.in
index f938b05..82b87db 100644
--- a/mariadb.service
+++ b/mariadb.service.in
@@ -17,28 +17,28 @@
# [Service]
# LimitNOFILE=10000
-# Note: /usr/lib/... is recommended in the .include line though /lib/...
+# Note: /usr/lib/... is recommended in the .include line though /lib/...
# still works.
# Don't forget to reload systemd daemon after you change unit configuration:
# root> systemctl --system daemon-reload
[Unit]
-Description=MariaDB database server
+Description=MariaDB @MAJOR_VERSION at .@MINOR_VERSION@ database server
After=syslog.target
After=network.target
-BindsTo=mysqld.service
+BindsTo=@RPM_PACKAGE_PREFIX at mysqld.service
[Service]
Type=simple
User=mysql
Group=mysql
-ExecStartPre=/usr/libexec/mariadb-check-socket
-ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n
+ExecStartPre=@libexecdir@/mariadb-check-socket
+ExecStartPre=@libexecdir@/mariadb-prepare-db-dir %n
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
# per bug #547485
-ExecStart=/usr/bin/mysqld_safe --basedir=/usr
-ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID
+ExecStart=@bindir@/mysqld_safe --basedir=@prefix@
+ExecStartPost=@libexecdir@/mariadb-wait-ready $MAINPID
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300
@@ -48,4 +48,4 @@ PrivateTmp=true
[Install]
WantedBy=multi-user.target
-Also=mysqld.service
+Also=@RPM_PACKAGE_PREFIX at mysqld.service
diff --git a/mariadb.spec b/mariadb.spec
index 2d5f39b..1e836c2 100644
--- a/mariadb.spec
+++ b/mariadb.spec
@@ -68,20 +68,20 @@ URL: http://mariadb.org
License: GPLv2 with exceptions and LGPLv2 and BSD
Source0: http://mirrors.syringanetworks.net/mariadb/mariadb-%{version}/source/mariadb-%{version}.tar.gz
-Source2: mysql_config.sh
+Source2: mysql_config_multilib.sh
Source3: my.cnf
Source4: my_config.h
Source5: README.mysql-cnf
Source6: README.mysql-docs
Source7: README.mysql-license
Source9: mysql-embedded-check.c
-Source10: mariadb.tmpfiles.d
-Source11: mariadb.service
-Source12: mariadb-prepare-db-dir
-Source13: mariadb-wait-ready
-Source14: mariadb-check-socket
-Source15: mariadb-scripts-common
-Source16: mysqld.service
+Source10: mariadb.tmpfiles.d.in
+Source11: mariadb.service.in
+Source12: mariadb-prepare-db-dir.sh
+Source13: mariadb-wait-ready.sh
+Source14: mariadb-check-socket.sh
+Source15: mariadb-scripts-common.sh
+Source16: mysqld.service.in
Source50: rh-skipped-tests-base.list
Source51: rh-skipped-tests-intel.list
Source52: rh-skipped-tests-arm.list
@@ -104,6 +104,7 @@ Patch12: mariadb-covscan-stroverflow.patch
Patch13: mariadb-config.patch
Patch14: mariadb-ssltest.patch
Patch15: mariadb-mysql_config.patch
+Patch16: mariadb-scripts.patch
BuildRequires: perl, readline-devel, openssl-devel
BuildRequires: cmake, ncurses-devel, zlib-devel, libaio-devel
@@ -335,6 +336,7 @@ MariaDB is a community developed branch of MySQL.
%patch13 -p1
%patch14 -p1
%patch15 -p1
+%patch16 -p1
# workaround for upstream bug #56342
rm -f mysql-test/t/ssl_8k_key-master.opt
@@ -359,6 +361,8 @@ cat %{SOURCE53} >> mysql-test/rh-skipped-tests.list
cat %{SOURCE54} >> mysql-test/rh-skipped-tests.list
%endif
+cp %{SOURCE2} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} \
+ %{SOURCE15} %{SOURCE16} scripts
%build
@@ -401,6 +405,7 @@ export LDFLAGS
cmake . -DBUILD_CONFIG=mysql_release \
-DFEATURE_SET="community" \
-DINSTALL_LAYOUT=RPM \
+ -DRPM_PACKAGE_PREFIX="" \
-DRPM="%{?rhel:rhel%{rhel}}%{!?rhel:fedora%{fedora}}" \
-DCMAKE_INSTALL_PREFIX="%{_prefix}" \
%if 0%{?fedora} >= 20
@@ -510,7 +515,7 @@ mv %{buildroot}%{_includedir}/mysql/private/config.h %{buildroot}%{_includedir}/
install -p -m 644 %{SOURCE4} %{buildroot}%{_includedir}/mysql/
install -p -m 644 %{SOURCE4} %{buildroot}%{_includedir}/mysql/private/config.h
mv %{buildroot}%{_bindir}/mysql_config %{buildroot}%{_bindir}/mysql_config-%{__isa_bits}
-install -p -m 0755 %{SOURCE2} %{buildroot}%{_bindir}/mysql_config
+install -p -m 0755 scripts/mysql_config_multilib %{buildroot}%{_bindir}/mysql_config
%endif
# install INFO_SRC, INFO_BIN into libdir (upstream thinks these are doc files,
@@ -538,17 +543,17 @@ install -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/
# install systemd unit files and scripts for handling server startup
mkdir -p %{buildroot}%{_unitdir}
-install -p -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}.service
+install -p -m 644 scripts/mariadb.service %{buildroot}%{_unitdir}/%{name}.service
%if %{?with_mysqld_unit}
-install -p -m 644 %{SOURCE16} %{buildroot}%{_unitdir}/
+install -p -m 644 scripts/mysqld.service %{buildroot}%{_unitdir}/mysqld.service
%endif
-install -p -m 755 %{SOURCE12} %{buildroot}%{_libexecdir}/
-install -p -m 755 %{SOURCE13} %{buildroot}%{_libexecdir}/
-install -p -m 755 %{SOURCE14} %{buildroot}%{_libexecdir}/
-install -p -m 644 %{SOURCE15} %{buildroot}%{_libexecdir}/
+install -p -m 755 scripts/mariadb-prepare-db-dir %{buildroot}%{_libexecdir}/mariadb-prepare-db-dir
+install -p -m 755 scripts/mariadb-wait-ready %{buildroot}%{_libexecdir}/mariadb-wait-ready
+install -p -m 755 scripts/mariadb-check-socket %{buildroot}%{_libexecdir}/mariadb-check-socket
+install -p -m 644 scripts/mariadb-scripts-common %{buildroot}%{_libexecdir}/mariadb-scripts-common
mkdir -p %{buildroot}%{_tmpfilesdir}
-install -p -m 0644 %{SOURCE10} %{buildroot}%{_tmpfilesdir}/%{name}.conf
+install -p -m 0644 scripts/mariadb.tmpfiles.d %{buildroot}%{_tmpfilesdir}/%{name}.conf
# Remove libmysqld.a
rm -f %{buildroot}%{_libdir}/mysql/libmysqld.a
@@ -816,10 +821,10 @@ fi
%{?with_mysqld_unit:%{_unitdir}/mysqld.service}
%{_unitdir}/%{name}.service
-%{_libexecdir}/%{basename:%{SOURCE12}}
-%{_libexecdir}/%{basename:%{SOURCE13}}
-%{_libexecdir}/%{basename:%{SOURCE14}}
-%{_libexecdir}/%{basename:%{SOURCE15}}
+%{_libexecdir}/mariadb-prepare-db-dir
+%{_libexecdir}/mariadb-wait-ready
+%{_libexecdir}/mariadb-check-socket
+%{_libexecdir}/mariadb-scripts-common
%{_tmpfilesdir}/%{name}.conf
%attr(0755,mysql,mysql) %dir %{_localstatedir}/run/mysqld
@@ -878,6 +883,7 @@ fi
- Use modern symbol filtering with compatible backup
- Add more groupnames for server's my.cnf
- Error messages now provided by a separate package (thanks Alexander Barkov)
+- Expand paths in helper scripts using cmake
* Wed Jun 18 2014 Mikko Tiihonen <mikko.tiihonen at iki.fi> - 1:10.0.12-2
- Use -fno-delete-null-pointer-checks to avoid segfaults with gcc 4.9
diff --git a/mariadb.tmpfiles.d.in b/mariadb.tmpfiles.d.in
new file mode 100644
index 0000000..a1b20aa
--- /dev/null
+++ b/mariadb.tmpfiles.d.in
@@ -0,0 +1,2 @@
+d /var/run/@RPM_PACKAGE_PREFIX at mysqld 0755 mysql mysql -
+d /var/run/@RPM_PACKAGE_PREFIX at mariadb 0755 mysql mysql -
diff --git a/mysql_config.sh b/mysql_config_multilib.sh
similarity index 69%
rename from mysql_config.sh
rename to mysql_config_multilib.sh
index 4849e95..06c2a2b 100644
--- a/mysql_config.sh
+++ b/mysql_config_multilib.sh
@@ -1,4 +1,4 @@
-#! /bin/bash
+#! /bin/sh
#
# Wrapper script for mysql_config to support multilib
#
@@ -17,10 +17,10 @@ if [ "$status" = "unknown" ] ; then
fi
-if [ -x /usr/bin/mysql_config-$bits ] ; then
- /usr/bin/mysql_config-$bits "$@"
+if [ -x @bindir@/mysql_config-$bits ] ; then
+ @bindir@/mysql_config-$bits "$@"
else
- echo "$0: error: needed binary: /usr/bin/mysql_config-$bits is missing"
+ echo "$0: error: needed binary: @bindir@/mysql_config-$bits is missing"
exit 1
fi
diff --git a/mysqld.service.in b/mysqld.service.in
new file mode 100644
index 0000000..50f4b49
--- /dev/null
+++ b/mysqld.service.in
@@ -0,0 +1,12 @@
+[Unit]
+Description=MySQL compatibility service (another name for @RPM_PACKAGE_PREFIX at mariadb.service; you should use @RPM_PACKAGE_PREFIX at mariadb.service instead)
+BindsTo=@RPM_PACKAGE_PREFIX at mariadb.service
+
+[Service]
+Type=oneshot
+ExecStart=/bin/true
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
+Also=@RPM_PACKAGE_PREFIX at mariadb.service
More information about the scm-commits
mailing list