diff --git a/src/CONFIG_SCRIPTS.sh b/src/CONFIG_SCRIPTS.sh index e0c3667..b567ae0 100755 --- a/src/CONFIG_SCRIPTS.sh +++ b/src/CONFIG_SCRIPTS.sh @@ -53,13 +53,13 @@ function confirm_dialouge() { function start_menu_mesage() { echo "NOTE: Remember to check the CONFIG.sh and set the variables!" echo "\nWhat do you want to run?" - echo "\t0) Do all jobs (Including cleanup berfore starting.)" - echo "\t1) Do debootstrap run" - echo "\t2) Chroot" - echo "\t3) Create boot structure" - echo "\t4) Create the ISO" - echo "\t5) Cleanup (Purges everything that was generated.)" - echo "\t6) EXIT" + echo "\t1) Do all jobs (Including cleanup berfore starting.)" + echo "\t2) Do debootstrap run" + echo "\t3) Chroot" + echo "\t4) Create boot structure" + echo "\t5) Create the ISO" + echo "\t6) Cleanup (Purges everything that was generated.)" + echo "\t0) EXIT" } function chroot_big_dump_mesage() { diff --git a/src/COPY_OVER_TO_CHROOT/CLEANUP.sh b/src/COPY_OVER_TO_CHROOT/CLEANUP.sh index 8438c1f..39477f8 100644 --- a/src/COPY_OVER_TO_CHROOT/CLEANUP.sh +++ b/src/COPY_OVER_TO_CHROOT/CLEANUP.sh @@ -5,20 +5,16 @@ rm /var/lib/dbus/machine-id # Before exiting the chroot, remove the diversion: # Earlier this guide asked you to make a backup copy of /sbin/initctl. # If the following command does not restore this file, then restore from the backup copy you made. -rm /sbin/initctl -dpkg-divert --rename --remove /sbin/initctl - - -# Remove old kernels -ls /boot/vmlinuz-5.4.**-**-generic > list.txt -sum=$(cat list.txt | grep '[^ ]' | wc -l) - -if [ $sum -gt 1 ]; then - dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge -fi -rm list.txt - - +apt-get update && apt-get upgrade +apt-get autoremove --purge -y +apt-get autoclean -y apt-get clean + rm -rf /tmp/* rm /etc/resolv.conf + +# Remove old kernels +dpkg -l 'linux-*' | sed '/^ii/!d;/hwe/d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt -y purge; update-grub + +rm /sbin/initctl +dpkg-divert --rename --remove /sbin/initctl diff --git a/src/COPY_OVER_TO_CHROOT/CONFIG.sh b/src/COPY_OVER_TO_CHROOT/CONFIG.sh new file mode 100755 index 0000000..c92a2ac --- /dev/null +++ b/src/COPY_OVER_TO_CHROOT/CONFIG.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +. CONFIG_SCRIPTS.sh +. GET_PPA_GPG_KEYS.sh + + +# ---- Setup Variables ---- # +export HOME=/root +export LC_ALL=C + + +# Screen-id of launched Xephyr on host system... ex: :10 or :1.0, etc +# Note: Don't use :0 or :0.0 as they are your host system's. +export DISPLAY=:10 + + +# ---- Call CONFIG_SCRIPTS Methods Here As Needed ---- # +cd "${SCRIPT_PATH}"; +echo "Base Dir: " $(pwd) "\n"; diff --git a/src/COPY_OVER_TO_CHROOT/CONFIG_SCRIPTS.sh b/src/COPY_OVER_TO_CHROOT/CONFIG_SCRIPTS.sh new file mode 100755 index 0000000..446e311 --- /dev/null +++ b/src/COPY_OVER_TO_CHROOT/CONFIG_SCRIPTS.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + + + +# ---- DO NOT CHANGE OR REMOVE UNLESS YOU KNOW WHAT YOU ARE DOING ---- # + +# ---- Setup Aliases ---- # +shopt -s expand_aliases +alias echo="echo -e" + +SCRIPT_PATH="$( cd "$(dirname "")" >/dev/null 2>&1 ; pwd -P )"; + + + + +# ---- Methods Used Throughout The Process ---- # + +# Generic confirm 'dialouge' +function confirm_dialouge() { + echo $1 + read -p "(yY/Nn) --> " ANSR + while [[ $ANSR != "y" ]] && [[ $ANSR != "Y" ]] && \ + [[ $ANSR != "n" ]] && [[ $ANSR != "N" ]] + do + read -p "(yY/Nn) --> " ANSR + done + + if [[ $ANSR == "n" ]] || [[ $ANSR == "N" ]]; then + return 1 + fi + + return 0 +} + + + + + +# ---- Messages Used Throughout The Process ---- # + +function start_menu_mesage() { + echo "NOTE: Remember to check the CONFIG.sh and set the variables!" + echo "\nWhat do you want to run?" + echo "\t1) Run the initial environment setup process (Only run once!)" + echo "\t2) Add PPA repos" + echo "\t3) Pull PPA repo keys" + echo "\t4) Install live ISO dependencies" + echo "\t5) Install Base System Packages" + echo "\t6) Install Gaming Apps" + echo "\t7) Install Media Apps" + echo "\t8) Install Office Apps" + echo "\t9) Install Debs" + echo "\t10) Transfer Setting" + echo "\11) Cleanup (Should run before exiting chroot.)" + echo "\t0) EXIT" +} diff --git a/src/COPY_OVER_TO_CHROOT/DEB32/README.txt b/src/COPY_OVER_TO_CHROOT/DEB32/README.txt deleted file mode 100644 index bcb308b..0000000 --- a/src/COPY_OVER_TO_CHROOT/DEB32/README.txt +++ /dev/null @@ -1 +0,0 @@ -Add 32bit debs here... This folder is intended to keep things clear and clean... \ No newline at end of file diff --git a/src/COPY_OVER_TO_CHROOT/DEB64/README.txt b/src/COPY_OVER_TO_CHROOT/DEB64/README.txt deleted file mode 100644 index 8eae1af..0000000 --- a/src/COPY_OVER_TO_CHROOT/DEB64/README.txt +++ /dev/null @@ -1 +0,0 @@ -Add 64bit debs here... This folder is intended to keep things clear and clean... \ No newline at end of file diff --git a/src/COPY_OVER_TO_CHROOT/GET_PPA_GPGS.sh b/src/COPY_OVER_TO_CHROOT/GET_PPA_GPG_KEYS.sh similarity index 89% rename from src/COPY_OVER_TO_CHROOT/GET_PPA_GPGS.sh rename to src/COPY_OVER_TO_CHROOT/GET_PPA_GPG_KEYS.sh index a9942b2..5303e06 100644 --- a/src/COPY_OVER_TO_CHROOT/GET_PPA_GPGS.sh +++ b/src/COPY_OVER_TO_CHROOT/GET_PPA_GPG_KEYS.sh @@ -10,6 +10,6 @@ function main() { # Add your keys here.. # Command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys # Ex: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 283EC8CD - + echo "No gpg keys specified for addition..." } main $@; diff --git a/src/COPY_OVER_TO_CHROOT/GET_PPA_REPOSITORIES.sh b/src/COPY_OVER_TO_CHROOT/GET_PPA_REPOSITORIES.sh new file mode 100644 index 0000000..81dd53a --- /dev/null +++ b/src/COPY_OVER_TO_CHROOT/GET_PPA_REPOSITORIES.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +. CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +# ---- Bellow adds other PPAs ---- # +function main() { + echo "No ppas specified for addition..." + ####### SOFTWARE PPAs ####### + # add-apt-repository ppa:webupd8team/atom -y # atom text editor + # apt-add-repository ppa:obsproject/obs-studio -y # open broadcaster studio + # add-apt-repository ppa:starws-box/deadbeef-player -y # deadbeef musuc player + + ####### THEMES PPAs ####### + # add-apt-repository ppa:noobslab/themes -y # sable-gtk + # add-apt-repository ppa:noobslab/icons2 -y # more icons + # add-apt-repository ppa:snwh/pulp -y # paper-gtk-theme + # apt-get install ambiance-blackout-colors -y # ambiance-blackout-colors +} +main $@; diff --git a/src/COPY_OVER_TO_CHROOT/LIST_INSTALLED_PACKAGES.sh b/src/COPY_OVER_TO_CHROOT/LIST_INSTALLED_PACKAGES.sh deleted file mode 100644 index 2102087..0000000 --- a/src/COPY_OVER_TO_CHROOT/LIST_INSTALLED_PACKAGES.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/bash - -function main() { - apt list --installed > temp.txt - echo "aptitude" >> temp.txt ## Apend aptitude to list - lineCount=$(wc -l temp.txt | awk '{printf $1}') ## Get line count minus one to remove first line - tail -n$((lineCount - 1)) temp.txt > cleanedList.sh ## Get all lines but the first - echo "aptitude markauto ~i \\ " > temp.txt - awk '{ FS = "/"} NF{printf " !~" $1}' cleanedList.sh >> temp.txt - rm cleanedList.sh - mv temp.txt cleanedList.sh -} -main; diff --git a/src/COPY_OVER_TO_CHROOT/PRE_DEBS/sol-os-base_0.0.1_amd64.deb b/src/COPY_OVER_TO_CHROOT/PRE_DEBS/sol-os-base_0.0.1_amd64.deb new file mode 100644 index 0000000..733bb14 Binary files /dev/null and b/src/COPY_OVER_TO_CHROOT/PRE_DEBS/sol-os-base_0.0.1_amd64.deb differ diff --git a/src/COPY_OVER_TO_CHROOT/PRE_DEBS/sol-os-desktop_0.0.1_amd64.deb b/src/COPY_OVER_TO_CHROOT/PRE_DEBS/sol-os-desktop_0.0.1_amd64.deb new file mode 100644 index 0000000..ffac298 Binary files /dev/null and b/src/COPY_OVER_TO_CHROOT/PRE_DEBS/sol-os-desktop_0.0.1_amd64.deb differ diff --git a/src/COPY_OVER_TO_CHROOT/start.sh b/src/COPY_OVER_TO_CHROOT/start.sh new file mode 100755 index 0000000..036bc73 --- /dev/null +++ b/src/COPY_OVER_TO_CHROOT/start.sh @@ -0,0 +1,163 @@ +#!/bin/bash + +. CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function main() { + clear; + start_menu_mesage; + read -p "--> : " ANSR + while [[ $ANSR != "0" ]] && [[ $ANSR != "1" ]] && \ + [[ $ANSR != "2" ]] && [[ $ANSR != "3" ]] && \ + [[ $ANSR != "4" ]] && [[ $ANSR != "5" ]] && \ + [[ $ANSR != "6" ]] && [[ $ANSR != "7" ]] && \ + [[ $ANSR != "8" ]] && [[ $ANSR != "9" ]] && \ + [[ $ANSR != "10" ]] && [[ $ANSR != "11" ]]; do + read -p "--> : " ANSR + done + case $ANSR in + "1" ) run_once_process; break;; + "2" ) ./GET_PPA_REPOSITORIES.sh; break;; + "3" ) ./GET_PPA_GPG_KEYS.sh; break;; + "4" ) get_live_iso_dependencies; break;; + "5" ) base; break;; + "6" ) gaming; break;; + "7" ) media; break;; + "8" ) office; break;; + "9" ) debs; break;; + "10" ) transfer_settings; break;; + "11" ) ./CLEANUP.sh; break;; + "0" ) exit; break;; + * ) echo "Don't know how you got here but that's a bad sign..."; break;; + esac +} + + +function run_once_process() { + apt-get update + apt-get install --yes dbus + dbus-uuidgen > /var/lib/dbus/machine-id + dpkg-divert --local --rename --add /sbin/initctl + # Gets us add-apt-repository command + apt-get install apt-transport-https software-properties-common -y + apt-get --yes upgrade +} + + +function get_live_iso_dependencies() { + apt-get install --yes casper lupin-casper + apt-get install --yes discover laptop-detect os-prober + apt-get install --yes linux-generic + + echo "Do you want to install?" + echo "\t1) ubiquity-frontend-gtk" + echo "\t2) ubiquity-frontend-kde" + echo "\t0) nethier..." + read -p "--> : " ANSR + while [[ $ANSR != "0" ]] && [[ $ANSR != "1" ]] && \ + [[ $ANSR != "2" ]]; do + read -p "--> : " ANSR + done + case $ANSR in + "0" ) apt-get install --yes ubiquity-frontend-gtk --no-install-recommends --no-install-suggests + break;; + "1" ) apt-get install --yes ubiquity-frontend-kde --no-install-recommends --no-install-suggests + break;; + "2" ) break;; + esac +} + + +#-------------------------------Bellow Installs the main system------------------------# + +######################## Main Desktop ######################## +function base() { +# Pushed to a meta-package deb + # apt-get install xserver-xorg xorg xinit slim synaptic aptitude apt-xapian-index \ + # gufw wicd-curses pulseaudio pavucontrol file-roller p7zip-rar arj rar unrar-free \ + # xcompmgr tweak lhasa unar p7zip zip terminator stjerm ttf-mscorefonts-installer \ + # gparted gdebi sox udisks2 iftop htop tree hardinfo libsox-fmt-all onboard mc \ + # oracle-java8-installer -y + +apt-get autoremove --purge -y && apt-get autoclean + +#### Change bellow mate-core to other if +#### one wants different window managers +#### Above is mostly common base system stuff + apt-get install mate-core spacefm-gtk3 --no-install-recommends ulauncher -y + apt-get remove caja mate-terminal -y + aptitude keep-all + +############ Themes ############ + # apt-get install paper-gtk-theme paper-icon-theme \ + # sable-gtk mate-icon-theme -y +} + +############ Gaming ############ +function gaming() { + apt-get --no-install-recommends --no-install-suggests install \ + steam-launcher playonlinux dosbox -y +} + +################### Multimedia-- Videos- Images- Etc ################### +function media() { +# guvcview + apt-get --no-install-recommends --no-install-suggests install blender \ + bomi deadbeef gimp gimp-gap obs-studio xfce4-screenshooter x264 mirage \ + xchat-gnome -y +} + +######################### Office-General Stuff ######################### +function office() { +# calibre + apt-get --no-install-recommends --no-install-suggests install \ + filezilla qbittorrent quicksynergy synergy atom galculator bleachbit \ + gtkorphan libreoffice evince -y + +debs +} + +################### Look at DEB dirs to install software #################### + +function debs() { +ARCH=$(uname -m) +touch COPY_OVER_TO_CHROOT/DEBS.sh + + if [[ "${ARCH}" == "i386" ]]; then + ls COPY_OVER_TO_CHROOT/DEB32/ > COPY_OVER_TO_CHROOT/DEBS.sh + ARCH="DEB32/" + elif [[ "${ARCH}" == "x86_64" ]]; then + ls COPY_OVER_TO_CHROOT/DEB64/ > COPY_OVER_TO_CHROOT/DEBS.sh + ARCH="DEB64/" + fi + + sed -i "s|^|dpkg -i ${ARCH}/|" COPY_OVER_TO_CHROOT/DEBS.sh + bash COPY_OVER_TO_CHROOT/DEBS.sh +} + +######################### Copy Settings to their locations ######################### +function transfer_settings() { + ## set etc skell + rm -rf /etc/skel/ + cp -r COPY_OVER_TO_CHROOT/SETTINGS_THEMES/etc/skell/ /etc/ + + ## set slim themes + rm -rf /usr/share/slim/themes/ + mv COPY_OVER_TO_CHROOT/SETTINGS_THEMES/usr_share/slim/themes/ /usr/share/slim/ + + ## set icons & themes + cp -r COPY_OVER_TO_CHROOT/SETTINGS_THEMES/usr_share/icons /usr/share/ + cp -r COPY_OVER_TO_CHROOT/SETTINGS_THEMES/usr_share/themes /usr/share/ + + ## set grub bg image + echo 'GRUB_BACKGROUND="grub.jpg"' >> /etc/default/grub + cp COPY_OVER_TO_CHROOT/SETTINGS_THEMES/boot_grub/grub.jpg /boot/grub/ + update-grub + +} + +main $@; diff --git a/src/META_PACKAGE_EXAMPLES/sol-os-base b/src/META_PACKAGE_EXAMPLES/sol-os-base new file mode 100644 index 0000000..ec0c166 --- /dev/null +++ b/src/META_PACKAGE_EXAMPLES/sol-os-base @@ -0,0 +1,18 @@ +### Commented entries have reasonable defaults. +### Uncomment to edit them. +# Source: sol-os-base-src +Section: misc +Priority: optional +Homepage: https://www.itdominator.com/ +Standards-Version: 3.9.2 + +Package: sol-os-base +Version: 0.0.1 +Maintainer: Maxim Stewart +Depends: adduser,apt,apt-utils,bzip2,console-setup,debconf,eject,gnupg,ifupdown,initramfs-tools,iproute2,iputils-ping,isc-dhcp-client,kbd,kmod,less,locales,makedev,mawk,net-tools,netbase,netcat-openbsd,passwd,procps,python3,resolvconf,rsyslog,sudo,tzdata,ubuntu-keyring,udev,ureadahead,whiptail, + nano,p7zip,zip,p7zip-rar,rar,unrar-free,htop,iftop,mc,tree +Provides: adduser,apt,apt-utils,bzip2,console-setup,debconf,eject,gnupg,ifupdown,initramfs-tools,iproute2,iputils-ping,isc-dhcp-client,kbd,kmod,less,locales,makedev,mawk,net-tools,netbase,netcat-openbsd,passwd,procps,python3,resolvconf,rsyslog,sudo,tzdata,ubuntu-keyring,udev,ureadahead,whiptail, + nano,p7zip,zip,p7zip-rar,rar,unrar-free,htop,iftop,mc,tree +Architecture: amd64 +Description: Sol-OS: A minimal OS + Sol-OS is a minimal OS keeping things simple and light weight. This meta-package installs the base programs that are needed for general system functions. diff --git a/src/META_PACKAGE_EXAMPLES/sol-os-desktop b/src/META_PACKAGE_EXAMPLES/sol-os-desktop new file mode 100644 index 0000000..dc6efd5 --- /dev/null +++ b/src/META_PACKAGE_EXAMPLES/sol-os-desktop @@ -0,0 +1,20 @@ +### Commented entries have reasonable defaults. +### Uncomment to edit them. +# Source: sol-os-desktop-src +Section: misc +Priority: optional +Homepage: https://www.itdominator.com/ +Standards-Version: 3.9.2 + +Package: sol-os-desktop +Version: 0.0.1 +Maintainer: Maxim Stewart +Depends: xserver-xorg,xorg,xinit,pulseaudio,pavucontrol,sox,libsox-fmt-all,udisks2,slim, + xcompmgr,pekwm,default-jre,openjfx,gufw,wicd-curses,gparted,gdebi,file-roller,hardinfo, + terminator,stjerm,onboard +Provides: xserver-xorg,xorg,xinit,pulseaudio,pavucontrol,sox,libsox-fmt-all,udisks2,slim, + xcompmgr,pekwm,default-jre,openjfx,gufw,wicd-curses,gparted,gdebi,file-roller,hardinfo, + terminator,stjerm,onboard +Architecture: amd64 +Description: Sol-OS: A minimal OS + Sol-OS is a minimal OS keeping things simple and light weight. This meta-package installs the base programs that are needed to provide a usable desktop. diff --git a/src/start.sh b/src/start.sh index 563596e..d11b5d0 100755 --- a/src/start.sh +++ b/src/start.sh @@ -11,7 +11,7 @@ function main() { clear; if [[ $(sanity_check) -eq 1 ]]; then echo "\nExiting..."; return; fi - start_menu_mesage + start_menu_mesage; read -p "--> : " ANSR while [[ $ANSR != "0" ]] && [[ $ANSR != "1" ]] && \ [[ $ANSR != "2" ]] && [[ $ANSR != "3" ]] && \ @@ -20,18 +20,18 @@ function main() { read -p "--> : " ANSR done case $ANSR in - "0" ) do_all_run; break;; + "1" ) do_all_run; break;; # First setup the debootstrap env... - "1" ) ./step_1_debootstrap.sh; break;; + "2" ) ./step_1_debootstrap.sh; break;; # Then setup and run chroot... - "2" ) ./step_2_chroot.sh; break;; + "3" ) ./step_2_chroot.sh; break;; # Create the boot structure data... - "3" ) ./step_3_create_boot_structure.sh; break;; + "4" ) ./step_3_create_boot_structure.sh; break;; # Create the CD... - "4" ) ./step_4_create_CD.sh; break;; + "5" ) ./step_4_create_CD.sh; break;; # Purge everythin and start fresh... - "5" ) ./cleanup.sh; break;; - "6" ) exit; break;; + "6" ) ./cleanup.sh; break;; + "0" ) exit; break;; * ) echo "Don't know how you got here but that's a bad sign..."; break;; esac }