everest-install/scripts/build.sh
2022-08-02 16:31:25 -04:00

152 lines
4.1 KiB
Bash
Executable File

#!/bin/sh
# Everest Linux 1.0.0-busybox - Stage 1 Installation Script
# This program is free software: See the GNU GPL v3.0 for details
printf "=== WELCOME TO EVEREST LINUX! ===\n"
printf "This program will do the following:\n"
sleep 0.2
printf " - Create the necessary directory layout (as defined by the Filesystem Hierarchy Standard)\n"
sleep 0.2
printf " - Load the build settings defined in the 'build-settings' file\n"
sleep 0.2
printf " - Bootstrap the Glacier package manager\n"
sleep 0.2
printf " - Compile Everest Linux v1.0.0-busybox\n"
sleep 0.2
printf "The following settings will be used. If these do not work, alter this script.\n"
sleep 0.2
printf "/mnt/everest - build directory\n"
sleep 0.2
printf "everest - build user\n"
sleep 0.2
printf "/bin/bash - shell for user\n"
sleep 0.2
printf "This script will perform actions that are >>> NOT REVERSIBLE! <<<\n"
sleep 0.2
read -p "Are you sure you want to continue? (y/n) " -n 1 -r
echo # (optional) move to a new line
if [[ $REPLY =~ ^[Yy]$ ]]
then
printf "[!!!] The script will execute in 10"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "9"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "8"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "7"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "6"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "5"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "4"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "3"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "2"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "1"
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "."
sleep 0.25
printf "0\n"
printf "[ i ] Loading build-settings file...\n"
./build-settings
printf "[ i ] Creating build directory...\n"
mkdir /mnt/everest # CHANGE THIS IF YOU DO NOT WANT YOUR BUILD DIRECTORY TO BE /mnt/everest
export EVEREST=/mnt/everest
printf "[ i ] Ensuring EVEREST variable is correctly set up... (output should be the path to the build directory)\n"
echo $EVEREST
printf "[ i ] Changing permissions...\n"
chmod 777 /mnt/everest
printf "[ i ] Creating sources directory...\n"
mkdir -pv $EVEREST/sources
printf "[ i ] Downloading packages...\n"
mkdir -pv tempfiles
cd tempfiles
wget --quiet --show-progress http://ftp.gnu.org/gnu/binutils/binutils-2.27.tar.bz2
wget --quiet --show-progress http://busybox.net/downloads/busybox-1.24.2.tar.bz2
wget --quiet --show-progress https://github.com/cross-lfs/bootscripts-embedded/archive/master.tar.gz
wget --quiet --show-progress http://gcc.gnu.org/pub/gcc/releases/gcc-6.2.0/gcc-6.2.0.tar.bz2
wget --quiet --show-progress http://ftp.gnu.org/gnu/gmp/gmp-6.1.1.tar.bz2
wget --quiet --show-progress http://sethwklein.net/iana-etc-2.30.tar.bz2
wget --quiet --show-progress http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.22.tar.xz
wget --quiet --show-progress http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
wget --quiet --show-progress http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2
wget --quiet --show-progress http://www.musl-libc.org/releases/musl-1.1.16.tar.gz
printf "[ i ] Downloading patches...\n"
wget --quiet --show-progress http://patches.clfs.org/embedded-dev/iana-etc-2.30-update-2.patch
printf "[ i ] Double checking EVEREST variable is correct...\n"
echo $EVEREST
printf "[ i ] Creating user for build...\n"
groupadd everest
useradd -s /bin/bash -g everest -m -k /dev/null everest
printf "[ ? ] Enter a password for the new user:\n"
passwd everest
printf "[ i ] Giving ownership of build directory to the new user...\n"
chown -Rv everest $EVEREST
printf "[ i ] The stage 1 installation has now finished.\n"
#printf "su - everest"
printf "[ i ] Please execute the stage 2 installation.\n"
su - everest
#printf "test"
fi