diff '--color=auto' -Naur settings-daemon-8.4.0.orig/meson.build settings-daemon-8.4.0/meson.build
--- settings-daemon-8.4.0.orig/meson.build	2025-11-26 15:31:59.152002380 +0100
+++ settings-daemon-8.4.0/meson.build	2025-11-26 15:32:31.969594642 +0100
@@ -13,7 +13,6 @@
 granite_dep = dependency('granite', version: '>= 5.3.0')
 gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0')
 gexiv2_dep = dependency('gexiv2')
-pk_dep = dependency('packagekit-glib2')
 i18n = import('i18n')
 gettext_name = meson.project_name()
 
diff '--color=auto' -Naur settings-daemon-8.4.0.orig/src/Backends/SystemUpdate.vala settings-daemon-8.4.0/src/Backends/SystemUpdate.vala
--- settings-daemon-8.4.0.orig/src/Backends/SystemUpdate.vala	2025-11-26 15:31:59.172002972 +0100
+++ settings-daemon-8.4.0/src/Backends/SystemUpdate.vala	2025-11-26 15:35:40.080180733 +0100
@@ -10,7 +10,6 @@
     public struct UpdateDetails {
         string[] packages;
         uint64 size;
-        Pk.Info[] info;
     }
 
     private const string NOTIFICATION_ID = "system-update";
@@ -22,8 +21,6 @@
     private PkUtils.CurrentState current_state;
     private UpdateDetails update_details;
 
-    private Pk.Task task;
-    private Pk.PackageSack? available_updates = null;
     private GLib.Cancellable cancellable;
 
     construct {
@@ -36,28 +33,10 @@
 
         update_details = {
             {},
-            0,
-            {}
-        };
-
-        task = new Pk.Task () {
-            details_with_deps_size = true,
-            only_download = true
+            0
         };
 
         cancellable = new GLib.Cancellable ();
-
-        try {
-            var last_offline_results = Pk.offline_get_results ();
-
-            if (last_offline_results.get_exit_code () != SUCCESS && last_offline_results.get_error_code () != null) {
-                send_error (last_offline_results.get_error_code ().details);
-            } else {
-                GLib.Application.get_default ().withdraw_notification (NOTIFICATION_ID);
-            }
-        } catch (Error e) {
-            warning ("Couldn't determine last offline results: %s", e.message);
-        }
     }
 
     public async void check_for_updates (bool force, bool notify) throws DBusError, IOError {
@@ -69,97 +48,7 @@
             return;
         }
 
