From f99a891858ac64fb09ab23aa6d3adb78fc491f6b Mon Sep 17 00:00:00 2001 From: Tuukka Pasanen Date: Mon, 13 Mar 2023 11:56:53 +0200 Subject: MDEV-30837: Remove usage of AWK from Debian init and postinst scripts AWK in used in Debian SysV-init and postinst scripts to determine is there enough space starting MariaDB database or create new database to target destination. These AWK scripts can be rewrited to use pure SH or help using Coreutils which is mandatory for usage of MariaDB currently. Reasoning behind this is to get rid of one very less used dependency --- debian/mariadb-server-10.6.mariadb.init | 5 ++++- debian/mariadb-server-10.6.preinst | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/debian/mariadb-server-10.6.mariadb.init b/debian/mariadb-server-10.6.mariadb.init index 0bc7a972e88..b2b7142084f 100644 --- a/debian/mariadb-server-10.6.mariadb.init +++ b/debian/mariadb-server-10.6.mariadb.init @@ -84,7 +84,10 @@ sanity_checks() { # check for diskspace shortage datadir=`mariadbd_get_param datadir` - if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk '{ exit ($4>4096) }'; then + # As preset blocksize of GNU df is 1024 then available bytes is $df_available_blocks * 1024 + # 4096 blocks is then lower than 4 MB + df_available_blocks=`LC_ALL=C BLOCKSIZE= df --output=avail "$datadir" | tail -n 1` + if [ "$df_available_blocks" -lt "4096" ]; then log_failure_msg "$0: ERROR: The partition with $datadir is too full!" echo "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER exit 1 diff --git a/debian/mariadb-server-10.6.preinst b/debian/mariadb-server-10.6.preinst index b79f20a9803..c865173e29e 100644 --- a/debian/mariadb-server-10.6.preinst +++ b/debian/mariadb-server-10.6.preinst @@ -209,8 +209,10 @@ if [ ! -d $mysql_datadir ] && [ ! -L $mysql_datadir ]; then mkdir -Z $mysql_datadir fi -# checking disc space -if LC_ALL=C BLOCKSIZE= df --portability $mysql_datadir/. | tail -n 1 | awk '{ exit ($4>1000) }'; then +# As preset blocksize of GNU df is 1024 then available bytes is $df_available_blocks * 1024 +# 4096 blocks is then lower than 4 MB +df_available_blocks=`LC_ALL=C BLOCKSIZE= df --output=avail "$datadir" | tail -n 1` +if [ "$df_available_blocks" -lt "4096" ]; then echo "ERROR: There's not enough space in $mysql_datadir/" 1>&2 db_stop exit 1 -- cgit v1.2.1