From 412189ca0d7eb516b872e742cc7dc32a18ba7545 Mon Sep 17 00:00:00 2001 From: manuel Date: Sun, 26 May 2024 17:34:18 +0000 Subject: [PATCH] emprove the iso building and some cleanup --- iso_configs/pylibraries/pepperpy/hooks.py | 2 +- python_modules/build_iso.py | 3 +- python_modules/conf.py | 1 + python_modules/infra.py | 131 +++++++++------------- 4 files changed, 55 insertions(+), 82 deletions(-) diff --git a/iso_configs/pylibraries/pepperpy/hooks.py b/iso_configs/pylibraries/pepperpy/hooks.py index c960ac86..0d3089c2 100644 --- a/iso_configs/pylibraries/pepperpy/hooks.py +++ b/iso_configs/pylibraries/pepperpy/hooks.py @@ -135,7 +135,7 @@ def setting_permissions(): os.system('chmod 755 /usr/share/applications/Welcome.desktop') os.system('chmod 755 /usr/share/applications/plank.desktop') os.system('chmod 755 /usr/share/applications/kumo.desktop') - os.system('chmod 755 /usr/share/applications/Install-peppermint.desktop') + os.system('chmod 755 /usr/share/applications/calamares-install-peppermint.desktop') # Executables os.system('chmod 755 /usr/local/bin/xDaily') os.system('chmod 755 /usr/local/bin/kumo') diff --git a/python_modules/build_iso.py b/python_modules/build_iso.py index 3e38fbba..d0fd5f74 100644 --- a/python_modules/build_iso.py +++ b/python_modules/build_iso.py @@ -69,10 +69,9 @@ class BuildBase: def infra_helper(self): """ Get the build infrastucture ready """ - infra_methods = [infra.ChrootFolders, infra.BinaryFolders, + infra_methods = [infra.BinaryFolders, infra.ChrootInstallerFiles, infra.ArchitectureFiles, infra.Archive, infra.InstallerFiles, infra.FusatoConfigs, - infra.ChrootInstallerFiles, ] for method in infra_methods: method(self.sbase, self.sarch) diff --git a/python_modules/conf.py b/python_modules/conf.py index 63275167..8b59c13f 100644 --- a/python_modules/conf.py +++ b/python_modules/conf.py @@ -326,6 +326,7 @@ LIGHT_DM_LIST = ('lightdm\n' GENERAL_SHARED_LIST = ('alsa-utils\n' 'bluez\n' 'calamares\n' + 'calamares-settings-debian\n' 'console-setup\n' 'cups\n' 'curl\n' diff --git a/python_modules/infra.py b/python_modules/infra.py index 771152e2..2e81e587 100644 --- a/python_modules/infra.py +++ b/python_modules/infra.py @@ -56,48 +56,6 @@ class Archive: ) logger.info(MSG_FIN + HOME_FOLDER + FUSATOCONFIG + des) - -class ChrootFolders: - """ - Copy all the needed folders to CHROOT Depending on - the architecture it will, copy folders as needed - """ - # It would be better to move the calamares and /opt/pepconf files - # to a def or other solution since they are not necessary in server - # builds. - # Mini builds are not affected because the chroot is deleted in the - # binary phase. - def __init__(self,sbase,sarch): - logger.info("Copy Chroot") - self.sbase = sbase - self.sarch = sarch - src_chroot = ('/osrelease/' + self.sbase + self.sarch, - '/osrelease/' + self.sbase + self.sarch, - '/grub/'+ self.sbase + self.sarch, - #'/calamares_settings/' + self.sbase + self.sarch + - #'/calamares/modules', - '/grub/' + self.sbase + '_themes' - ) - des_chroot =('/usr/lib', - '/opt/pepconf', - '/etc/default', - #'/etc/calamares/modules', - '/boot/grub/themes' - ) - # Chroot Folders. - chroot_src_q = collections.deque(src_chroot) - chroot_des_q = collections.deque(des_chroot) - chroot_size_q = len(chroot_src_q) - for size_length in range(chroot_size_q): - source = chroot_src_q.popleft() - des = chroot_des_q.popleft() - logger.info(MSG_COPY + HOME_FOLDER + source) - shutil.copytree(HOME_FOLDER + source, - HOME_FOLDER + WPCHROOT + des, - dirs_exist_ok = True - ) - logger.info(MSG_FIN + HOME_FOLDER + WPCHROOT + des) - class ChrootInstallerFiles: """ Copies all installer folders to CHROOT depending on the base. @@ -301,25 +259,35 @@ def mini_shared_installer_files(): src_paths = ('/installer/keyrings/', '/installer/applications/', - '/database/', + #'/database/', '/PepProPixMaps/', '/pmostools/', '/PepProTools/', '/polkit/', '/issue/', - '/pylibraries/', + '/pylibraries/requests/', + '/pylibraries/tendo/', + '/pylibraries/tendo-0.3.0.dist-info/', + '/pylibraries/ttkbootstrap/', + '/pylibraries/ttkbootstrap-1.10.1.dist-info/', + '/pylibraries/ttkcreator/', '/lightdm/', '/autostart' ) des_paths =('/preseed/keyrings/', '/preseed/apps/', - '/preseed/database/', + #'/preseed/database/', '/preseed/pixmaps/', '/preseed/tools/', '/preseed/protools/', '/preseed/polkit/', '/preseed/conf/', - '/preseed/py/', + '/preseed/py/requests/', + '/preseed/py/tendo/', + '/preseed/py/tendo-0.3.0.dist-info/', + '/preseed/py/ttkbootstrap/', + '/preseed/py/ttkbootstrap-1.10.1.dist-info/', + '/preseed/py/ttkcreator/', '/preseed/lightdm/', '/preseed/autostart/' ) @@ -343,53 +311,57 @@ def mini_shared_installer_files(): class ArchitectureFiles: """ - Copy all the needed files to CHROOT Depending on the - architecture it will, copy files as needed + Copy all the needed files and folders to CHROOT. Depending on the + architecture, it will copy files and folders as needed. """ - def __init__(self, sbase, sarch): + def __init__(self, sbase, sarch, force_copy=False): + self.force_copy = force_copy logger.info("Copy Architecture") - self.sbase = sbase self.sarch = sarch - calamares_path = '/calamares_settings/' sources_path = '/sources/' - src_paths = (#calamares_path + self.sbase + self.sarch + # All of the calamares files are copied in the ChrootInstallerFiles class maybe this shold be deleted - #'/calamares/settings.conf', - #calamares_path + self.sbase + self.sarch + - #'/install-peppermint', - #calamares_path + self.sbase + self.sarch + - #'/sources-final', - #calamares_path + self.sbase + self.sarch + - #'/bootloader-config', - #calamares_path + - #'adddesktopicon/add-calamares-desktop-icon', - sources_path + self.sbase + self.sarch + + src_paths = (sources_path + self.sbase + self.sarch + '/sources.list', - '/id_files/pep_id' - ) - des_paths = (#'/etc/calamares/settings.conf', - #'/usr/bin/install-peppermint', - #'/usr/sbin/sources-final', - #'/usr/sbin/bootloader-config', - #'/usr/bin/add-calamares-desktop-icon', - '/opt/pepconf/sources.list', - '/usr/share/peppermint/pep_id' - ) - # copy files to thier CHROOT Location + '/id_files/pep_id', + '/osrelease/' + self.sbase + self.sarch, + '/osrelease/' + self.sbase + self.sarch, + '/grub/'+ self.sbase + self.sarch, + '/grub/' + self.sbase + '_themes' + ) + des_paths = ('/opt/pepconf/sources.list', + '/usr/share/peppermint/pep_id', + '/usr/lib', + '/opt/pepconf', + '/boot/grub', + '/boot/grub/themes' + ) + + # copy files and folders to their CHROOT Location src_q = collections.deque(src_paths) des_q = collections.deque(des_paths) size_q = len(src_q) for size_length in range(size_q): source = src_q.popleft() des = des_q.popleft() - logger.info(MSG_COPY+ HOME_FOLDER + source) - shutil.copy(HOME_FOLDER + source, - HOME_FOLDER + WPCHROOT + des - ) - logger.info(MSG_FIN + HOME_FOLDER + WPCHROOT + des) + src_path = HOME_FOLDER + source + des_path = HOME_FOLDER + WPCHROOT + des + if os.path.exists(des_path) and not self.force_copy: + logger.info(f"Skipping {src_path} as it already exists at {des_path}") + continue + + logger.info(f"Copying {src_path} to {des_path}") + try: + if os.path.isdir(src_path): + shutil.copytree(src_path, des_path, ignore_dangling_symlinks=True) + else: + shutil.copy2(src_path, des_path) + except Exception as e: + logger.error(f"Error copying {src_path} to {des_path}: {e}") + else: + logger.info(f"Successfully copied {src_path} to {des_path}") def set_symlinks(): """ @@ -546,7 +518,8 @@ def shared_files(): '/lightdm/lightdm-gtk-greeter.conf', '/plymouth/plymouthd.conf', #'/packages/deb-multimedia-keyring_2016.8.1_all.deb', - #'/repo_public_key/trusted.gpg', +# '/repo_public_key/trusted.gpg', + ) des_paths = ('/etc/skel/.bash_aliases', '/etc/apt/sources.list.d',