#!/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 \ --bootstrap-qemu-arch arm64 \ --bootstrap-qemu-static /usr/sbin/qemu-debootstrap \ --architectures arm64 \ --linux-flavours arm64 \ --bootloaders grub-efi \ --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" \ --win32-loader false \ --checksums sha512 \ --zsync false \ "${@}" # Install the Xfce Desktop mkdir -p $acorbuild/build/config/package-lists echo xfce4 xfce4-goodies > $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-arm64 locales nala dbus-x11 ntp acoros-keyring xorg xserver-xorg xserver-xorg-input-synaptics xserver-xorg-input-all xserver-xorg-video-all #w64codecs pulseaudio pavucontrol alsa-utils aptitude synaptic gparted apt-config-auto-update libelf-dev htop package-update-indicator desktop-base gnome-packagekit gvfs-backends samba gnome-packagekit sambashare network-manager network-manager-gnome bluez blueman gufw acoros-icons materia-gtk-theme tela-icon-theme tela-circle-icon-theme teja-gtk-theme acoros-backgrounds plymouth plymouth-themes cups system-config-printer lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings menulibre mugshot xscreensaver xscreensaver-data xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra gnome-system-tools gnome-disk-utility gnome-calculator neofetch accountsservice catfish 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-all firefox-esr firefox-esr-l10n-all libreoffice libreoffice-gtk3 libreoffice-l10n* printer-driver-cups-pdf gnome-2048 gnome-chess gnome-mahjongg gnome-sudoku guvcview vlc qt5-style-plugins qt5ct calamares-settings-debian calamares gdebi f2fs-tools xfsprogs xfsdump tumbler tumbler-plugins-extra ffmpegthumbnailer xterm #grub-pc baobab console-setup spice-vdagent xdg-user-dirs-gtk " > $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-arm64 grub-efi-arm64-bin grub-efi-arm64-signed libefiboot1 libefivar1 mokutil os-prober shim-helpers-arm64-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/normal mkdir -p $acorbuild/build/config/includes.chroot/usr/lib/live/config 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 mkdir -p $acorbuild/build/config/includes.chroot/boot/grub mkdir -p $acorbuild/build/config/includes.chroot/usr/sbin mkdir -p $acorbuild/build/config/includes.chroot/usr/share mkdir -p $acorbuild/build/config/includes.chroot/etc/skel/Desktop mkdir -p $acorbuild/build/config/includes.chroot/etc/skel/.config mkdir -p $acorbuild/build/config/includes.chroot/lib/x86_64-linux-gnu/calamares/modules/fstab # 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/includes.chroot/usr/lib/live/config 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 $acorbuild/acorconfigs/.face $acorbuild/build/config/includes.chroot/etc/skel cp $acorbuild/acorinstaller/bootloader-config-arm64 $acorbuild/build/config/includes.chroot/usr/sbin/bootloader-config # cp $acorbuild/acorinstaller/bootloader-config $acorbuild/build/config/includes.chroot/usr/sbin cp $acorbuild/acorinstaller/add-calamares-desktop-icon $acorbuild/build/config/includes.chroot/usr/bin cp $acorbuild/acorinstaller/install-debian $acorbuild/build/config/includes.chroot/usr/bin cp $acorbuild/acorinstaller/sources-final $acorbuild/build/config/includes.chroot/usr/sbin cp $acorbuild/acorinstaller/main.py $acorbuild/build/config/includes.chroot/lib/x86_64-linux-gnu/calamares/modules/fstab cp -r $acorbuild/acorbootloaders/* $acorbuild/build/config/includes.binary 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 cp -r $acorbuild/acorconfigs/xfce/* $acorbuild/build/config/includes.chroot/etc/skel/.config cp -r $acorbuild/acorinstaller/calamares $acorbuild/build/config/includes.chroot/etc cp -r $acorbuild/acorinstaller/pixmaps $acorbuild/build/config/includes.chroot/usr/share #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