#!/usr/bin/env bash # # --- T2-COPYRIGHT-NOTE-BEGIN --- # T2 SDE: scripts/Check-System # Copyright (C) 2004 - 2023 The T2 SDE Project # Copyright (C) 1998 - 2003 ROCK Linux Project # # This Copyright note is generated by scripts/Create-CopyPatch, # 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 version 2. # --- 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