about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch')
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch240
1 files changed, 240 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch
new file mode 100644
index 000000000000..bd519c292c26
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch
@@ -0,0 +1,240 @@
+From b5d7cb20713eff3b3729e5c5fdd2f15680a29385 Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Sun, 31 Oct 2021 23:12:46 +0800
+Subject: [PATCH] build: add packagekit_backend option
+
+---
+ .github/workflows/main.yml      |  7 +++++++
+ meson_options.txt               |  1 +
+ src/Application.vala            |  4 ++++
+ src/Core/BackendAggregator.vala |  2 ++
+ src/Core/Package.vala           | 21 +++++++++++++--------
+ src/Core/UpdateManager.vala     |  6 ++++++
+ src/Views/Homepage.vala         |  4 ++++
+ src/meson.build                 | 10 ++++++++--
+ 8 files changed, 45 insertions(+), 10 deletions(-)
+
+diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
+index daf13654..5dc5a2fb 100644
+--- a/.github/workflows/main.yml
++++ b/.github/workflows/main.yml
+@@ -42,6 +42,13 @@ jobs:
+         meson configure -Dcurated=false -Dpayments=false -Dsharing=false -Dname=Pop\!_Shop build
+         ninja -C build install
+ 
++    - name: Build (NixOS)
++      env:
++        DESTDIR: out
++      run: |
++        meson configure -Dcurated=false -Dpayments=false -Dpackagekit_backend=false build
++        ninja -C build install
++
+   lint:
+ 
+     runs-on: ubuntu-latest
+diff --git a/meson_options.txt b/meson_options.txt
+index 0ae93d07..37a6cd8a 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -4,3 +4,4 @@ option('name', type : 'string', value : 'AppCenter', description : 'The name of
+ option('payments', type : 'boolean', value : true, description : 'Enable payment features and display paid apps')
+ option('sharing', type : 'boolean', value : true, description : 'Display sharing features, i.e. copyable URLs to appcenter.elementary.io')
+ option('hide_upstream_distro_apps', type : 'boolean', value : true, description : 'Used for hiding Ubuntu repo apps on elementary OS')
++option('packagekit_backend', type : 'boolean', value : true, description : 'Enable PackageKit backend')
+diff --git a/src/Application.vala b/src/Application.vala
+index 65fae5aa..7c075076 100644
+--- a/src/Application.vala
++++ b/src/Application.vala
+@@ -167,9 +167,11 @@ public class AppCenter.App : Gtk.Application {
+ 
+         var client = AppCenterCore.Client.get_default ();
+ 
++#if PACKAGEKIT_BACKEND
+         if (fake_update_packages != null) {
+             AppCenterCore.PackageKitBackend.get_default ().fake_packages = fake_update_packages;
+         }
++#endif
+ 
+         if (silent) {
+             NetworkMonitor.get_default ().network_changed.connect ((available) => {
+@@ -183,6 +185,7 @@ public class AppCenter.App : Gtk.Application {
+             return;
+         }
+ 
++#if PACKAGEKIT_BACKEND
+         if (local_path != null) {
+             var file = File.new_for_commandline_arg (local_path);
+ 
+@@ -192,6 +195,7 @@ public class AppCenter.App : Gtk.Application {
+                 warning ("Failed to load local AppStream XML file: %s", e.message);
+             }
+         }
++#endif
+ 
+         if (main_window == null) {
+             main_window = new MainWindow (this);
+diff --git a/src/Core/BackendAggregator.vala b/src/Core/BackendAggregator.vala
+index 539dba98..feb1eaa9 100644
+--- a/src/Core/BackendAggregator.vala
++++ b/src/Core/BackendAggregator.vala
+@@ -26,8 +26,10 @@ public class AppCenterCore.BackendAggregator : Backend, Object {
+ 
+     construct {
+         backends = new Gee.ArrayList<unowned Backend> ();
++#if PACKAGEKIT_BACKEND
+         backends.add (PackageKitBackend.get_default ());
+         backends.add (UbuntuDriversBackend.get_default ());
++#endif
+         backends.add (FlatpakBackend.get_default ());
+ 
+         unowned Gtk.Application app = (Gtk.Application) GLib.Application.get_default ();
+diff --git a/src/Core/Package.vala b/src/Core/Package.vala
+index d6f12f15..8dbd7a22 100644
+--- a/src/Core/Package.vala
++++ b/src/Core/Package.vala
+@@ -328,7 +328,14 @@ public class AppCenterCore.Package : Object {
+     public string origin_description {
+         owned get {
+             unowned string origin = component.get_origin ();
+-            if (backend is PackageKitBackend) {
++            if (backend is FlatpakBackend) {
++                var fp_package = this as FlatpakPackage;
++                if (fp_package != null && fp_package.installation == FlatpakBackend.system_installation) {
++                    return _("%s (system-wide)").printf (origin);
++                }
++                return origin;
++#if PACKAGEKIT_BACKEND
++            } else if (backend is PackageKitBackend) {
+                 if (origin == APPCENTER_PACKAGE_ORIGIN) {
+                     return _("AppCenter");
+                 } else if (origin == ELEMENTARY_STABLE_PACKAGE_ORIGIN) {
+@@ -336,15 +343,9 @@ public class AppCenterCore.Package : Object {
+                 } else if (origin.has_prefix ("ubuntu-")) {
+                     return _("Ubuntu (non-curated)");
+                 }
+-            } else if (backend is FlatpakBackend) {
+-                var fp_package = this as FlatpakPackage;
+-                if (fp_package != null && fp_package.installation == FlatpakBackend.system_installation) {
+-                    return _("%s (system-wide)").printf (origin);
+-                }
+-
+-                return origin;
+             } else if (backend is UbuntuDriversBackend) {
+                 return _("Ubuntu Drivers");
++#endif
+             }
+ 
+             return _("Unknown Origin (non-curated)");
+@@ -434,11 +435,15 @@ public class AppCenterCore.Package : Object {
+         _author_title = null;
+         backend_details = null;
+ 
++#if PACKAGEKIT_BACKEND
+         // The version on a PackageKit package comes from the package not AppStream, so only reset the version
+         // on other backends
+         if (!(backend is PackageKitBackend)) {
+             _latest_version = null;
+         }
++#else
++        _latest_version = null;
++#endif
+ 
+         this.component = component;
+     }
+diff --git a/src/Core/UpdateManager.vala b/src/Core/UpdateManager.vala
+index 9deceaf5..c92c0d37 100644
+--- a/src/Core/UpdateManager.vala
++++ b/src/Core/UpdateManager.vala
+@@ -52,6 +52,7 @@ public class AppCenterCore.UpdateManager : Object {
+             installed_package.update_state ();
+         }
+ 
++#if PACKAGEKIT_BACKEND
+         Pk.Results pk_updates;
+         unowned PackageKitBackend client = PackageKitBackend.get_default ();
+         try {
+@@ -60,10 +61,12 @@ public class AppCenterCore.UpdateManager : Object {
+             warning ("Unable to get updates from PackageKit backend: %s", e.message);
+             return 0;
+         }
++#endif
+ 
+         uint os_count = 0;
+         string os_desc = "";
+ 
++#if PACKAGEKIT_BACKEND
+         var package_array = pk_updates.get_package_array ();
+         debug ("PackageKit backend reports %d updates", package_array.length);
+ 
+@@ -87,6 +90,7 @@ public class AppCenterCore.UpdateManager : Object {
+                 );
+             }
+         });
++#endif
+ 
+         os_updates.component.set_pkgnames ({});
+         os_updates.change_information.clear_update_info ();
+@@ -159,6 +163,7 @@ public class AppCenterCore.UpdateManager : Object {
+             count += 1;
+         }
+ 
++#if PACKAGEKIT_BACKEND
+         pk_updates.get_details_array ().foreach ((pk_detail) => {
+             var pk_package = new Pk.Package ();
+             try {
+@@ -181,6 +186,7 @@ public class AppCenterCore.UpdateManager : Object {
+                 critical (e.message);
+             }
+         });
++#endif
+ 
+         os_updates.update_state ();
+         return count;
+diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala
+index 3673903f..2e128e77 100644
+--- a/src/Views/Homepage.vala
++++ b/src/Views/Homepage.vala
+@@ -107,9 +107,13 @@ public class AppCenter.Homepage : AbstractView {
+             column_spacing = 24,
+             orientation = Gtk.Orientation.VERTICAL
+         };
++#if PACKAGEKIT_BACKEND
+         grid.add (banner_revealer);
+         grid.add (recently_updated_revealer);
+         grid.add (categories_label);
++#else
++        category_flow.margin_top = 12;
++#endif
+         grid.add (category_flow);
+ 
+         scrolled_window = new Gtk.ScrolledWindow (null, null) {
+diff --git a/src/meson.build b/src/meson.build
+index 7b319fc6..d1d77931 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -12,10 +12,8 @@ appcenter_files = files(
+     'Core/FlatpakBackend.vala',
+     'Core/Job.vala',
+     'Core/Package.vala',
+-    'Core/PackageKitBackend.vala',
+     'Core/ScreenshotCache.vala',
+     'Core/Task.vala',
+-    'Core/UbuntuDriversBackend.vala',
+     'Core/UpdateManager.vala',
+     'Dialogs/InstallFailDialog.vala',
+     'Dialogs/NonCuratedWarningDialog.vala',
+@@ -76,6 +74,14 @@ if get_option('hide_upstream_distro_apps')
+     args += '--define=HIDE_UPSTREAM_DISTRO_APPS'
+ endif
+ 
++if get_option('packagekit_backend')
++    args += '--define=PACKAGEKIT_BACKEND'
++    appcenter_files += files(
++        'Core/PackageKitBackend.vala',
++        'Core/UbuntuDriversBackend.vala',
++    )
++endif
++
+ executable(
+     meson.project_name(),
+     appcenter_files,