diff --git a/lib/util-iso.sh b/lib/util-iso.sh index 13f5367..4551325 100644 --- a/lib/util-iso.sh +++ b/lib/util-iso.sh @@ -14,7 +14,7 @@ # $2: target image copy_userconfig(){ msg2 "Copying $1/etc/skel/. $2/etc/skel" - cp -a $1/etc/skel/. $2/etc/skel + cp -a --no-preserve=ownership $1/etc/skel/. $2/etc/skel } copy_initcpio(){ @@ -25,17 +25,17 @@ copy_initcpio(){ copy_overlay(){ msg2 "Copying overlay to $1" - cp -a overlay/* $1 + cp -a --no-preserve=ownership overlay/* $1 } copy_overlay_desktop(){ msg2 "Copying ${desktop}-overlay to ${work_dir}/${desktop}-image" - cp -a ${desktop}-overlay/* ${work_dir}/${desktop}-image + cp -a --no-preserve=ownership ${desktop}-overlay/* ${work_dir}/${desktop}-image } copy_overlay_livecd(){ msg2 "Copying overlay-livecd to $1 ..." - cp -a overlay-livecd/* $1 + cp -a --no-preserve=ownership overlay-livecd/* $1 } copy_livecd_helpers(){ @@ -189,10 +189,11 @@ make_efiboot() { make_isolinux() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then msg "Prepare ${install_dir}/iso/isolinux" - cp -Lr isolinux ${work_dir}/iso + mkdir -p ${work_dir}/iso/isolinux + cp -a --no-preserve=ownership isolinux/* ${work_dir}/iso/isolinux if [[ -e isolinux-overlay ]]; then msg2 "isolinux overlay found. Overwriting files." - cp -a isolinux-overlay/* ${work_dir}/iso/isolinux + cp -a --no-preserve=ownership isolinux-overlay/* ${work_dir}/iso/isolinux fi if [[ -e ${work_dir}/root-image/usr/lib/syslinux/bios/ ]]; then cp ${work_dir}/root-image/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ @@ -430,7 +431,7 @@ make_free_overlay(){ msg "Done pkgs-free-overlay" } -make_non_fee_overlay(){ +make_non_free_overlay(){ msg "Prepare pkgs-nonfree-overlay" mkdir -p ${work_dir}/pkgs-nonfree-overlay @@ -485,13 +486,15 @@ make_overlay_image() { configure_user "${work_dir}/overlay-image" - configue_displaymanager "${work_dir}/overlay-image" + configure_displaymanager "${work_dir}/overlay-image" - configue_accountsservice "${work_dir}/overlay-image" + configure_accountsservice "${work_dir}/overlay-image" configure_plymouth "${work_dir}/overlay-image" - configue_hostname "${work_dir}/overlay-image" + configure_hostname "${work_dir}/overlay-image" + + configure_calamares "${work_dir}/overlay-image" ${auto_svc_conf} && configure_services "${work_dir}/overlay-image" @@ -566,7 +569,7 @@ make_pkgs_image() { if ${xorg_overlays}; then make_free_overlay - make_non_fee_overlay + make_non_free_overlay fi : > ${work_dir}/build.${FUNCNAME} msg "Done pkgs-image" diff --git a/lib/util-livecd.sh b/lib/util-livecd.sh index 8308e5b..9300b32 100644 --- a/lib/util-livecd.sh +++ b/lib/util-livecd.sh @@ -18,7 +18,7 @@ configure_user(){ } # $1: chroot -configue_hostname(){ +configure_hostname(){ msg2 "Setting hostname ${hostname} ..." if [[ -f $1/usr/bin/openrc ]];then local _hostname='hostname="'${hostname}'"' @@ -61,7 +61,7 @@ configure_services(){ } # $1: chroot -configue_displaymanager(){ +configure_displaymanager(){ local _dm msg2 "Configuring Displaymanager ..." # do_setuplightdm @@ -250,7 +250,7 @@ configue_displaymanager(){ } # $1: chroot -configue_accountsservice(){ +configure_accountsservice(){ msg2 "Configuring AcooutsService ..." if [ -d "$1/var/lib/AccountsService/users" ] ; then echo "[User]" > $1/var/lib/AccountsService/users/${username} @@ -278,3 +278,53 @@ configue_accountsservice(){ echo "Icon=/var/lib/AccountsService/icons/${username}.png" >> $1/var/lib/AccountsService/users/${username} fi } + +# $1: chroot +configue_calamares(){ + msg2 "Configuring Calamares ..." + mkdir -p ${work_dir}/overlay/etc/calamares/modules + local UNPACKFS="$1/overlay/etc/calamares/modules/unpackfs.conf" + if [ ! -e $UNPACKFS ] ; then + echo "---" > "$UNPACKFS" + echo "unpack:" >> "$UNPACKFS" + echo " - source: \"/bootmnt/${install_dir}/${arch}/root-image.sqfs\"" >> "$UNPACKFS" + echo " sourcefs: \"squashfs\"" >> "$UNPACKFS" + echo " destination: \"\"" >> "$UNPACKFS" + echo " - source: \"/bootmnt/${install_dir}/${arch}/${desktop}-image.sqfs\"" >> "$UNPACKFS" + echo " sourcefs: \"squashfs\"" >> "$UNPACKFS" + echo " destination: \"\"" >> "$UNPACKFS" + fi + local DISPLAYMANAGER="$1/overlay/etc/calamares/modules/displaymanager.conf" + # TODO maybe add a configuration flag in manjaro-tools.conf for default displymanager + if [ ! -e $DISPLAYMANAGER ] ; then + echo "---" > "$DISPLAYMANAGER" + echo "displaymanagers:" >> "$DISPLAYMANAGER" + if [ -e "${work_dir}/${desktop}-image/usr/bin/lightdm" ] ; then + echo " - lightdm" >> "$DISPLAYMANAGER" + fi + if [ -e "${work_dir}/${desktop}-image/usr/share/config/kdm/kdmrc" ] ; then + echo " - kdm" >> "$DISPLAYMANAGER" + fi + if [ -e "${work_dir}/${desktop}-image/usr/bin/gdm" ] ; then + echo " - gdm" >> "$DISPLAYMANAGER" + fi + if [ -e "${work_dir}/${desktop}-image/usr/bin/mdm" ] ; then + echo " - mdm" >> "$DISPLAYMANAGER" + fi + if [ -e "${work_dir}/${desktop}-image/usr/bin/sddm" ] ; then + echo " - sddm" >> "$DISPLAYMANAGER" + fi + if [ -e "${work_dir}/${desktop}-image/usr/bin/lxdm" ] ; then + echo " - lxdm" >> "$DISPLAYMANAGER" + fi + if [ -e "${work_dir}/${desktop}-image/usr/bin/slim" ] ; then + echo " - slim" >> "$DISPLAYMANAGER" + fi + fi + local INITCPIO="$1/overlay/etc/calamares/modules/initcpio.conf" + if [ ! -e $INITCPIO ] ; then + echo "---" > "$INITCPIO" + echo "kernel: ${manjaro_kernel}" >> "$INITCPIO" + fi +} +