swig: Add missing %template for std::vector<TransactionPersistence>

Resolves: RHEL-154736
This commit is contained in:
Evan Goode 2026-04-22 12:34:54 -04:00
parent 867d98ee9f
commit d71150502c
2 changed files with 41 additions and 1 deletions

View File

@ -0,0 +1,35 @@
From afa4363a521ab5abf6b5b39b94920b0b5561db98 Mon Sep 17 00:00:00 2001
From: Evan Goode <mail@evangoo.de>
Date: Mon, 9 Mar 2026 22:23:45 -0400
Subject: [PATCH] swig: Add missing %template for
std::vector<TransactionPersistence>
MergedTransaction::listPersistences() returns std::vector<TransactionPersistence>,
but no SWIG %template was declared for this type. Without it, SWIG wraps the
return value as an opaque pointer instead of a Python list, causing memory leak
warnings and preventing Python code from iterating over the values.
Add the missing template, matching the existing TransactionStateVector pattern.
For: https://github.com/rpm-software-management/libdnf/issues/1744
Assisted-by: Claude Opus 4.6
---
bindings/swig/transaction.i | 1 +
1 file changed, 1 insertion(+)
diff --git a/bindings/swig/transaction.i b/bindings/swig/transaction.i
index c5fe04d8e..e1299b05f 100644
--- a/bindings/swig/transaction.i
+++ b/bindings/swig/transaction.i
@@ -80,6 +80,7 @@ typedef libdnf::CompsPackageType CompsPackageType;
%template() std::vector<std::shared_ptr<libdnf::CompsGroupPackage> >;
%template() std::vector<std::shared_ptr<libdnf::CompsEnvironmentGroup> >;
%template(TransactionStateVector) std::vector<libdnf::TransactionState>;
+%template(TransactionPersistenceVector) std::vector<libdnf::TransactionPersistence>;
%template() std::vector<uint32_t>;
%template() std::vector<int64_t>;
--
2.53.0

View File

@ -56,7 +56,7 @@
Name: libdnf
Version: %{libdnf_major_version}.%{libdnf_minor_version}.%{libdnf_micro_version}
Release: 15%{?dist}
Release: 16%{?dist}
Summary: Library providing simplified C and Python API to libsolv
License: LGPL-2.1-or-later
URL: https://github.com/rpm-software-management/libdnf
@ -91,6 +91,7 @@ Patch27: 0027-Log-identifiers-of-keys-imported-by-dnf_keyring_add_.patch
Patch28: 0028-Fix-dnf_keyring_add_public_key-to-add-all-keys-from-.patch
Patch29: 0029-Fix-dnf_keyring_add_public_key-to-add-keys-from-all-.patch
Patch30: 0030-Fix-formatting-error-messages-when-importing-subkeys.patch
Patch31: 0031-swig-Add-missing-template-for-std-vector-Transaction.patch
BuildRequires: cmake
BuildRequires: gcc
@ -334,6 +335,10 @@ popd
%endif
%changelog
* Wed Apr 22 2026 Evan Goode <egoode@redhat.com> - 0.73.1-16
- swig: Add missing %template for std::vector<TransactionPersistence>
(RHEL-154736)
* Mon Apr 13 2026 Petr Pisar <ppisar@redhat.com> - 0.73.1-15
- Fix dnf_keyring_add_public_key() to add multiple keys from a single file
(RHEL-156063)