-        update_state (CHECKING);
-
-        try {
-            var prepared = Pk.offline_get_prepared_ids ().length > 0;
-
-            if (prepared) {
-                update_state (RESTART_REQUIRED);
-                return;
-            }
-        } catch (Error e) {
-            warning ("Failed to get offline prepared ids: %s", e.message);
-        }
-
-        try {
-            yield task.refresh_cache_async (force, null, progress_callback);
-        } catch (Error e) {
-            warning ("Failed to refresh cache: %s", e.message);
-        }
-
-        try {
-            available_updates = (yield task.get_updates_async (Pk.Filter.NONE, null, progress_callback)).get_package_sack ();
-
-            settings.set_int64 ("last-refresh-time", new DateTime.now_utc ().to_unix ());
-
-            if (available_updates == null || available_updates.get_size () == 0) {
-                update_state (UP_TO_DATE);
-                return;
-            }
-
-            string[] package_names = {};
-            Pk.Info[] package_info = {};
-            string[] package_ids = {};
-            bool security_updates = false;
-
-            foreach (var package in available_updates.get_array ()) {
-                if (package.get_info () == Pk.Info.BLOCKED) {
-                    // Skip packages blocked typically due to phasing or being held back.
-                    continue;
-                }
-                package_names += package.get_name ();
-                package_info += package.get_info ();
-
-                if (package.get_info () == SECURITY) {
-                    security_updates = true;
-                }
-
-                package_ids += package.get_id ();
-            }
-
-            uint64 package_total_size = 0;
-            var results = yield task.get_details_async (package_ids, null, progress_callback);
-            var details = results.get_details_array ();
-            foreach (var detail in details) {
-                package_total_size += detail.get_size ();
-            }
-
-            update_details = {
-                package_names,
-                package_total_size,
-                package_info
-            };
-
-            update_state (AVAILABLE);
-
-            var metered_network = NetworkMonitor.get_default ().network_metered;
-            var auto_updates = settings.get_boolean ("automatic-updates");
-
-            if (!force && !metered_network && auto_updates) {
-                update.begin ();
-                return;
-            }
-
-            if (notify || (metered_network && auto_updates)) {
-                var notification = new Notification (_("Update available"));
-                notification.set_default_action (Application.ACTION_PREFIX + Application.SHOW_UPDATES_ACTION);
-
-                if (security_updates) {
-                    notification.set_body (_("A system security update is available"));
-                    notification.set_icon (new ThemedIcon ("software-update-urgent"));
-                    notification.set_priority (HIGH);
-                } else {
-                    notification.set_body (_("A system update is available"));
-                    notification.set_icon (new ThemedIcon ("software-update-available"));
-                }
-
-                GLib.Application.get_default ().send_notification (NOTIFICATION_ID, notification);
-            }
-        } catch (Error e) {
-            warning ("Failed to get available updates: %s", e.message);
-            update_state (UP_TO_DATE);
-        }
+        update_state (UP_TO_DATE);
     }
 
     public async void update () throws DBusError, IOError {
@@ -168,45 +57,12 @@
         }
 
         cancellable.reset ();
-
-        update_state (DOWNLOADING);
-
-        try {
-            var results = yield task.update_packages_async (available_updates.get_ids (), cancellable, progress_callback);
-
-            if (results.get_exit_code () == CANCELLED) {
-                debug ("Updates were cancelled");
-                check_for_updates.begin (true, false);
-                return;
-            }
-
-            var notification = new Notification (_("Restart required"));
-            notification.set_body (_("Please restart your system to finalize updates"));
-            notification.set_icon (new ThemedIcon ("system-reboot"));
-            notification.set_default_action (Application.ACTION_PREFIX + Application.SHOW_UPDATES_ACTION);
-
-            GLib.Application.get_default ().send_notification (NOTIFICATION_ID, notification);
-
-            update_state (RESTART_REQUIRED);
-        } catch (Error e) {
-            critical ("Failed to download available updates: %s", e.message);
-            send_error (e.message);
-        }
     }
 
     public void cancel () throws DBusError, IOError {
         cancellable.cancel ();
     }
 
