Update to 0.20.0
This commit is contained in:
		
							parent
							
								
									7307bfb7ba
								
							
						
					
					
						commit
						1936b507d7
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -25,3 +25,4 @@ | |||||||
| /libdnf-0.17.2.tar.gz | /libdnf-0.17.2.tar.gz | ||||||
| /libdnf-0.19.0.tar.gz | /libdnf-0.19.0.tar.gz | ||||||
| /libdnf-0.19.1.tar.gz | /libdnf-0.19.1.tar.gz | ||||||
|  | /libdnf-0.20.0.tar.gz | ||||||
|  | |||||||
| @ -1,38 +0,0 @@ | |||||||
| From ccf8b4945ba6a7c888237ff0b439153b79740d80 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Kalev Lember <klember@redhat.com> |  | ||||||
| Date: Wed, 12 Sep 2018 15:24:05 +0200 |  | ||||||
| Subject: [PATCH] db: Don't crash when a package has no origin |  | ||||||
| 
 |  | ||||||
| This fixes a NULL pointer dereference in a debug print that was causing |  | ||||||
| packagekitd crashes. |  | ||||||
| 
 |  | ||||||
| https://bugzilla.redhat.com/show_bug.cgi?id=1626851 |  | ||||||
| ---
 |  | ||||||
