From b50ece65609aab0425e6100d974c4299ab2da842 Mon Sep 17 00:00:00 2001 From: MrReplikant Date: Sat, 17 Aug 2024 01:09:10 +0000 Subject: [PATCH] Added build scripts for arm64 xfce Manuel, I just wanted to make a good faith attempt to at least finish what was started, as far as arm64 work goes. All it needs are symlinks to the arm64-specific bits in the lxqt-arm64 directory, and the symlinks used for the other two xfce builders. All other changes have been straightened out in the scripts. If you can do that, I can test them and let you know if they work... --- Xfce-ARM64/BldHelper.sh | 53 +++++++++ Xfce-ARM64/build.sh | 242 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 295 insertions(+) create mode 100644 Xfce-ARM64/BldHelper.sh create mode 100644 Xfce-ARM64/build.sh diff --git a/Xfce-ARM64/BldHelper.sh b/Xfce-ARM64/BldHelper.sh new file mode 100644 index 0000000..6ffcb6c --- /dev/null +++ b/Xfce-ARM64/BldHelper.sh @@ -0,0 +1,53 @@ + #!/bin/bash + +################################################################################ +# Title: Bldhelper.sh +# Description: Script to build AçorOS ISO image +# Author: PeppermintOS Team +# Date: May 10, 2023 +# License: GPL-3.0-or-later +################################################################################ + +# Set environment variables +PREFIX=AcorOS-xfce +SUFFIX=amd64 +BUILD=xfce +TODAY=$(date -u +"%Y-%m-%d") +FileName="${PREFIX}-${SUFFIX}" +LOCATION=/var/www/html/nightly/AcorOS/${BUILD} +LogDir=/var/log/Live-Build +WorkingDir=/home/pepadmin/Build-configs/Xfce + +# Execute the ISO building script +cd ${WorkingDir} +./build.sh 2>&1 | tee /tmp/build_log.txt + +# Move and rename the ISO file +cd build +mv *.iso ${FileName}-${TODAY}.iso + +# Create the checksum file for the ISO +sha512sum ${FileName}-${TODAY}.iso > ${FileName}-${TODAY}-sha512.checksum + +# Remove old ISO and checksum files from the desired location +rm -f ${LOCATION}/${FileName}*.iso +rm -f ${LOCATION}/${FileName}*-sha512.checksum + +# Move the ISO and checksum files to the desired location +mkdir -p ${LOCATION} +mv ${FileName}-${TODAY}.iso ${LOCATION} +mv ${FileName}-${TODAY}-sha512.checksum ${LOCATION} + +# Move the log file to the log directory (if it exists) +if [ -f /tmp/build_log.txt ]; then + LogFileName="${PREFIX}-${SUFFIX}-${BUILD}.log" + mv /tmp/build_log.txt ${LogDir}/${LogFileName} +fi + +# Clean the build folder +lb clean + +# Remove the "build" directory and its contents +cd .. +rm -rf build + diff --git a/Xfce-ARM64/build.sh b/Xfce-ARM64/build.sh new file mode 100644 index 0000000..7cd7098 --- /dev/null +++ b/Xfce-ARM64/build.sh @@ -0,0 +1,242 @@ +#!/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 \ + --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 + +