diff --git a/usr/share/archlinux-kernel-manager/libs/functions.py b/usr/share/archlinux-kernel-manager/libs/functions.py index 772ff86..064e9e7 100644 --- a/usr/share/archlinux-kernel-manager/libs/functions.py +++ b/usr/share/archlinux-kernel-manager/libs/functions.py @@ -450,7 +450,8 @@ def install_archive_kernel(self): wait_for_pacman_process() - logger.info("Running %s" % install_cmd_str) + if logger.getEffectiveLevel() == 10: + logger.debug("Running %s" % install_cmd_str) event = "%s [INFO]: Running %s\n" % ( datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S"), @@ -550,8 +551,11 @@ def install_archive_kernel(self): def refresh_cache(self): + + cached_kernels_list.clear() if os.path.exists(cache_file): os.remove(cache_file) + get_official_kernels(self) write_cache() @@ -559,6 +563,7 @@ def refresh_cache(self): def read_cache(self): try: self.timestamp = None + with open(cache_file, "rb") as f: data = tomlkit.load(f) @@ -762,7 +767,11 @@ def get_response(session, linux_kernel, response_queue, response_content): ) if response.status_code == 200: - logger.debug("Response is 200") + if logger.getEffectiveLevel() == 10: + logger.debug( + "Response code for %s/packages/l/%s = 200 (OK)" + % (archlinux_mirror_archive_url, linux_kernel) + ) if response.text is not None: response_content[linux_kernel] = response.text response_queue.put(response_content) @@ -805,6 +814,8 @@ def get_official_kernels(self): write_cache() read_cache(self) + # self.queue_kernels = Queue() + self.queue_kernels.put(cached_kernels_list) else: @@ -846,7 +857,10 @@ def is_thread_alive(thread_name): # print all threads def print_all_threads(): for thread in threading.enumerate(): - logger.info("Thread = %s and state is %s" % (thread.name, thread.is_alive())) + if logger.getEffectiveLevel() == 10: + logger.debug( + "Thread = %s and state is %s" % (thread.name, thread.is_alive()) + ) # ===================================================== @@ -900,7 +914,9 @@ def check_kernel_installed(name): try: logger.info("Checking kernel package %s is installed" % name) check_cmd_str = ["pacman", "-Q", name] - logger.debug("Running cmd = %s" % check_cmd_str) + if logger.getEffectiveLevel() == 10: + logger.debug("Running cmd = %s" % check_cmd_str) + process_kernel_query = subprocess.Popen( check_cmd_str, shell=False, @@ -983,8 +999,6 @@ def uninstall(self): wait_for_pacman_process() - logger.info("Running %s" % uninstall_cmd_str) - event = "%s [INFO]: Running %s\n" % ( datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S"), " ".join(uninstall_cmd_str), @@ -1180,8 +1194,8 @@ def install_community_kernel(self): "--noconfirm", "--needed", ] - - logger.info("Running %s" % install_cmd_str) + if logger.getEffectiveLevel() == 10: + logger.debug("Running %s" % install_cmd_str) event = "%s [INFO]: Running %s\n" % ( datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S"), @@ -1479,6 +1493,9 @@ def sync_package_db(): out, err = process.communicate(timeout=600) + if logger.getEffectiveLevel() == 10: + print(out.decode("utf-8")) + if process.returncode == 0: return None else: @@ -1492,7 +1509,9 @@ def get_boot_loader(): try: logger.info("Getting bootloader") cmd = ["bootctl", "status"] - logger.debug("Running %s" % " ".join(cmd)) + if logger.getEffectiveLevel() == 10: + logger.debug("Running %s" % " ".join(cmd)) + process = subprocess.run( cmd, shell=False, @@ -1550,7 +1569,9 @@ def get_kernel_modules_version(kernel, db): # pacman_kernel_version = None kernel_modules_path = None try: - logger.debug("Running %s" % " ".join(cmd)) + if logger.getEffectiveLevel() == 10: + logger.debug("Running %s" % " ".join(cmd)) + process = subprocess.run( cmd, shell=False, @@ -1581,13 +1602,15 @@ def get_kernel_modules_version(kernel, db): return None except Exception as e: - logger.error("Exception in get_kernel_version(): %s" % e) + logger.error("Exception in get_kernel_modules_version(): %s" % e) def run_process(self): error = False self.stdout_lines = [] - logger.debug("Running process = %s" % " ".join(self.cmd)) + if logger.getEffectiveLevel() == 10: + logger.debug("Running process = %s" % " ".join(self.cmd)) + event = "%s [INFO]: Running %s\n" % ( datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S"), " ".join(self.cmd), @@ -1829,7 +1852,9 @@ def update_bootloader(self): if cmd is not None: self.stdout_lines = [] - logger.info("Running %s" % " ".join(cmd)) + if logger.getEffectiveLevel() == 10: + logger.debug("Running %s" % " ".join(cmd)) + with subprocess.Popen( cmd, stdout=subprocess.PIPE, diff --git a/usr/share/archlinux-kernel-manager/ui/ManagerGUI.py b/usr/share/archlinux-kernel-manager/ui/ManagerGUI.py index d42e8aa..a4e008e 100644 --- a/usr/share/archlinux-kernel-manager/ui/ManagerGUI.py +++ b/usr/share/archlinux-kernel-manager/ui/ManagerGUI.py @@ -316,15 +316,29 @@ class ManagerGUI(Gtk.ApplicationWindow): # keep splash screen open, until main gui is loaded def wait_for_gui_load(self): while True: + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Waiting for GUI to load ..") + # fn.time.sleep(0.2) status = self.queue_load_progress.get() + try: - if status == 1: - GLib.idle_add( - self.splash_screen.destroy, - priority=GLib.PRIORITY_DEFAULT, - ) - break + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Status = %s" % status) + + if status == 1: + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Destroying splashscreen") + + GLib.idle_add( + self.splash_screen.destroy, + priority=GLib.PRIORITY_DEFAULT, + ) + break + except Exception as e: + fn.logger.error("Exception in wait_for_gui_load(): %s" % e) + finally: + self.queue_load_progress.task_done() def on_settings(self, action, param, fn): self.open_settings(fn) @@ -342,7 +356,8 @@ class ManagerGUI(Gtk.ApplicationWindow): ).start() def refresh_ui(self): - fn.logger.debug("Refreshing UI") + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Refreshing UI") self.label_notify_revealer.set_text("Refreshing UI started") GLib.idle_add( @@ -366,8 +381,8 @@ class ManagerGUI(Gtk.ApplicationWindow): if self.pacman_db_sync() is False: fn.logger.error("Pacman DB synchronization failed") else: - - fn.logger.debug("Adding community kernels to UI") + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Adding community kernels to UI") try: thread_get_community_kernels = fn.Thread( @@ -424,12 +439,14 @@ class ManagerGUI(Gtk.ApplicationWindow): ) while self.default_context.pending(): + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Waiting for UI loop") fn.time.sleep(0.3) self.default_context.iteration(False) # fn.time.sleep(0.5) - - fn.logger.debug("Refresh UI completed") + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Refresh UI completed") self.label_notify_revealer.set_text("Refreshing UI completed") GLib.idle_add( @@ -446,6 +463,7 @@ class ManagerGUI(Gtk.ApplicationWindow): fn.logger.info("Application quit") def load_kernels_gui(self): + self.queue_load_progress.put(0) hbox_sep = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=10) hsep = Gtk.Separator(orientation=Gtk.Orientation.VERTICAL) hbox_sep.append(hsep) @@ -453,6 +471,7 @@ class ManagerGUI(Gtk.ApplicationWindow): # handle error here with message if self.official_kernels is None: fn.logger.error("Failed to retrieve kernel list") + self.queue_load_progress.put(1) stack_sidebar = Gtk.StackSidebar() stack_sidebar.set_name("stack_sidebar") @@ -497,8 +516,10 @@ class ManagerGUI(Gtk.ApplicationWindow): fn.logger.info("Creating kernel UI") # add official kernel flowbox + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Adding official kernels to UI") - fn.logger.debug("Adding official kernels to UI") + self.queue_load_progress.put(0) self.kernel_stack.add_official_kernels_to_stack(reload=False) @@ -509,9 +530,10 @@ class ManagerGUI(Gtk.ApplicationWindow): if self.pacman_db_sync() is False: fn.logger.error("Pacman DB synchronization failed") - else: - fn.logger.debug("Adding community kernels to UI") + else: + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Adding community kernels to UI") try: thread_get_community_kernels = fn.Thread( @@ -531,13 +553,21 @@ class ManagerGUI(Gtk.ApplicationWindow): self.kernel_stack.add_community_kernels_to_stack(reload=False) - while self.default_context.pending(): - - self.default_context.iteration(True) - - fn.time.sleep(0.3) + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Sending signal to destroy splashscreen") + # signal to destroy splash screen self.queue_load_progress.put(1) - fn.logger.debug("Adding installed kernels to UI") + if fn.logger.getEffectiveLevel() == 10: + fn.logger.debug("Adding installed kernels to UI") + self.kernel_stack.add_installed_kernels_to_stack(reload=False) + + fn.logger.info("Application started") + + # while self.default_context.pending(): + # if fn.logger.getEffectiveLevel() == 10: + # fn.logger.debug("Waiting for UI loop") + # self.default_context.iteration(False) + # fn.time.sleep(0.3) diff --git a/usr/share/archlinux-kernel-manager/ui/SettingsWindow.py b/usr/share/archlinux-kernel-manager/ui/SettingsWindow.py index ae3b64c..ed9b338 100644 --- a/usr/share/archlinux-kernel-manager/ui/SettingsWindow.py +++ b/usr/share/archlinux-kernel-manager/ui/SettingsWindow.py @@ -600,12 +600,13 @@ class SettingsWindow(Gtk.Window): while True: if len(fn.fetched_kernels_dict) > 0: self.manager_gui.official_kernels = self.queue_kernels.get() + self.queue_kernels.task_done() self.refreshed = True if self.manager_gui.official_kernels is not None: switch.set_sensitive(False) + self.update_official_list() - self.update_community_list() self.update_timestamp() self.label_cache_update_status.set_markup( "Cache refresh completed" @@ -667,14 +668,6 @@ class SettingsWindow(Gtk.Window): True, ) - def update_community_list(self): - self.manager_gui.installed_kernels = fn.get_installed_kernels() - - GLib.idle_add( - self.manager_gui.kernel_stack.add_community_kernels_to_stack, - True, - ) - def on_close_clicked(self, widget): self.destroy()