|  libdnf/dnf-db.cpp | 4 +--- |  | ||||||
|  1 file changed, 1 insertion(+), 3 deletions(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/libdnf/dnf-db.cpp b/libdnf/dnf-db.cpp
 |  | ||||||
| index 5b28288f..894703d3 100644
 |  | ||||||
| --- a/libdnf/dnf-db.cpp
 |  | ||||||
| +++ b/libdnf/dnf-db.cpp
 |  | ||||||
| @@ -36,8 +36,6 @@
 |  | ||||||
|  void |  | ||||||
|  dnf_db_ensure_origin_pkg(DnfDb *db, DnfPackage *pkg) |  | ||||||
|  { |  | ||||||
| -    g_autoptr(GError) error = NULL;
 |  | ||||||
| -
 |  | ||||||
|      /* already set */ |  | ||||||
|      if (dnf_package_get_origin(pkg) != NULL) |  | ||||||
|          return; |  | ||||||
| @@ -47,7 +45,7 @@ dnf_db_ensure_origin_pkg(DnfDb *db, DnfPackage *pkg)
 |  | ||||||
|      /* set from the database if available */ |  | ||||||
|      auto tmp = db->getRPMRepo(dnf_package_get_nevra(pkg)); |  | ||||||
|      if (tmp.empty()) { |  | ||||||
| -        g_debug("no origin for %s: %s", dnf_package_get_package_id(pkg), error->message);
 |  | ||||||
| +        g_debug("no origin for %s", dnf_package_get_package_id(pkg));
 |  | ||||||
|      } else { |  | ||||||
|          dnf_package_set_origin(pkg, tmp.c_str()); |  | ||||||
|      } |  | ||||||
| -- 
 |  | ||||||
| 2.19.0.rc0 |  | ||||||
| 
 |  | ||||||
| @ -1,51 +0,0 @@ | |||||||
| From bc3b61f81a691eee19aa4da04bf8279f35a7c031 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Daniel Mach <dmach@redhat.com> |  | ||||||
| Date: Fri, 10 Aug 2018 17:55:33 +0200 |  | ||||||
| Subject: [PATCH] [transaction] Fix crash after using dnf.comps.CompsQuery and |  | ||||||
|  forking the process in Anaconda. |  | ||||||
| 
 |  | ||||||
| dnf.base.Base.install_specs() uses CompsQuery. |  | ||||||
| CompsQuery opens a connection to the history database. |  | ||||||
| Anaconda runs do_transaction() as a background (forked) process. |  | ||||||
| The fork leads to undefined behavior and crash after an attempt |  | ||||||
| to work with the history database. |  | ||||||
| ---
 |  | ||||||
|  libdnf/transaction/CompsEnvironmentItem.cpp | 5 ++++- |  | ||||||
|  libdnf/transaction/CompsGroupItem.cpp       | 5 ++++- |  | ||||||
|  2 files changed, 8 insertions(+), 2 deletions(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/libdnf/transaction/CompsEnvironmentItem.cpp b/libdnf/transaction/CompsEnvironmentItem.cpp
 |  | ||||||
| index d1c0fb40..9b399161 100644
 |  | ||||||
| --- a/libdnf/transaction/CompsEnvironmentItem.cpp
 |  | ||||||
| +++ b/libdnf/transaction/CompsEnvironmentItem.cpp
 |  | ||||||
| @@ -185,7 +185,10 @@ CompsEnvironmentItem::getTransactionItemsByPattern(SQLite3Ptr conn, const std::s
 |  | ||||||
|   |  | ||||||
|      std::vector< TransactionItemPtr > result; |  | ||||||
|   |  | ||||||
| -    SQLite3::Query query(*conn, sql);
 |  | ||||||
| +    // HACK: create a private connection to avoid undefined behavior
 |  | ||||||
| +    // after forking process in Anaconda
 |  | ||||||
| +    SQLite3 privateConn(conn->getPath());
 |  | ||||||
| +    SQLite3::Query query(privateConn, sql);
 |  | ||||||
|      std::string pattern_sql = pattern; |  | ||||||
|      std::replace(pattern_sql.begin(), pattern_sql.end(), '*', '%'); |  | ||||||
|      query.bindv(pattern, pattern, pattern); |  | ||||||
| diff --git a/libdnf/transaction/CompsGroupItem.cpp b/libdnf/transaction/CompsGroupItem.cpp
 |  | ||||||
| index ce7b9146..1eb162e1 100644
 |  | ||||||
| --- a/libdnf/transaction/CompsGroupItem.cpp
 |  | ||||||
| +++ b/libdnf/transaction/CompsGroupItem.cpp
 |  | ||||||
| @@ -181,7 +181,10 @@ CompsGroupItem::getTransactionItemsByPattern(SQLite3Ptr conn, const std::string
 |  | ||||||
|   |  | ||||||
|      std::vector< TransactionItemPtr > result; |  | ||||||
|   |  | ||||||
| -    SQLite3::Query query(*conn, sql);
 |  | ||||||
| +    // HACK: create a private connection to avoid undefined behavior
 |  | ||||||
| +    // after forking process in Anaconda
 |  | ||||||
| +    SQLite3 privateConn(conn->getPath());
 |  | ||||||
| +    SQLite3::Query query(privateConn, sql);
 |  | ||||||
|      std::string pattern_sql = pattern; |  | ||||||
|      std::replace(pattern_sql.begin(), pattern_sql.end(), '*', '%'); |  | ||||||
|      query.bindv(pattern, pattern, pattern); |  | ||||||
| -- 
 |  | ||||||
| 2.18.0 |  | ||||||
| 
 |  | ||||||
							
								
								
									
										34
									
								
								585.patch
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								585.patch
									
									
									
									
									
								
							| @ -1,34 +0,0 @@ | |||||||
| From 8e16fa3adc4ae1c3657956eef5eee5b40d1208c0 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Daniel Mach <dmach@redhat.com> |  | ||||||
| Date: Tue, 18 Sep 2018 21:42:03 +0200 |  | ||||||
| Subject: [PATCH] [transaction] Skip storing some obsoletes in the history |  | ||||||
|  database. |  | ||||||
| 
 |  | ||||||
| ---
 |  | ||||||
|  libdnf/dnf-transaction.cpp | 13 +++++++++++++ |  | ||||||
|  1 file changed, 13 insertions(+) |  | ||||||
| 
 |  | ||||||
| diff --git a/libdnf/dnf-transaction.cpp b/libdnf/dnf-transaction.cpp
 |  | ||||||
| index 28d15d803..638b0640a 100644
 |  | ||||||
| --- a/libdnf/dnf-transaction.cpp
 |  | ||||||
| +++ b/libdnf/dnf-transaction.cpp
 |  | ||||||
| @@ -1258,6 +1258,19 @@ dnf_transaction_commit(DnfTransaction *transaction, HyGoal goal, DnfState *state
 |  | ||||||
|                  } |  | ||||||
|              } |  | ||||||
|   |  | ||||||
| +            if (swdbAction == libdnf::TransactionItemAction::OBSOLETED
 |  | ||||||
| +                && dnf_find_pkg_from_name(priv->install, pkg_tmp_name) != NULL
 |  | ||||||
| +                && g_strcmp0(pkg_name, pkg_tmp_name) != 0) {
 |  | ||||||
| +                    // If a package is obsoleted and there's a package with the same name
 |  | ||||||
| +                    // in the install set, skip recording the obsolete in the history db
 |  | ||||||
| +                    // because the package upgrade prevails over the obsolete.
 |  | ||||||
| +                    //
 |  | ||||||
| +                    // Example:
 |  | ||||||
| +                    // grub2-tools-efi obsoletes grub2-tools  # skip as grub2-tools is also upgraded
 |  | ||||||
| +                    // grub2-tools upgrades grub2-tools
 |  | ||||||
| +                    continue;
 |  | ||||||
| +            }
 |  | ||||||
| +
 |  | ||||||
|              // TODO SWDB add pkg_tmp replaced_by pkg |  | ||||||
|              _history_write_item(pkg_tmp, priv->swdb, swdbAction); |  | ||||||
|          } |  | ||||||
							
								
								
									
										45
									
								
								libdnf.spec
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								libdnf.spec
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| %global libsolv_version 0.6.30-1 | %global libsolv_version 0.6.30-1 | ||||||
| %global libmodulemd_version 1.6.1 | %global libmodulemd_version 1.6.1 | ||||||
| %global dnf_conflict 3.0.0 | %global dnf_conflict 3.6.0 | ||||||
| %global swig_version 3.0.12 | %global swig_version 3.0.12 | ||||||
| 
 | 
 | ||||||
| %bcond_with valgrind | %bcond_with valgrind | ||||||
| @ -12,6 +12,13 @@ | |||||||
| %bcond_without python3 | %bcond_without python3 | ||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
|  | %if 0%{?rhel} > 7 || 0%{?fedora} > 29 | ||||||
|  | # Disable python2 build by default | ||||||
|  | %bcond_with python2 | ||||||
|  | %else | ||||||
|  | %bcond_without python2 | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
| %if 0%{?rhel} && ! 0%{?centos} | %if 0%{?rhel} && ! 0%{?centos} | ||||||
| %bcond_without rhsm | %bcond_without rhsm | ||||||
| %else | %else | ||||||
| @ -23,19 +30,13 @@ | |||||||
|     %{nil} |     %{nil} | ||||||
| 
 | 
 | ||||||
| Name:           libdnf | Name:           libdnf | ||||||
| Version:        0.19.1 | Version:        0.20.0 | ||||||
| Release:        3%{?dist} | Release:        1%{?dist} | ||||||
| Summary:        Library providing simplified C and Python API to libsolv | Summary:        Library providing simplified C and Python API to libsolv | ||||||
| License:        LGPLv2+ | License:        LGPLv2+ | ||||||
| URL:            https://github.com/rpm-software-management/libdnf | URL:            https://github.com/rpm-software-management/libdnf | ||||||
| Source0:        %{url}/archive/%{version}/%{name}-%{version}.tar.gz | Source0:        %{url}/archive/%{version}/%{name}-%{version}.tar.gz | ||||||
| 
 | 
 | ||||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1626851 |  | ||||||
| Patch1:         0001-db-Don-t-crash-when-a-package-has-no-origin.patch |  | ||||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1629340 |  | ||||||
| # https://github.com/rpm-software-management/libdnf/pull/585 |  | ||||||
| Patch2:         585.patch |  | ||||||
| 
 |  | ||||||
| BuildRequires:  cmake | BuildRequires:  cmake | ||||||
| BuildRequires:  gcc | BuildRequires:  gcc | ||||||
| BuildRequires:  gcc-c++ | BuildRequires:  gcc-c++ | ||||||
| @ -73,6 +74,7 @@ Requires:       libsolv-devel%{?_isa} >= %{libsolv_version} | |||||||
| %description devel | %description devel | ||||||
| Development files for %{name}. | Development files for %{name}. | ||||||
| 
 | 
 | ||||||
|  | %if %{with python2} | ||||||
| %package -n python2-%{name} | %package -n python2-%{name} | ||||||
| %{?python_provide:%python_provide python2-%{name}} | %{?python_provide:%python_provide python2-%{name}} | ||||||
| Summary:        Python 2 bindings for the libdnf library. | Summary:        Python 2 bindings for the libdnf library. | ||||||
| @ -88,7 +90,7 @@ BuildRequires:  swig >= %{swig_version} | |||||||
| 
 | 
 | ||||||
| %description -n python2-%{name} | %description -n python2-%{name} | ||||||
| Python 2 bindings for the libdnf library. | Python 2 bindings for the libdnf library. | ||||||
| 
 | %endif # with python2 | ||||||
| 
 | 
 | ||||||
| %if %{with python3} | %if %{with python3} | ||||||
| %package -n python3-%{name} | %package -n python3-%{name} | ||||||
| @ -103,6 +105,7 @@ BuildRequires:  swig >= %{swig_version} | |||||||
| Python 3 bindings for the libdnf library. | Python 3 bindings for the libdnf library. | ||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
|  | %if %{with python2} | ||||||
| %package -n python2-hawkey | %package -n python2-hawkey | ||||||
| Summary:        Python 2 bindings for the hawkey library | Summary:        Python 2 bindings for the hawkey library | ||||||
| %{?python_provide:%python_provide python2-hawkey} | %{?python_provide:%python_provide python2-hawkey} | ||||||
| @ -121,6 +124,7 @@ Conflicts:      python-dnf < %{dnf_conflict} | |||||||
| 
 | 
 | ||||||
| %description -n python2-hawkey | %description -n python2-hawkey | ||||||
| Python 2 bindings for the hawkey library. | Python 2 bindings for the hawkey library. | ||||||
|  | %endif # with python2 | ||||||
| 
 | 
 | ||||||
| %if %{with python3} | %if %{with python3} | ||||||
| %package -n python3-hawkey | %package -n python3-hawkey | ||||||
| @ -142,16 +146,20 @@ Python 3 bindings for the hawkey library. | |||||||
| 
 | 
 | ||||||
| %prep | %prep | ||||||
| %autosetup -p1 | %autosetup -p1 | ||||||
|  | %if %{with python2} | ||||||
| mkdir build-py2 | mkdir build-py2 | ||||||
|  | %endif # with python2 | ||||||
| %if %{with python3} | %if %{with python3} | ||||||
| mkdir build-py3 | mkdir build-py3 | ||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
|  | %if %{with python2} | ||||||
| pushd build-py2 | pushd build-py2 | ||||||
|   %cmake -DPYTHON_DESIRED:FILEPATH=%{__python2} -DWITH_MAN=OFF ../ %{!?with_valgrind:-DDISABLE_VALGRIND=1} %{_cmake_opts} |   %cmake -DPYTHON_DESIRED:FILEPATH=%{__python2} -DWITH_MAN=OFF ../ %{!?with_valgrind:-DDISABLE_VALGRIND=1} %{_cmake_opts} | ||||||
|   %make_build |   %make_build | ||||||
| popd | popd | ||||||
|  | %endif # with python2 | ||||||
| 
 | 
 | ||||||
| %if %{with python3} | %if %{with python3} | ||||||
| pushd build-py3 | pushd build-py3 | ||||||
| @ -169,9 +177,11 @@ ERROR | |||||||
|         exit 1 |         exit 1 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
|  | %if %{with python2} | ||||||
| pushd build-py2 | pushd build-py2 | ||||||
|   make ARGS="-V" test |   make ARGS="-V" test | ||||||
| popd | popd | ||||||
|  | %endif # with python2 | ||||||
| %if %{with python3} | %if %{with python3} | ||||||
| # Run just the Python tests, not all of them, since | # Run just the Python tests, not all of them, since | ||||||
| # we have coverage of the core from the first build | # we have coverage of the core from the first build | ||||||
| @ -181,9 +191,11 @@ popd | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| %install | %install | ||||||
|  | %if %{with python2} | ||||||
| pushd build-py2 | pushd build-py2 | ||||||
|   %make_install |   %make_install | ||||||
| popd | popd | ||||||
|  | %endif # with python2 | ||||||
| %if %{with python3} | %if %{with python3} | ||||||
| pushd build-py3 | pushd build-py3 | ||||||
|   %make_install |   %make_install | ||||||
| @ -210,16 +222,20 @@ popd | |||||||
| %{_libdir}/pkgconfig/%{name}.pc | %{_libdir}/pkgconfig/%{name}.pc | ||||||
| %{_includedir}/%{name}/ | %{_includedir}/%{name}/ | ||||||
| 
 | 
 | ||||||
|  | %if %{with python2} | ||||||
| %files -n python2-%{name} | %files -n python2-%{name} | ||||||
| %{python2_sitearch}/%{name}/ | %{python2_sitearch}/%{name}/ | ||||||
|  | %endif # with python2 | ||||||
| 
 | 
 | ||||||
| %if %{with python3} | %if %{with python3} | ||||||
| %files -n python3-%{name} | %files -n python3-%{name} | ||||||
| %{python3_sitearch}/%{name}/ | %{python3_sitearch}/%{name}/ | ||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
|  | %if %{with python2} | ||||||
| %files -n python2-hawkey | %files -n python2-hawkey | ||||||
| %{python2_sitearch}/hawkey/ | %{python2_sitearch}/hawkey/ | ||||||
|  | %endif # with python2 | ||||||
| 
 | 
 | ||||||
| %if %{with python3} | %if %{with python3} | ||||||
| %files -n python3-hawkey | %files -n python3-hawkey | ||||||
| @ -227,6 +243,15 @@ popd | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Tue Sep 25 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.20.0-1 | ||||||
|  | - [module] Report module solver errors | ||||||
|  | - [module] Enhance module commands and errors | ||||||
|  | - [transaction] Fixed several problems with SWDB | ||||||
|  | - Remove unneeded regex URL tests (RhBug:1598336) | ||||||
|  | - Allow quoted values in ini files (RhBug:1624056) | ||||||
|  | - Filter out not unique set of solver problems (RhBug:1564369) | ||||||
|  | - Disable python2 build for Fedora 30+ | ||||||
|  | 
 | ||||||
| * Tue Sep 18 2018 Adam Williamson <awilliam@redhat.com> - 0.19.1-3 | * Tue Sep 18 2018 Adam Williamson <awilliam@redhat.com> - 0.19.1-3 | ||||||
| - Backport PR #585 for an update crash bug (#1629340) | - Backport PR #585 for an update crash bug (#1629340) | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
								
							| @ -1 +1 @@ | |||||||
| SHA512 (libdnf-0.19.1.tar.gz) = 450c10487e102315ccf1a2d393ba7b3f9717263f36b44e898123b02c8b9ff30b269dbfaa549197dc47e16e0fc9798785b058b0e1c1601e7616232d4e8c6b135e | SHA512 (libdnf-0.20.0.tar.gz) = 70fd838d7683c1017415e7630c072bdd8de70f61efc54b37c1b67887f428ec37550f5eb40843535e76633ccfc290c893a754622ab444a87d1864ec6e405e352c | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user