t2sde/scripts/Check-System
René Rebe cfe2e695b8 * updated bash version check
git-svn-id: https://svn.exactcode.de/t2/trunk@51396 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc
2021-01-17 09:15:41 +00:00

180 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
#
# --- T2-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by scripts/Create-CopyPatch.
#
# T2 SDE: scripts/Check-System
# Copyright (C) 2004 - 2021 The T2 SDE Project
# Copyright (C) 1998 - 2003 ROCK Linux Project
#
# More information can be found in the files COPYING and README.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License. A copy of the
# GNU General Public License can be found in the file COPYING.
# --- T2-COPYRIGHT-NOTE-END ---
if [ "$1" ]; then
echo "Usage: $0"; exit 1
fi
found_error=0
if [ $UID -ne 0 ]; then
echo "Paranoia Check: You are building as non-root!"
echo "This does not yet work for many configurations such as"
echo "whole system builds that require chroot()."
echo
fi
if [ "`date '+%Y'`" -lt 1990 ]; then
echo "Paranoia Check: Your clock is not set!"
echo "Set you clock using the command: date MMDDhhmm[[CC]YY][.ss]"
echo
found_error=1
fi
if [ -z "`type -p uname`" ]; then
echo "Paranoia Check: You have no uname install!"
echo "Install a uname program printing system information."
echo
found_error=1
fi
if [ -z "`grep '^/' < /proc/swaps`" ]; then
echo "Paranoia Check: No active swap partition found!"
echo "That can cause the build scripts to stall your system!. Better"
echo "activate swap using the 'swapon' command and try again."
echo
#found_error=1
fi
if [ -z "`type -p curl`" ]; then
echo "Paranoia Check: Program 'curl' not found!"
echo "The curl utility is needed for Downloading the package"
echo "source tars. Install the latest curl version."
echo
found_error=1
fi
if [ -z "`type -p flex`" ]; then
echo "Paranoia Check: Program 'Flex' not found!"
echo "The Flex utility is needed for scanning"
echo "Install the latest Flex version."
echo
found_error=1
fi
if [ -z "`type -p m4`" ]; then
echo "Paranoia Check: Program 'm4' not found!"
echo "The m4 utility is needed as a front"
echo "end for gcc. Install the latest m4 version."
echo
found_error=1
fi
if [ -z "`type -p patch`" ]; then
echo "Paranoia Check: Program 'patch' not found!"
echo "The patch program is needed to work"
echo "with source files. Install the latest patch version."
echo
found_error=1
fi
if [ -z "`type -p zstd`" ]; then
echo "Paranoia Check: Program 'zstd' not found!"
echo "The zstd utility is needed for extracting the package"
echo "source tars. Install the latest zstd version."
echo
found_error=1
fi
if [ -z "`type -p makeinfo`" ]; then
echo "Paranoia Check: Program 'makeinfo' not found!"
echo "The makeinfo program is needed for translating Texinfo"
echo "documents. Please make sure that a current version of the"
echo "texinfo package (including makeinfo) is installed on your system."
echo
found_error=1
fi
if [ -z "`type -p bison`" ]; then
echo "Paranoia Check: Program 'bison' not found!"
echo "The bison program is needed for compiling T2 targets."
echo "Please make sure that a current version of the"
echo "bison package is installed on your system."
echo
found_error=1
fi
case $BASH_VERSION in
2.05b*) ;;
3.*) ;;
4.*) ;;
5.*) ;;
*) echo "The running bash version is not listed as supported version"
echo "You need to update 'bash' to at least version 2.05b."
echo
found_error=1
esac
x="`mktemp -p /tmp 2> /dev/null`"
if [ -z "$x" -o ! -f "$x" ]; then
echo "Paranoia Check: Program 'mktemp' not found or too old!"
echo "You need an 'mktemp' installed which does know about the -p"
echo "option. Install the latest mktemp version."
echo
found_error=1
else
rm -f "$x"
fi
x="`mktemp`"; touch $x
if [ -z "`type -p sed`" ] || ! sed -i s/a/b/ $x
then
echo "Paranoia Check: Program 'sed' not found or too old!"
echo "You need a 'sed' installed which does know about the -i option"
echo "(GNU/sed since 2001-09-25). Install the latest sed version."
echo
found_error=1
fi
rm -f $x 2> /dev/null
if [ -z "`type -p gawk`" ]; then
echo "Paranoia Check: Program 'gawk' not found!"
echo "The gawk program is needed for compiling T2 targets."
echo "Please make sure that a current version of the"
echo "gawk package is installed on your system."
echo
found_error=1
fi
x=src/null
mkdir -p src
mknod $x c 1 3
if ! cat src/null; then
echo "Device nodes can not be created or are not functional on the"
echo "partition used for the build. Most probably the partitions is"
echo "mounted with the 'nodev' option."
echo
found_error=1
fi
rm -f $x
if [[ `zstd - < /dev/null | file -` != *Zstandard* ]]; then
echo "The 'file' command does not recognize Zstd compression."
echo "Install the latest version of file."
echo
found_error=1
fi
if [ $found_error -ne 0 ]; then
echo "Paranoia Check found errors -> not doing anything."
echo "You can disable the Paranoia Checks in the Config tool"
echo "on your own risk!"
echo
fi
exit $found_error