-    private void progress_callback (Pk.Progress progress, Pk.ProgressType progress_type) {
-        update_state (
-            current_state.state,
-            PkUtils.status_to_title (progress.status),
-            progress.percentage,
-            progress.download_size_remaining
-        );
-    }
-
     private void send_error (string message) {
         var notification = new Notification (_("System updates couldn't be installed"));
         notification.set_body (_("An error occurred while trying to update your system"));
diff '--color=auto' -Naur settings-daemon-8.4.0.orig/src/Backends/UbuntuDrivers.vala settings-daemon-8.4.0/src/Backends/UbuntuDrivers.vala
--- settings-daemon-8.4.0.orig/src/Backends/UbuntuDrivers.vala	2025-11-26 15:31:59.172002972 +0100
+++ settings-daemon-8.4.0/src/Backends/UbuntuDrivers.vala	2025-11-26 15:32:31.969594642 +0100
@@ -21,7 +21,6 @@
     private HashTable<string, Device> devices_by_drivers;
     private Device[] devices = {};
 
-    private Pk.Task task;
     private GLib.Cancellable cancellable;
 
     construct {
@@ -35,8 +34,6 @@
         available_drivers = new HashTable<string, GenericArray<string>> (str_hash, str_equal);
         devices_by_drivers = new HashTable<string, Device> (str_hash, str_equal);
 
-        task = new Pk.Task ();
-
         cancellable = new GLib.Cancellable ();
 
         check_for_drivers.begin (true);
@@ -186,29 +183,6 @@
 
     private async GenericArray<string> update_installed (string driver, string[] package_names) {
         var array = new GenericArray<string> ();
-        try {
-            var result = yield task.resolve_async (Pk.Filter.NONE, package_names, null, () => {});
-
-            var packages = result.get_package_array ();
-
-            bool all_installed = true;
-            foreach (var package in packages) {
-                array.add (package.package_id);
-
-                if (!(driver in devices_by_drivers)) {
-                    continue;
-                }
-
-                if (all_installed && (Pk.Info.INSTALLED == package.info)) {
-                    devices_by_drivers[driver].available_drivers_with_installed[driver] = true;
-                } else {
-                    all_installed = false;
-                    devices_by_drivers[driver].available_drivers_with_installed[driver] = false;
-                }
-            }
-        } catch (Error e) {
-            critical ("Failed to get package details, treating as not installed: %s", e.message);
-        }
 
         return array;
     }
@@ -261,15 +235,6 @@
         cancellable.cancel ();
     }
 
-    private void progress_callback (Pk.Progress progress, Pk.ProgressType progress_type) {
-        update_state (
-            current_state.state,
-            PkUtils.status_to_title (progress.status),
-            progress.percentage,
-            progress.download_size_remaining
-        );
-    }
-
     private void send_error (string message) {
         var notification = new Notification (_("A driver couldn't be installed"));
         notification.set_body (_("An error occurred while trying to install a driver"));
diff '--color=auto' -Naur settings-daemon-8.4.0.orig/src/meson.build settings-daemon-8.4.0/src/meson.build
--- settings-daemon-8.4.0.orig/src/meson.build	2025-11-26 15:31:59.178669837 +0100
+++ settings-daemon-8.4.0/src/meson.build	2025-11-26 15:32:31.969594642 +0100
@@ -37,8 +37,7 @@
         gdk_pixbuf_dep,
         gexiv2_dep,
         libgeoclue_dep,
-        m_dep,
-        pk_dep
+        m_dep
     ],
     vala_args: args,
     install: true,
diff '--color=auto' -Naur settings-daemon-8.4.0.orig/src/meson.build.orig settings-daemon-8.4.0/src/meson.build.orig
--- settings-daemon-8.4.0.orig/src/meson.build.orig	1970-01-01 01:00:00.000000000 +0100
+++ settings-daemon-8.4.0/src/meson.build.orig	2025-11-24 20:00:34.000000000 +0100
@@ -0,0 +1,45 @@
+sources = files(
+    'AccountsService.vala',
+    'Application.vala',
+    'Backends/AccentColorManager.vala',
+    'Backends/ApplicationShortcuts.vala',
+    'Backends/Housekeeping.vala',
+    'Backends/InterfaceSettings.vala',
+    'Backends/KeyboardSettings.vala',
+    'Backends/MouseSettings.vala',
+    'Backends/NightLightSettings.vala',
+    'Backends/PowerProfilesSync.vala',
+    'Backends/PrefersColorSchemeSettings.vala',
+    'Backends/SystemUpdate.vala',
+    'DBus/DesktopIntegration.vala',
+    'DBus/ShellKeyGrabber.vala',
+    'Utils/PkUtils.vala',
+    'Utils/SessionUtils.vala',
+    'Utils/SunriseSunsetCalculator.vala',
+)
+
+args = []
+
+if get_option('ubuntu_drivers')
+    sources += files('Backends/UbuntuDrivers.vala')
+    args += '--define=UBUNTU_DRIVERS'
+endif
+
+executable(
+    meson.project_name(),
+    sources,
+    dependencies: [
+        config_dep,
+        fwupd_dep,
+        gio_dep,
+        glib_dep,
+        granite_dep,
+        gdk_pixbuf_dep,
+        gexiv2_dep,
+        libgeoclue_dep,
+        m_dep,
+        pk_dep
+    ],
+    vala_args: args,
+    install: true,
+)
diff '--color=auto' -Naur settings-daemon-8.4.0.orig/src/Utils/PkUtils.vala settings-daemon-8.4.0/src/Utils/PkUtils.vala
--- settings-daemon-8.4.0.orig/src/Utils/PkUtils.vala	2025-11-26 15:31:59.178669837 +0100
+++ settings-daemon-8.4.0/src/Utils/PkUtils.vala	2025-11-26 15:32:31.969594642 +0100
@@ -14,81 +14,4 @@
         uint percentage;
         uint64 download_size_remaining;
     }
