#!/bin/bash ################################################################################ # Title: build.sh # Description: Script to build My-distro ISO image # Author: manuel rosa # Date: Outubro 29, 2023 # License: GPL-3.0-or-later ################################################################################ PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH" # Set the working folder variable build="$(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 ; 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 ubuntu \ --architectures amd64 \ --linux-flavours generic \ --distribution jammy \ --archive-areas "main multiverse restricted universe" \ --mirror-bootstrap http://archive.ubuntu.com/ubuntu \ --parent-mirror-bootstrap http://archive.ubuntu.com/ubuntu \ --parent-mirror-chroot http://archive.ubuntu.com/ubuntu \ --parent-mirror-chroot-security http://security.ubuntu.com/ubuntu \ --parent-mirror-binary http://archive.ubuntu.com/ubuntu \ --parent-mirror-binary-security http://security.ubuntu.com/ubuntu \ --mirror-chroot http://archive.ubuntu.com/ubuntu \ --mirror-chroot-security http://security.ubuntu.com/ubuntu \ --updates true \ --security true \ --cache true \ --apt-recommends true \ --firmware-binary true \ --firmware-chroot true \ --iso-application "My-distro" \ --win32-loader false \ --iso-volume "My-distro-amd64" \ --iso-publisher "Manuel rosa" \ --image-name "My-distro" \ --win32-loader false \ --checksums sha512 \ --zsync false \ "${@}" # Install the Xfce Desktop mkdir -p $build/build/config/package-lists echo xfce4 xfce4-goodies > $build/build/config/package-lists/desktop.list.chroot # Install software echo "# Install software to the squashfs for calamares to unpack to the OS. linux-headers-generic locales language-selector-gnome update-manager gnome-packagekit adwaita-icon-theme-full dkms dbus-x11 ntp xorg xserver-xorg xserver-xorg-input-synaptics xserver-xorg-input-all xserver-xorg-video-vmware xserver-xorg-video-all 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 pulseaudio pavucontrol alsa-utils aptitude synaptic gparted #apt-config-auto-update libelf-dev htop package-update-indicator gvfs-backends samba network-manager network-manager-gnome network-manager-pptp-gnome bluez blueman gufw gtk2-engines plymouth plymouth-themes cups system-config-printer lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings lightdm-autologin-greeter menulibre mugshot xscreensaver xscreensaver-data xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra gnome-system-tools gnome-disk-utility gnome-calculator neofetch accountsservice catfish fuseiso timeshift gnome-software gnome-software-plugin-flatpak gnome-software-plugin-snap software-properties-gtk fwupd bleachbit dconf-editor gimp gimp-data-extras evince xsane nano language-pack-de language-pack-en language-pack-fr language-pack-pt language-pack-it language-pack-gnome-de language-pack-gnome-es language-pack-gnome-fr language-pack-gnome-pt language-pack-gnome-it transmission-gtk thunderbird thunderbird-locale-pt-pt thunderbird-locale-pt-br thunderbird-locale-de thunderbird-locale-en thunderbird-locale-en-us thunderbird-locale-es libreoffice libreoffice-gtk libreoffice-gtk3 libreoffice-l10n-pt libreoffice-l10n-pt-br libreoffice-l10n-de libreoffice-l10n-en-gb libreoffice-l10n-es printer-driver-cups-pdf gnome-2048 gnome-chess gnome-mahjongg gnome-sudoku guvcview vlc qt5-style-plugins qt5ct gdebi f2fs-tools xfsprogs xfsdump tumbler tumbler-plugins-extra ffmpegthumbnailer linux-firmware xterm grub-pc spice-vdagent console-setup xdg-user-dirs-gtk " > $build/build/config/package-lists/packages.list.chroot echo "# Installer packages to install the system to disk. calamares calamares-settings-debian " > $build/build/config/package-lists/installer.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. b43-fwcutter bcmwl-kernel-source iucode-tool setserial user-setup efibootmgr grub-efi secureboot-db grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed shim shim-signed " > $build/build/config/package-lists/installer.list.binary # Setup the chroot structure mkdir -p $build/build/config/includes.binary mkdir -p $build/build/config/hooks/live mkdir -p $build/build/config/hooks/normal mkdir -p $build/build/config/bootloaders mkdir -p $build/build/config/packages.chroot mkdir -p $build/build/config/includes.chroot/etc mkdir -p $build/build/config/includes.chroot/usr/lib/live/config mkdir -p $build/build/config/includes.chroot/etc/live/config.conf.d mkdir -p $build/build/config/includes.chroot/usr/share/applications mkdir -p $build/build/config/includes.chroot/usr/share/backgrounds mkdir -p $build/build/config/includes.chroot/etc/calamares mkdir -p $build/build/config/includes.chroot/usr/share/icons mkdir -p $build/build/config/includes.chroot/usr/share/themes mkdir -p $build/build/config/includes.chroot/usr/sbin mkdir -p $build/build/config/includes.chroot/etc/lightdm mkdir -p $build/build/config/includes.chroot/usr/share/pixmaps mkdir -p $build/build/config/includes.chroot/usr/share/plymouth mkdir -p $build/build/config/includes.chroot/usr/share/desktop-base mkdir -p $build/build/config/includes.chroot/etc/default mkdir -p $build/build/config/includes.chroot/boot/grub/themes # Copy Configs to the chroot cp $build/userconfig/* $build/build/config/includes.chroot/etc/live/config.conf.d cp $build/applications/* $build/build/config/includes.chroot/usr/share/applications cp $build/hooks/live/* $build/build/config/includes.chroot/usr/lib/live/config cp $build/hooks/normal/* $build/build/config/hooks/normal cp $build/install-debian/* $build/build/config/includes.chroot/usr/share/pixmaps cp $build/sources-final/* $build/build/config/includes.chroot/usr/sbin cp $build/bootloader-config/* $build/build/config/includes.chroot/usr/sbin cp $build/grub/grub $build/build/config/includes.chroot/etc/default cp -r $build/lightdm/* $build/build/config/includes.chroot/etc/lightdm cp -r $build/bootloaders/* $build/build/config/includes.binary cp -r $build/backgrounds/* $build/build/config/includes.chroot/usr/share/backgrounds cp -r $build/calamares/* $build/build/config/includes.chroot/etc/calamares cp -r $build/configs/* $build/build/config/includes.chroot/etc/ cp -r $build/icons/* $build/build/config/includes.chroot/usr/share/icons cp -r $build/themes/* $build/build/config/includes.chroot/usr/share/themes #cp -r $build/packages/* $build/build/config/packages.chroot cp -r $build/grub/themes/* $build/build/config/includes.chroot/boot/grub/themes # Build the ISO # lb build #--debug --verbose