You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
309 lines
10 KiB
309 lines
10 KiB
#!/bin/bash |
|
#set -e |
|
################################################################################################################## |
|
# Author : Erik Dubois |
|
# Website : https://www.erikdubois.online |
|
# Website : https://www.arcolinux.info |
|
# Website : https://www.arcolinux.com |
|
# Website : https://www.arcolinuxd.com |
|
# Website : https://www.arcolinuxb.com |
|
# Website : https://www.arcolinuxiso.com |
|
# Website : https://www.arcolinuxforum.com |
|
# Website : https://www.alci.online |
|
################################################################################################################## |
|
# |
|
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. |
|
# |
|
################################################################################################################## |
|
echo |
|
echo "################################################################## " |
|
tput setaf 2 |
|
echo "Phase 1 : " |
|
echo "- Setting General parameters" |
|
tput sgr0 |
|
echo "################################################################## " |
|
echo |
|
|
|
#Let us set the desktop" |
|
#First letter of desktop is small letter |
|
|
|
#desktop="xfce" |
|
#lightdmDesktop="xfce" |
|
|
|
#arcolinuxVersion='v21.03.1' |
|
|
|
#isoLabel='arcolinux-next-'$arcolinuxVersion'-x86_64.iso' |
|
|
|
# setting of the general parameters |
|
archisoRequiredVersion="archiso 70-1" |
|
buildFolder=$HOME"/alci-build" |
|
outFolder=$HOME"/Alci-Iso-Out" |
|
archisoVersion=$(sudo pacman -Q archiso) |
|
|
|
echo "################################################################## " |
|
#echo "Building the desktop : "$desktop |
|
#echo "Building version : "$arcolinuxVersion |
|
#echo "Iso label : "$isoLabel |
|
echo "Do you have the right archiso version? : "$archisoVersion |
|
echo "What is the required archiso version? : "$archisoRequiredVersion |
|
echo "Build folder : "$buildFolder |
|
echo "Out folder : "$outFolder |
|
echo "################################################################## " |
|
|
|
if [ "$archisoVersion" == "$archisoRequiredVersion" ]; then |
|
tput setaf 2 |
|
echo "##################################################################" |
|
echo "Archiso has the correct version. Continuing ..." |
|
echo "##################################################################" |
|
tput sgr0 |
|
else |
|
tput setaf 1 |
|
echo "###################################################################################################" |
|
echo "You need to install the correct version of Archiso" |
|
echo "Use 'sudo downgrade archiso' to do that" |
|
echo "or update your system" |
|
echo "If a new archiso package comes in and you want to test if you can still build" |
|
echo "the iso then change the version in line 37." |
|
echo "###################################################################################################" |
|
tput sgr0 |
|
fi |
|
|
|
echo |
|
echo "################################################################## " |
|
tput setaf 2 |
|
echo "Phase 2 :" |
|
echo "- Checking if archiso is installed" |
|
echo "- Saving current archiso version to archiso.md" |
|
echo "- Making mkarchiso verbose" |
|
tput sgr0 |
|
echo "################################################################## " |
|
echo |
|
|
|
package="archiso" |
|
|
|
#---------------------------------------------------------------------------------- |
|
|
|
#checking if application is already installed or else install with aur helpers |
|
if pacman -Qi $package &> /dev/null; then |
|
|
|
echo "Archiso is already installed" |
|
|
|
else |
|
|
|
#checking which helper is installed |
|
if pacman -Qi yay &> /dev/null; then |
|
|
|
echo "################################################################" |
|
echo "######### Installing with yay" |
|
echo "################################################################" |
|
yay -S --noconfirm $package |
|
|
|
elif pacman -Qi trizen &> /dev/null; then |
|
|
|
echo "################################################################" |
|
echo "######### Installing with trizen" |
|
echo "################################################################" |
|
trizen -S --noconfirm --needed --noedit $package |
|
|
|
fi |
|
|
|
# Just checking if installation was successful |
|
if pacman -Qi $package &> /dev/null; then |
|
|
|
echo "################################################################" |
|
echo "######### "$package" has been installed" |
|
echo "################################################################" |
|
|
|
else |
|
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" |
|
echo "!!!!!!!!! "$package" has NOT been installed" |
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" |
|
exit 1 |
|
fi |
|
|
|
fi |
|
|
|
echo |
|
echo "Saving current archiso version to archiso.md" |
|
sudo sed -i "s/\(^archiso-version=\).*/\1$archisoVersion/" ../archiso.md |
|
echo |
|
echo "Making mkarchiso verbose" |
|
sudo sed -i 's/quiet="y"/quiet="n"/g' /usr/bin/mkarchiso |
|
|
|
echo |
|
echo "################################################################## " |
|
tput setaf 2 |
|
echo "Phase 3 :" |
|
echo "- Deleting the build folder if one exists" |
|
echo "- Copying the Archiso folder to build folder" |
|
tput sgr0 |
|
echo "################################################################## " |
|
echo |
|
|
|
echo "Deleting the build folder if one exists - takes some time" |
|
[ -d $buildFolder ] && sudo rm -rf $buildFolder |
|
echo |
|
echo "Copying the Archiso folder to build work" |
|
echo |
|
mkdir $buildFolder |
|
cp -r ../archiso $buildFolder/archiso |
|
|
|
# echo |
|
# echo "################################################################## " |
|
# tput setaf 2 |
|
# echo "Phase 4 :" |
|
# echo "- Deleting any files in /etc/skel" |
|
# echo "- Getting the last version of bashrc in /etc/skel" |
|
# echo "- Removing the old packages.x86_64 file from build folder" |
|
# echo "- Copying the new packages.x86_64 file to the build folder" |
|
# echo "- Changing group for polkit folder" |
|
# tput sgr0 |
|
# echo "################################################################## " |
|
# echo |
|
|
|
# echo "Deleting any files in /etc/skel" |
|
# rm -rf $buildFolder/archiso/airootfs/etc/skel/.* 2> /dev/null |
|
# echo |
|
|
|
# echo "Getting the last version of bashrc in /etc/skel" |
|
# echo |
|
# wget https://raw.githubusercontent.com/arcolinux/arcolinux-root/master/etc/skel/.bashrc-latest -O $buildFolder/archiso/airootfs/etc/skel/.bashrc |
|
|
|
# echo "Removing the old packages.x86_64 file from build folder" |
|
# rm $buildFolder/archiso/packages.x86_64 |
|
# echo |
|
# echo "Copying the new packages.x86_64 file to the build folder" |
|
# cp -f ../archiso/packages.x86_64 $buildFolder/archiso/packages.x86_64 |
|
# echo |
|
# echo "Changing group for polkit folder" |
|
# sudo chgrp polkitd $buildFolder/archiso/airootfs/etc/polkit-1/rules.d |
|
# #is not working so fixing this during calamares installation |
|
|
|
# echo |
|
# echo "################################################################## " |
|
# tput setaf 2 |
|
# echo "Phase 5 : " |
|
# echo "- Changing all references" |
|
# echo "- Adding time to /etc/dev-rel" |
|
# tput sgr0 |
|
# echo "################################################################## " |
|
# echo |
|
# |
|
# #Setting variables |
|
# |
|
# #profiledef.sh |
|
# oldname1='iso_name=arcolinux' |
|
# newname1='iso_name=arcolinux' |
|
# |
|
# oldname2='iso_label="arcolinux' |
|
# newname2='iso_label="arcolinux' |
|
# |
|
# oldname3='ArcoLinux' |
|
# newname3='ArcoLinux' |
|
# |
|
# #hostname |
|
# oldname4='ArcoLinux' |
|
# newname4='ArcoLinux' |
|
# |
|
# #lightdm.conf user-session |
|
# oldname5='user-session=xfce' |
|
# newname5='user-session='$lightdmDesktop |
|
# |
|
# #lightdm.conf autologin-session |
|
# oldname6='#autologin-session=' |
|
# newname6='autologin-session='$lightdmDesktop |
|
# |
|
# echo "Changing all references" |
|
# echo |
|
# sed -i 's/'$oldname1'/'$newname1'/g' $buildFolder/archiso/profiledef.sh |
|
# sed -i 's/'$oldname2'/'$newname2'/g' $buildFolder/archiso/profiledef.sh |
|
# sed -i 's/'$oldname3'/'$newname3'/g' $buildFolder/archiso/airootfs/etc/dev-rel |
|
# sed -i 's/'$oldname4'/'$newname4'/g' $buildFolder/archiso/airootfs/etc/hostname |
|
# sed -i 's/'$oldname5'/'$newname5'/g' $buildFolder/archiso/airootfs/etc/lightdm/lightdm.conf |
|
# sed -i 's/'$oldname6'/'$newname6'/g' $buildFolder/archiso/airootfs/etc/lightdm/lightdm.conf |
|
# |
|
# echo "Adding time to /etc/dev-rel" |
|
# date_build=$(date -d now) |
|
# echo "Iso build on : "$date_build |
|
# sudo sed -i "s/\(^ISO_BUILD=\).*/\1$date_build/" $buildFolder/archiso/airootfs/etc/dev-rel |
|
|
|
|
|
echo |
|
echo "################################################################## " |
|
tput setaf 2 |
|
echo "Phase 6 :" |
|
echo "- Cleaning the cache from /var/cache/pacman/pkg/" |
|
tput sgr0 |
|
echo "################################################################## " |
|
echo |
|
|
|
echo "Cleaning the cache from /var/cache/pacman/pkg/" |
|
yes | sudo pacman -Scc |
|
|
|
echo |
|
echo "################################################################## " |
|
tput setaf 2 |
|
echo "Phase 7 :" |
|
echo "- Building the iso - this can take a while - be patient" |
|
tput sgr0 |
|
echo "################################################################## " |
|
echo |
|
|
|
[ -d $outFolder ] || mkdir $outFolder |
|
cd $buildFolder/archiso/ |
|
sudo mkarchiso -v -w $buildFolder -o $outFolder $buildFolder/archiso/ |
|
|
|
|
|
|
|
# echo |
|
# echo "###################################################################" |
|
# tput setaf 2 |
|
# echo "Phase 8 :" |
|
# echo "- Creating checksums" |
|
# echo "- Copying pgklist" |
|
# tput sgr0 |
|
# echo "###################################################################" |
|
# echo |
|
# |
|
# cd $outFolder |
|
# |
|
# echo "Creating checksums for : "$isoLabel |
|
# echo "##################################################################" |
|
# echo |
|
# echo "Building sha1sum" |
|
# echo "########################" |
|
# sha1sum $isoLabel | tee $isoLabel.sha1 |
|
# echo "Building sha256sum" |
|
# echo "########################" |
|
# sha256sum $isoLabel | tee $isoLabel.sha256 |
|
# echo "Building md5sum" |
|
# echo "########################" |
|
# md5sum $isoLabel | tee $isoLabel.md5 |
|
# echo |
|
echo "Moving pkglist.x86_64.txt" |
|
echo "########################" |
|
rename=$(date +%Y-%m-%d) |
|
cp $buildFolder/iso/arch/pkglist.x86_64.txt $outFolder/archlinux-$rename-pkglist.txt |
|
|
|
|
|
echo |
|
echo "##################################################################" |
|
tput setaf 2 |
|
echo "Phase 9 :" |
|
echo "- Making sure we start with a clean slate next time" |
|
tput sgr0 |
|
echo "################################################################## " |
|
echo |
|
|
|
#echo "Deleting the build folder if one exists - takes some time" |
|
#[ -d $buildFolder ] && sudo rm -rf $buildFolder |
|
|
|
echo |
|
echo "##################################################################" |
|
tput setaf 2 |
|
echo "DONE" |
|
echo "- Check your out folder :"$outFolder |
|
tput sgr0 |
|
echo "################################################################## " |
|
echo
|
|
|