-
-    public static unowned string status_to_title (Pk.Status status) {
-        // From https://github.com/elementary/appcenter/blob/master/src/Core/ChangeInformation.vala#L51
-        switch (status) {
-            case Pk.Status.SETUP:
-                return _("Starting");
-            case Pk.Status.WAIT:
-                return _("Waiting");
-            case Pk.Status.RUNNING:
-                return _("Running");
-            case Pk.Status.QUERY:
-                return _("Querying");
-            case Pk.Status.INFO:
-                return _("Getting information");
-            case Pk.Status.REMOVE:
-                return _("Removing packages");
-            case Pk.Status.DOWNLOAD:
-                return _("Downloading");
-            case Pk.Status.REFRESH_CACHE:
-                return _("Refreshing software list");
-            case Pk.Status.UPDATE:
-                return _("Installing updates");
-            case Pk.Status.CLEANUP:
-                return _("Cleaning up packages");
-            case Pk.Status.OBSOLETE:
-                return _("Obsoleting packages");
-            case Pk.Status.DEP_RESOLVE:
-                return _("Resolving dependencies");
-            case Pk.Status.SIG_CHECK:
-                return _("Checking signatures");
-            case Pk.Status.TEST_COMMIT:
-                return _("Testing changes");
-            case Pk.Status.COMMIT:
-                return _("Committing changes");
-            case Pk.Status.REQUEST:
-                return _("Requesting data");
-            case Pk.Status.FINISHED:
-                return _("Finished");
-            case Pk.Status.CANCEL:
-                return _("Cancelling");
-            case Pk.Status.DOWNLOAD_REPOSITORY:
-                return _("Downloading repository information");
-            case Pk.Status.DOWNLOAD_PACKAGELIST:
-                return _("Downloading list of packages");
-            case Pk.Status.DOWNLOAD_FILELIST:
-                return _("Downloading file lists");
-            case Pk.Status.DOWNLOAD_CHANGELOG:
-                return _("Downloading lists of changes");
-            case Pk.Status.DOWNLOAD_GROUP:
-                return _("Downloading groups");
-            case Pk.Status.DOWNLOAD_UPDATEINFO:
-                return _("Downloading update information");
-            case Pk.Status.REPACKAGING:
-                return _("Repackaging files");
-            case Pk.Status.LOADING_CACHE:
-                return _("Loading cache");
-            case Pk.Status.SCAN_APPLICATIONS:
-                return _("Scanning applications");
-            case Pk.Status.GENERATE_PACKAGE_LIST:
-                return _("Generating package lists");
-            case Pk.Status.WAITING_FOR_LOCK:
-                return _("Waiting for package manager lock");
-            case Pk.Status.WAITING_FOR_AUTH:
-                return _("Waiting for authentication");
-            case Pk.Status.SCAN_PROCESS_LIST:
-                return _("Updating running applications");
-            case Pk.Status.CHECK_EXECUTABLE_FILES:
-                return _("Checking applications in use");
-            case Pk.Status.CHECK_LIBRARIES:
-                return _("Checking libraries in use");
-            case Pk.Status.COPY_FILES:
-                return _("Copying files");
-            case Pk.Status.INSTALL:
-            default:
-                return _("Installing");
-        }
-    }
 }
