From 8d91e8e2342517e530488000a0d98e23c78c8b6d Mon Sep 17 00:00:00 2001 From: Andrey Vasilyev Date: Tue, 2 Jul 2019 10:44:11 +0300 Subject: [PATCH 1/2] Install TCL from the source code only when the system version of the library is older than 8.6.5 --- BUILD/install_build_deps.sh | 42 ++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/BUILD/install_build_deps.sh b/BUILD/install_build_deps.sh index a8777e603..698d914fc 100755 --- a/BUILD/install_build_deps.sh +++ b/BUILD/install_build_deps.sh @@ -52,7 +52,7 @@ else sudo zypper -n update sudo zypper -n install gcc gcc-c++ ncurses-devel bison glibc-devel libgcc_s1 perl \ make libtool libopenssl-devel libaio libaio-devel flex \ - pcre-devel git wget tcl libuuid-devel \ + pcre-devel git wget tcl tcl-devel libuuid-devel \ xz-devel sqlite3 sqlite3-devel pkg-config lua lua-devel \ gnutls-devel libgcrypt-devel pam-devel sudo zypper -n install rpm-build @@ -69,7 +69,7 @@ else sudo yum install -y --nogpgcheck gcc gcc-c++ ncurses-devel bison glibc-devel \ libgcc perl make libtool openssl-devel libaio libaio-devel libedit-devel \ libedit-devel systemtap-sdt-devel rpm-sign wget \ - gnupg pcre-devel flex rpmdevtools git wget tcl openssl libuuid-devel xz-devel \ + gnupg pcre-devel flex rpmdevtools git wget tcl tcl-devel openssl libuuid-devel xz-devel \ sqlite sqlite-devel pkgconfig lua lua-devel rpm-build createrepo yum-utils \ gnutls-devel libgcrypt-devel pam-devel @@ -124,23 +124,35 @@ sudo make install cd ../../ # TCL -mkdir tcl -cd tcl -wget -q --no-check-certificate http://prdownloads.sourceforge.net/tcl/tcl8.6.5-src.tar.gz +# Methods allow to compare software versions according to semantic versioning +verlte() { + [ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] +} -if [ $? != 0 ] +verlt() { + [ "$1" = "$2" ] && return 1 || verlte $1 $2 +} + +system_tcl_version=$(tclsh <<< 'puts [info patchlevel]') +if verlt "$system_tcl_version" "8.6.5" then - echo "Error getting tcl" - exit 1 + mkdir tcl + cd tcl + wget -q --no-check-certificate http://prdownloads.sourceforge.net/tcl/tcl8.6.5-src.tar.gz + + if [ $? != 0 ] + then + echo "Error getting tcl" + exit 1 + fi + + tar xzf tcl8.6.5-src.tar.gz + cd tcl8.6.5/unix + ./configure + sudo make install + cd ../../.. fi -tar xzf tcl8.6.5-src.tar.gz -cd tcl8.6.5/unix -./configure -sudo make install -cd ../../.. - - # Jansson git clone https://github.com/akheron/jansson.git if [ $? != 0 ] From 66d6ce6fa598a43b20af052ef6c9f637a3279fa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Wed, 3 Jul 2019 09:00:31 +0300 Subject: [PATCH 2/2] Create /var/lib/maxscale via systemd Systemd provides the facilities to run commands before startup which can be used to prevent the problem that fixing MXS-2578 caused: upon upgrading from 2.3.8 to 2.3.9 the /var/lib/maxscale directory would be removed if it was empty. --- etc/maxscale.service.in | 1 + 1 file changed, 1 insertion(+) diff --git a/etc/maxscale.service.in b/etc/maxscale.service.in index ddccbcf85..fd46da89d 100644 --- a/etc/maxscale.service.in +++ b/etc/maxscale.service.in @@ -10,6 +10,7 @@ Restart=on-abort # Make sure /var/run/maxscale exists PermissionsStartOnly=true ExecStartPre=/usr/bin/install -d @MAXSCALE_VARDIR@/run/maxscale -o maxscale -g maxscale +ExecStartPre=/usr/bin/install -d @MAXSCALE_VARDIR@/lib/maxscale -o maxscale -g maxscale PIDFile=@MAXSCALE_VARDIR@/run/maxscale/maxscale.pid