#!/bin/bash PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH" # Set the working folder variable build32="$(pwd)" # Create the build32 folder, move into it removing stale mountpoints and files there. [ -e build32 ] && [ ! -d build32 ] && rm -f build32 || [ ! -e build32 ] && mkdir build32 cd build32 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/build32/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 i386 \ --linux-flavours 686 \ --distribution chimaera \ --archive-areas "main contrib non-free" \ --initsystem sysvinit \ --mirror-bootstrap http://deb.devuan.org/merged \ --mirror-chroot http://deb.devuan.org/merged \ --mirror-chroot-security http://deb.devuan.org/merged \ --parent-mirror-bootstrap http://deb.devuan.org/merged \ --parent-mirror-binary http://deb.devuan.org/merged \ --parent-mirror-binary-security http://deb.devuan.org/merged \ --parent-mirror-chroot http://deb.devuan.org/merged \ --parent-mirror-chroot-security http://deb.devuan.org/merged \ --uefi-secure-boot enable \ --updates true \ --security true \ --backports false \ --cache true \ --apt-recommends true \ --firmware-binary true \ --firmware-chroot true \ --iso-application "My-distro" \ --win32-loader false \ --iso-volume "My-distro-i386_${TODAY}" \ --iso-publisher "Manuel rosa" \ --image-name "My-distro" \ --win32-loader false \ --checksums sha512 \ --zsync false \ "${@}" # Install the Xfce Desktop mkdir -p $build32/build32/config/package-lists echo xfce4 xfce4-goodies > $build32/build32/config/package-lists/desktop.list.chroot # Install software echo "# Install software to the squashfs for calamares to unpack to the OS. linux-headers-686 locales dkms dbus-x11 ntp deb-multimedia-keyring xorg xserver-xorg xserver-xorg-input-synaptics xserver-xorg-input-all xserver-xorg-video-vmware xserver-xorg-video-all w32codecs 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 gnome-packagekit gvfs-backends samba gnome-packagekit network-manager network-manager-gnome bluez blueman gufw gtk2-engines 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 fuseiso timeshift gnome-software gnome-software-plugin-flatpak 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-esr firefox-esr-l10n-de firefox-esr-l10n-en-gb firefox-esr-l10n-es-es firefox-esr-l10n-it firefox-esr-l10n-pt-br firefox-esr-l10n-pt-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-debian 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 tumbler tumbler-plugins-extra ffmpegthumbnailer xterm grub-pc " > $build32/build32/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 grub2-common grub-efi-ia32 grub-efi-ia32-bin grub-efi-ia32-signed libefiboot1 libefivar1 mokutil os-prober shim-helpers-i386-signed shim-signed shim-signed-common shim-unsigned " > $build32/build32/config/package-lists/installer.list.binary # Setup the chroot structure mkdir -p $build32/build32/config/archives mkdir -p $build32/build32/config/includes.binary mkdir -p $build32/build32/config/hooks/live mkdir -p $build32/build32/config/hooks/normal mkdir -p $build32/build32/config/bootloaders mkdir -p $build32/build32/config/packages.chroot mkdir -p $build32/build32/config/includes.chroot/etc mkdir -p $build32/build32/config/includes.chroot/usr/share/applications mkdir -p $build32/build32/config/includes.chroot/usr/share/backgrounds mkdir -p $build32/build32/config/includes.chroot/etc/calamares mkdir -p $build32/build32/config/includes.chroot/usr/share/icons mkdir -p $build32/build32/config/includes.chroot/usr/share/themes mkdir -p $build32/build32/config/includes.chroot/etc/live/config.conf.d mkdir -p $build32/build32/config/includes.chroot/etc/dpkg/origins mkdir -p $build32/build32/config/includes.chroot/usr/sbin mkdir -p $build32/build32/config/includes.chroot/etc/lightdm mkdir -p $build32/build32/config/includes.chroot/usr/share/pixmaps mkdir -p $build32/build32/config/includes.chroot/usr/share/plymouth mkdir -p $build32/build32/config/includes.chroot/usr/share/desktop-base mkdir -p $build32/build32/config/includes.chroot/etc/skel/Desktop mkdir -p $build32/build32/config/includes.chroot/etc/default # Copy Configs to the chroot cp $build32/userconfig/* $build32/build32/config/includes.chroot/etc/live/config.conf.d cp $build32/applications/* $build32/build32/config/includes.chroot/usr/share/applications cp $build32/hooks/live/* $build32/build32/config/hooks/live cp $build32/hooks/normal/* $build32/build32/config/hooks/normal cp $build32/install-debian/* $build32/build32/config/includes.chroot/usr/share/pixmaps cp $build32/sources-final/* $build32/build32/config/includes.chroot/usr/sbin cp $build32/bootloader-config-32bit/* $build32/build32/config/includes.chroot/usr/sbin cp $build32/grub/* $build32/build32/config/includes.chroot/etc/default cp -r $build32/lightdm/* $build32/build32/config/includes.chroot/etc/lightdm cp -r $build32/bootloaders/* $build32/build32/config/bootloaders cp -r $build32/repos/* $build32/build32/config/archives cp -r $build32/backgrounds/* $build32/build32/config/includes.chroot/usr/share/backgrounds cp -r $build32/calamares/* $build32/build32/config/includes.chroot/etc/calamares cp -r $build32/configs/* $build32/build32/config/includes.chroot/etc/ cp -r $build32/icons/* $build32/build32/config/includes.chroot/usr/share/icons cp -r $build32/themes/* $build32/build32/config/includes.chroot/usr/share/themes cp -r $build32/desktop-base/* $build32/build32/config/includes.chroot/usr/share/desktop-base cp -r $build32/plymouth/* $build32/build32/config/includes.chroot/usr/share/plymouth cp -r $build32/packages32/* $build32/build32/config/packages.chroot # Resolves Synaptics issue. Might be better in a conf hook. mkdir -p $build32/build32/config/includes.chroot/usr/share/distro-info mkdir -p $build32/build32/config/includes.chroot/usr/share/python-apt/templates cp -r $build32/devuan/* $build32/build32/config/includes.chroot/usr/share/python-apt/templates ln -s Devuan.info $build32/build32/config/includes.chroot/usr/share/python-apt/templates/My-distro.info ln -s Devuan.mirrors $build32/build32/config/includes.chroot/usr/share/python-apt/templates/My-distro.mirrors ln -s devuan.csv $build32/build32/config/includes.chroot/usr/share/distro-info/my-distro.csv # build32 the ISO # lb build32 #--debug --verbose