From 46cc407dde2f015bc8c77ccdfccef1f10c8d1a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ladislav=20Slez=C3=A1k?= Date: Mon, 4 Jan 2021 10:07:52 +0100 Subject: [PATCH] Set the previous "distro_target" option (bsc#1176275) ... when restarting the package manager - fixes upgrade from SLE12 via SMT - 4.2.14 --- package/yast2-pkg-bindings-devel-doc.spec | 2 +- package/yast2-pkg-bindings.changes | 7 +++++++ package/yast2-pkg-bindings.spec | 2 +- src/PkgFunctions.cc | 14 +++++++++++--- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/package/yast2-pkg-bindings-devel-doc.spec b/package/yast2-pkg-bindings-devel-doc.spec index fd650d85..86a8abca 100644 --- a/package/yast2-pkg-bindings-devel-doc.spec +++ b/package/yast2-pkg-bindings-devel-doc.spec @@ -16,7 +16,7 @@ # Name: yast2-pkg-bindings-devel-doc -Version: 4.2.13 +Version: 4.2.14 Release: 0 License: GPL-2.0-only Group: Documentation/HTML diff --git a/package/yast2-pkg-bindings.changes b/package/yast2-pkg-bindings.changes index f1dfd92e..47ee3a74 100644 --- a/package/yast2-pkg-bindings.changes +++ b/package/yast2-pkg-bindings.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jan 4 08:37:18 UTC 2021 - Ladislav Slezák + +- Set the previous "distro_target" option when restarting the + package manager (bsc#1176275), fixes upgrade from SLE12 via SMT +- 4.2.14 + ------------------------------------------------------------------- Tue Dec 01 16:02:16 CEST 2020 - aschnell@suse.com diff --git a/package/yast2-pkg-bindings.spec b/package/yast2-pkg-bindings.spec index dc4c04d3..dcd7a45e 100644 --- a/package/yast2-pkg-bindings.spec +++ b/package/yast2-pkg-bindings.spec @@ -17,7 +17,7 @@ Name: yast2-pkg-bindings -Version: 4.2.13 +Version: 4.2.14 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build diff --git a/src/PkgFunctions.cc b/src/PkgFunctions.cc index 07f82f28..a217f2c0 100644 --- a/src/PkgFunctions.cc +++ b/src/PkgFunctions.cc @@ -222,10 +222,18 @@ zypp::RepoManager* PkgFunctions::CreateRepoManager() if (repo_manager) return repo_manager; // set path option, use root dir as a prefix for the default directory - zypp::RepoManagerOptions repo_options(_target_root); - y2milestone("Path to repository files: %s", repo_options.knownReposPath.asString().c_str()); + zypp::RepoManagerOptions repo_manager_options(_target_root); + y2milestone("Path to repository files: %s", repo_manager_options.knownReposPath.asString().c_str()); - repo_manager = new zypp::RepoManager(repo_options); + // set the previously configured "target_distro" option + if(!repo_options->value(YCPString("target_distro")).isNull() && repo_options->value(YCPString("target_distro"))->isString()) + { + std::string target_distro = repo_options->value(YCPString("target_distro"))->asString()->value(); + y2milestone("Using target_distro: %s", target_distro.c_str()); + repo_manager_options.servicesTargetDistro = target_distro; + } + + repo_manager = new zypp::RepoManager(repo_manager_options); return repo_manager; }