From 65aa0e1d8beb46df49b2b178f18162c44e9ee2c6 Mon Sep 17 00:00:00 2001 From: wangzhe Date: Thu, 17 Jul 2025 16:43:20 +0800 Subject: [PATCH] Release 0.13.3-1.3 Convert rpmdb from BerkeleyDB to Sqlite Signed-off-by: wangzhe --- ...vert-rpmdb-from-BerkeleyDB-to-Sqlite.patch | 47 +++++++++++++++++++ leapp-repository.spec | 8 +++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 0001-Convert-rpmdb-from-BerkeleyDB-to-Sqlite.patch diff --git a/0001-Convert-rpmdb-from-BerkeleyDB-to-Sqlite.patch b/0001-Convert-rpmdb-from-BerkeleyDB-to-Sqlite.patch new file mode 100644 index 0000000..ef46c7f --- /dev/null +++ b/0001-Convert-rpmdb-from-BerkeleyDB-to-Sqlite.patch @@ -0,0 +1,47 @@ +From 244024b8f1c48e582c311c2e4be129dbf87fdf41 Mon Sep 17 00:00:00 2001 +From: wangzhe +Date: Thu, 17 Jul 2025 16:15:52 +0800 +Subject: [PATCH] Convert rpmdb from BerkeleyDB to Sqlite + +--- + repos/system_upgrade/el7toel8/libraries/dnfplugin.py | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/repos/system_upgrade/el7toel8/libraries/dnfplugin.py b/repos/system_upgrade/el7toel8/libraries/dnfplugin.py +index 467d9ea..dcaee91 100644 +--- a/repos/system_upgrade/el7toel8/libraries/dnfplugin.py ++++ b/repos/system_upgrade/el7toel8/libraries/dnfplugin.py +@@ -30,6 +30,14 @@ def install(target_basedir): + message='Failed to install DNF plugin. Error: {}'.format(str(e)) + ) + ++def _rebuild_rpm_db(context, root=None): ++ """ ++ Convert rpmdb from BerkeleyDB to Sqlite ++ """ ++ base_cmd = ['rpmdb', '--rebuilddb'] ++ cmd = base_cmd if not root else base_cmd + ['-r', root] ++ context.call(cmd) ++ + def get_platform_id(target_repoids): + platform_id = 'platform:el8' + for repo in target_repoids: +@@ -178,6 +186,7 @@ def install_initramdisk_requirements(packages, target_userspace_info, used_repos + """ + with _prepare_transaction(used_repos=used_repos, + target_userspace_info=target_userspace_info) as (context, target_repoids, _unused): ++ _rebuild_rpm_db(context) + repos_opt = [['--enablerepo', repo] for repo in target_repoids] + repos_opt = list(itertools.chain(*repos_opt)) + cmd = [ +@@ -231,6 +240,7 @@ def perform_transaction_install(target_userspace_info, storage_info, used_repos, + # the below nsenter command is important as we need to enter sysvipc namespace on the host so we can + # communicate with udev + cmd_prefix = ['nsenter', '--ipc=/installroot/proc/1/ns/ipc'] ++ _rebuild_rpm_db(context, root='/installroot') + _transaction( + context=context, stage='upgrade', target_repoids=target_repoids, plugin_info=plugin_info, tasks=tasks, + cmd_prefix=cmd_prefix +-- +1.8.3.1 + diff --git a/leapp-repository.spec b/leapp-repository.spec index b1ccde3..70bf0ce 100644 --- a/leapp-repository.spec +++ b/leapp-repository.spec @@ -11,7 +11,7 @@ }\ py2_byte_compile "%1" "%2"} -%define anolis_release 2 +%define anolis_release 3 Name: leapp-repository Version: 0.13.3 @@ -26,6 +26,8 @@ Source2: leapp_upgrade_repositories.repo Source3: pes-events.json Source4: repomap.csv +Patch0001: 0001-Convert-rpmdb-from-BerkeleyDB-to-Sqlite.patch + BuildArch: noarch BuildRequires: python-devel @@ -153,6 +155,10 @@ done; # no files here %changelog +* Thu Jul 17 2025 wangzhe - 0.13.3-1.3 +- Release 0.13.3-1.3 +- Convert rpmdb from BerkeleyDB to Sqlite + * Tue Sep 26 2023 wangzhe - 0.13.3-1.2 - Release 0.13.3-1.2 - Simplified preupgrade steps -- Gitee