diff --git a/Lxqt-arm64/BldHelper.sh b/Lxqt-arm64/BldHelper.sh new file mode 100644 index 0000000..f08a392 --- /dev/null +++ b/Lxqt-arm64/BldHelper.sh @@ -0,0 +1,52 @@ + #!/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-lxqt +SUFFIX=amd64 +BUILD=lxqt +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/Lxqt + +# Execute the ISO building script +cd ${WorkingDir} +./build.sh + +# 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/${PREFIX}${SUFFIX}.out ]; then + mv /tmp/${PREFIX}${SUFFIX}.out ${LogDir}/${PREFIX}-${SUFFIX}-${BUILD}.log +fi + +# Clean the build folder +lb clean + +# Remove the "build" directory and its contents +cd .. +rm -rf build + diff --git a/Lxqt-arm64/acorhooks/0030-user-setup b/Lxqt-arm64/acorhooks/0030-user-setup new file mode 100644 index 0000000..141ab32 --- /dev/null +++ b/Lxqt-arm64/acorhooks/0030-user-setup @@ -0,0 +1,101 @@ +#!/bin/sh + +. /lib/live/config.sh + +## live-config(7) - System Configuration Components +## Copyright (C) 2016-2020 The Debian Live team +## Copyright (C) 2006-2015 Daniel Baumann +## +## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +## This is free software, and you are welcome to redistribute it +## under certain conditions; see COPYING for details. + + +#set -e + +Cmdline () +{ + # Reading kernel command line + for _PARAMETER in ${LIVE_CONFIG_CMDLINE} + do + case "${_PARAMETER}" in + live-config.user-default-groups=*|user-default-groups=*) + LIVE_USER_DEFAULT_GROUPS="${_PARAMETER#*user-default-groups=}" + ;; + + live-config.user-fullname=*|user-fullname=*) + LIVE_USER_FULLNAME="${_PARAMETER#*user-fullname=}" + ;; + + live-config.username=*|username=*) + LIVE_USERNAME="${_PARAMETER#*username=}" + ;; + esac + done +} + +Init () +{ + # Checking if package is installed or already configured + if ! pkg_is_installed "user-setup" || \ + component_was_executed "user-setup" + then + exit 0 + fi + + echo -n " user-setup" +} + +Config () +{ + # Checking if package is already configured differently + if grep -q "^${LIVE_USERNAME}:" /etc/passwd + then + exit 0 + fi + + # Adjust formating of groups + if [ -n "${LIVE_USER_DEFAULT_GROUPS}" ] + then + LIVE_USER_DEFAULT_GROUPS="$(echo ${LIVE_USER_DEFAULT_GROUPS} | sed -e 's|,| |g')" + fi + + # Make sure user is not in sudo group if sudo is disabled + case "${LIVE_CONFIG_NOROOT}" in + true) + LIVE_USER_DEFAULT_GROUPS="$(echo ${LIVE_USER_DEFAULT_GROUPS} | sed -e 's|sudo||')" + ;; + esac + + # Default password is: live + # passwords can be generated with 'echo "live" | mkpasswd -s', + # a blank password is 'U6aMy0wojraho'. +# _PASSWORD="8Ab05sVQ4LLps" + _PASSWORD="U6aMy0wojraho" + +cat > /tmp/live-config.cfg << EOF +user-setup passwd/make-user boolean true +user-setup passwd/root-password-crypted string * +user-setup passwd/user-password-crypted string ${_PASSWORD} +user-setup passwd/user-default-groups string ${LIVE_USER_DEFAULT_GROUPS} +user-setup passwd/user-fullname string ${LIVE_USER_FULLNAME} +user-setup passwd/username string ${LIVE_USERNAME} +user-setup passwd/user-uid string 1000 +EOF + + debconf-set-selections < /tmp/live-config.cfg + rm -f /tmp/live-config.cfg + + # Workaround for bug in shadow + set +e + /usr/lib/user-setup/user-setup-apply 2>&1 \ + | grep -v "Shadow passwords are now on" + set -e + + # Creating state file + touch /var/lib/live/config/user-setup +} + +Cmdline +Init +Config diff --git a/Lxqt-arm64/acorhooks/0520-applications.hook.chroot b/Lxqt-arm64/acorhooks/0520-applications.hook.chroot new file mode 100644 index 0000000..b8d7f63 --- /dev/null +++ b/Lxqt-arm64/acorhooks/0520-applications.hook.chroot @@ -0,0 +1,36 @@ +#!/bin/bash + +### Error checking added to "lint-trap" section. +### Missing files no longer cause builds to fail. + +# Remove software +# apt remove -y firefox-esr +# apt remove -y termit +apt --purge --yes autoremove vim vim-tiny nautilus hv3 mpv murrine-themes smplayer deluge picom gnome-calculator konsole malcontent termit raspi-firmware smtube audacious nvidia* + +# Remove /boot/firmware folder +rm -r /boot/firmware + +## This section is the "lint-trap" to remove files and/or +## directories not associated with or required by AcorOS. +## Followed by \ , add files to be removed, one per line. + +for i in \ +/usr/share/applications/kdesystemsettings.desktop \ +/usr/share/applications/systemsettings.desktop \ + + do [ -e $i ] && + rm -rf ${i} || + echo " The path ${i} was not found and couldn't be removed." + done + + +# Lowers the footprint in RAM at the small expense of added size to the ISO. +#update-icon-caches /usr/share/icons/* +find /usr/share/icons -type d -exec gtk-update-icon-cache -f {} \; + +#add flatpak repo to gnome-software +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + +#add-architecture i386 +dpkg --add-architecture i386 diff --git a/Lxqt-arm64/acorhooks/0600-snap-show-menu-fix.hook.chroot b/Lxqt-arm64/acorhooks/0600-snap-show-menu-fix.hook.chroot new file mode 100644 index 0000000..81056ad --- /dev/null +++ b/Lxqt-arm64/acorhooks/0600-snap-show-menu-fix.hook.chroot @@ -0,0 +1,11 @@ +#!/bin/bash + +# Workaround for using snapd on debian. Thank You - @stevesveryown and peppermint team.. +[ ! -e /etc/skel/.local/share ] && mkdir -p /etc/skel/.local/share +[ ! -e /var/lib/snapd/desktop/applications ] && +mkdir -p /var/lib/snapd/desktop/applications && +chmod 777 /var/lib/snapd/desktop/applications +ln -s /var/lib/snapd/desktop/applications /etc/skel/.local/share/applications +ln -s snap /usr/bin/snap-store + + diff --git a/Lxqt-arm64/acorhooks/6050-rename-kernel.hook.binary b/Lxqt-arm64/acorhooks/6050-rename-kernel.hook.binary new file mode 100644 index 0000000..f3e592a --- /dev/null +++ b/Lxqt-arm64/acorhooks/6050-rename-kernel.hook.binary @@ -0,0 +1,7 @@ +#!/bin/bash +#John's note: this will not harm the other architectures. +rm live/initrd.img +rm live/vmlinuz + +cp live/initrd.img-* live/initrd.img +cp live/vmlinuz-* live/vmlinuz \ No newline at end of file diff --git a/Lxqt-arm64/build.sh b/Lxqt-arm64/build.sh new file mode 100644 index 0000000..0fe41ed --- /dev/null +++ b/Lxqt-arm64/build.sh @@ -0,0 +1,241 @@ +#!/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 \ + --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 \ + --bootstrap-qemu-static /usr/sbin/qemu-debootstrap \ + --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 Lxqt Desktop +mkdir -p $acorbuild/build/config/package-lists +echo lxqt > $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 +lxqt-archiver +lxqt-archiver-l10n +locales +nala +dbus-x11 +ntp +acoros-keyring +xorg +xserver-xorg +xserver-xorg-input-synaptics +xserver-xorg-input-all +xserver-xorg-video-all +pulseaudio +pavucontrol-qt +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-kde +qt5-style-kvantum +qt5-style-kvantum-l10n +qt5-style-kvantum-themes +materia-gtk-theme +tela-icon-theme +tela-circle-icon-theme +teja-gtk-theme +gtk2-engines-aurora +gtk2-engines +acoros-backgrounds +plymouth +plymouth-themes +cups +system-config-printer +lightdm +lightdm-gtk-greeter +lightdm-gtk-greeter-settings +dbus-tests +xscreensaver +xscreensaver-data +xscreensaver-data-extra +xscreensaver-gl +xscreensaver-gl-extra +gnome-system-tools +gnome-disk-utility +gnome-calculator +neofetch +accountsservice +timeshift +gnome-software +gnome-software-plugin-flatpak +gnome-software-plugin-snap +fwupd +bleachbit +dconf-editor +gimp +gimp-data-extras +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 +xfburn +calamares-settings-debian +calamares +gdebi +f2fs-tools +xfsprogs +xfsdump +xterm +xsettingsd +console-setup +spice-vdagent + +" > $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/live +mkdir -p $acorbuild/build/config/hooks/normal +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/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 $acorbuild/acorinstaller/bootloader-config-arm64 $acorbuild/build/config/includes.chroot/usr/sbin/bootloader-config +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/acorconfigs/.face $acorbuild/build/config/includes.chroot/etc/skel +cp $acorbuild/acorconfigs/.gtkrc-2.0 $acorbuild/build/config/includes.chroot/etc/skel +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/lxqt/* $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 + + diff --git a/acorinstaller/bootloader-config-arm64 b/acorinstaller/bootloader-config-arm64 new file mode 100644 index 0000000..f34f377 --- /dev/null +++ b/acorinstaller/bootloader-config-arm64 @@ -0,0 +1,21 @@ +#!/bin/bash + +CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g") + +# Set secure permissions for the initramfs if we're configuring +# full-disk-encryption. The initramfs is re-generated later in the +# installation process so we only set the permissions snippet without +# regenerating the initramfs right now: +if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then + echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions +fi + +echo "Running bootloader-config..." + +if [ -d /sys/firmware/efi/efivars ]; then + echo " * Installing grub-efi (uefi)..." + DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-arm64 cryptsetup keyutils +else + echo " * install grub... (bios)" + DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc cryptsetup keyutils +fi