File PackageKit-zypp-disable-upgrade-system-in-sle.patch of Package PackageKit

From 01ae2ceee2688b308553b0ed0c5f9c1b6f27ad78 Mon Sep 17 00:00:00 2001
From: Jonathan Kang <jonathankang@gnome.org>
Date: Wed, 27 Jul 2022 17:15:31 +0800
Subject: [PATCH] zypp: Disable upgrade-system support in SLE

---
 backends/zypp/pk-backend-zypp.cpp | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index 259aa2b90..271cc0a6c 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -44,6 +44,7 @@
 #include <pk-backend.h>
 #include <pk-shared.h>
 #include <packagekit-glib2/packagekit.h>
+#include <packagekit-glib2/pk-common-private.h>
 #include <packagekit-glib2/pk-enum.h>
 
 #include <zypp/Digest.h>
@@ -3547,6 +3548,8 @@ pk_backend_upgrade_system_thread (PkBackendJob *job,
 				  gpointer user_data)
 {
 	const gchar *release_ver = NULL;
+    g_autofree gchar *release_name = NULL;
+    g_autoptr(GError) error = NULL;
 	PkBitfield transaction_flags = 0;
 
 	g_variant_get (params, "(t&su)",
@@ -3565,6 +3568,16 @@ pk_backend_upgrade_system_thread (PkBackendJob *job,
 		return;
 	}
 
+    release_name = pk_get_distro_name (&error);
+	if (release_name == NULL)
+		g_error ("Failed to parse os-release: %s", error->message);
+    if (g_str_has_prefix (release_name, "SLE")) {
+		pk_backend_job_error_code (job, PK_ERROR_ENUM_NOT_SUPPORTED,
+					   "upgrade-system is not supported in SLE.");
+
+		return;
+    }
+
 	ResPool pool = zypp_build_pool (zypp, TRUE);
 	PkRestartEnum restart = PK_RESTART_ENUM_NONE;
 	PoolStatusSaver saver;
-- 
2.37.1

openSUSE Build Service is sponsored by