Build-configs/Budgie/build.sh

296 lines
7.5 KiB
Bash
Executable File

#!/bin/bash
PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
# Set the working folder variable
acorbuild="$(pwd)"
# Create the build folder, move into it removing stale mountpoints and files there.
[ -e build ] && [ ! -d build ] && rm -f build || [ ! -e build ] && mkdir build
cd build
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
for i in ./* ./.build ./cache/bootstrap ; do [ $i = ./cache ] && continue || rm -rf $i ; done
# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.
lb config noauto \
--binary-images iso-hybrid \
--mode debian \
--architectures amd64 \
--linux-flavours amd64 \
--distribution bookworm \
--archive-areas "main contrib non-free non-free-firmware" \
--mirror-bootstrap https://deb.debian.org/debian \
--parent-mirror-bootstrap https://deb.debian.org/debian \
--parent-mirror-chroot https://deb.debian.org/debian \
--parent-mirror-chroot-security https://security.debian.org/debian-security \
--parent-mirror-binary https://deb.debian.org/debian \
--parent-mirror-binary-security https://security.debian.org/debian-security \
--mirror-chroot https://deb.debian.org/debian \
--mirror-chroot-security https://security.debian.org/debian-security \
--updates true \
--security true \
--backports false \
--cache true \
--apt-recommends true \
--iso-application AcorOS \
--win32-loader false \
--iso-preparer acoros-https://sourceforge.net/projects/acor-os/ \
--iso-publisher acoros-https://sourceforge.net/projects/acor-os/ \
--iso-volume AcorOS \
--image-name "AcorOS" \
--checksums sha512 \
--zsync false \
"${@}"
# Install the Budgie Desktop
mkdir -p $acorbuild/build/config/package-lists
echo budgie-desktop > $acorbuild/build/config/package-lists/desktop.list.chroot
# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
linux-headers-amd64
nala
dkms
dbus-x11
ntp
locales
deb-multimedia-keyring
acoros-keyring
xorg
xserver-xorg
xserver-xorg-input-synaptics
xserver-xorg-input-all
xserver-xorg-video-vmware
xserver-xorg-video-all
w64codecs
ffmpeg
sox
twolame
lame
faad
gstreamer1.0-plugins-good
gstreamer1.0-plugins-ugly
gstreamer1.0-plugins-bad
gstreamer1.0-pulseaudio
unrar
rar
p7zip-full
p7zip-rar
zip
unzip
file-roller
pulseaudio
pavucontrol
alsa-utils
aptitude
synaptic
gparted
apt-config-auto-update
libelf-dev
htop
package-update-indicator
desktop-base
gnome-packagekit
acoros-translations
acoroslocale
gvfs-backends
samba
gnome-packagekit
iso-flag-png
network-manager
network-manager-gnome
bluez
gufw
acoros-icons
blue-papirus-icons
brown-papirus-icons
darc-aurora-gtk-theme
orchis-gtk-theme
papirus-cyan-icons
papirus-dark-grey
papirus-icon-theme
yaru++-icons
plymouth
plymouth-themes
cups
system-config-printer
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
budgie-core
#budgie-desktop
nautilus
gnome-terminal
gedit
gedit-plugins
acoros-budgie-configs
gnome-backgrounds
budgie-app-launcher-applet
budgie-applications-menu-applet
budgie-brightness-controller-applet
budgie-hotcorners-applet
budgie-fuzzyclock-applet
budgie-keyboard-autoswitch-applet
budgie-previews budgie-previews-applet
budgie-quicknote-applet
budgie-recentlyused-applet
budgie-showtime-applet
budgie-takeabreak-applet
budgie-trash-applet
budgie-visualspace-applet
budgie-weathershow-applet
budgie-window-mover-applet
budgie-window-shuffler
budgie-workspace-overview-applet
budgie-workspace-wallpaper-applet
budgie-desktop-view
budgie-indicator-applet
balena-etcher-electron
gnome-screenshot
gnome-contacts eog eog-plugins
gnome-bluetooth gnome-calendar
gnome-paint gnome-calculator
gnome-system-monitor
alacarte font-manager
baobab
gnome-calendar
gnome-disk-utility
neofetch
timeshift
gnome-software
gnome-software-plugin-flatpak
gnome-software-plugin-snap
fwupd
bleachbit
dconf-editor
gimp
gimp-data-extras
evince
xsane
transmission-gtk
thunderbird
thunderbird-l10n-pt-br
thunderbird-l10n-pt-pt
thunderbird-l10n-de
thunderbird-l10n-en-gb
thunderbird-l10n-es-es
thunderbird-l10n-fr
thunderbird-l10n-it
firefox
firefox-l10n-de
firefox-l10n-en
firefox-l10n-es
firefox-l10n-it
firefox-l10n-br
firefox-l10n-pt
libreoffice
libreoffice-gtk3
libreoffice-l10n-pt
libreoffice-l10n-pt-br
libreoffice-l10n-de
libreoffice-l10n-en-gb
libreoffice-l10n-es
libreoffice-l10n-fr
libreoffice-l10n-it
printer-driver-cups-pdf
gnome-2048
gnome-chess
gnome-mahjongg
gnome-sudoku
guvcview
vlc
qt5-style-plugins
qt5ct
calamares-settings-acoros
calamares
firmware-linux
firmware-linux-free
firmware-linux-nonfree
firmware-misc-nonfree
firmware-realtek
firmware-atheros
firmware-bnx2
firmware-bnx2x
firmware-brcm80211
firmware-intelwimax
firmware-iwlwifi
firmware-libertas
firmware-netxen
firmware-zd1211
gdebi
f2fs-tools
xfsprogs
xfsdump
grub-pc
" > $acorbuild/build/config/package-lists/packages.list.chroot
# Packages to be stored in /pool but not installed in the OS .
echo "# These packages are available to the installer, for offline use.
efibootmgr
grub-common
grub2-common
grub-efi
grub-efi-amd64
grub-efi-amd64-bin
grub-efi-amd64-signed
libefiboot1
libefivar1
mokutil
os-prober
shim-helpers-amd64-signed
shim-signed
shim-signed-common
shim-unsigned
" > $acorbuild/build/config/package-lists/installer.list.binary
# Setup the chroot structure
mkdir -p $acorbuild/build/config/archives
mkdir -p $acorbuild/build/config/includes.binary
mkdir -p $acorbuild/build/config/hooks/live
mkdir -p $acorbuild/build/config/hooks/normal
mkdir -p $acorbuild/build/config/bootloaders
mkdir -p $acorbuild/build/config/includes.chroot/usr/share/applications
mkdir -p $acorbuild/build/config/includes.chroot/etc/live/config.conf.d
mkdir -p $acorbuild/build/config/includes.chroot/usr/share/distro-info
mkdir -p $acorbuild/build/config/includes.chroot//usr/share/python-apt/templates
mkdir -p $acorbuild/build/config/includes.chroot/etc/dpkg/origins
mkdir -p $acorbuild/build/config/includes.chroot/usr/bin
mkdir -p $acorbuild/build/config/includes.chroot/usr/local/bin
mkdir -p $acorbuild/build/config/includes.chroot/etc/lightdm
mkdir -p $acorbuild/build/config/includes.chroot/boot/grub
mkdir -p $acorbuild/build/config/includes.chroot/etc/default
# Copy Configs to the chroot
cp $acorbuild/acoruserconfig/* $acorbuild/build/config/includes.chroot/etc/live/config.conf.d
cp $acorbuild/acorapplication/* $acorbuild/build/config/includes.chroot/usr/share/applications
cp $acorbuild/acorhooks/live/* $acorbuild/build/config/hooks/live
cp $acorbuild/acorhooks/normal/* $acorbuild/build/config/hooks/normal
cp $acorbuild/acorlightdm/* $acorbuild/build/config/includes.chroot/etc/lightdm
cp $acorbuild/acorgrub/grub $acorbuild/build/config/includes.chroot/etc/default
cp -r $acorbuild/acorbootloaders/* $acorbuild/build/config/bootloaders
cp -r $acorbuild/acorrepos/* $acorbuild/build/config/archives
cp -r $acorbuild/acorcsv/* $acorbuild/build/config/includes.chroot/usr/share/distro-info
cp -r $acorbuild/acorgrub/themes $acorbuild/build/config/includes.chroot/boot/grub
#symlinks chroot
ln -s Debian.info $acorbuild/build/config/includes.chroot/usr/share/python-apt/templates/Acoros.info
ln -s Debian.mirrors $acorbuild/build/config/includes.chroot/usr/share/python-apt/templates/Acoros.mirrors
ln -s debian.csv $acorbuild/build/config/includes.chroot/usr/share/distro-info/acoros.csv
ln -s acoros $acorbuild/build/config/includes.chroot/etc/dpkg/origins/default
# Build the ISO #
lb build #--debug --verbose