From c43b0c794cf7fd5ea4348f0340689b81ea3111e2 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jan 21 2020 16:51:28 +0000 Subject: import libdnf-0.39.1-2.el8 --- diff --git a/.gitignore b/.gitignore index 28ed57e..d101600 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libdnf-0.33.0.tar.gz +SOURCES/libdnf-0.39.1.tar.gz diff --git a/.libdnf.metadata b/.libdnf.metadata index 68030a2..4bef024 100644 --- a/.libdnf.metadata +++ b/.libdnf.metadata @@ -1 +1 @@ -50ede2a9751bb06bc2ccb2d42a30fefc0d443191 SOURCES/libdnf-0.33.0.tar.gz +a74a37b029439749298705ff3c1ccfbd0f0fd821 SOURCES/libdnf-0.39.1.tar.gz diff --git a/SOURCES/0001-Set-default-to-skip_if_unavailablefalse-RhBug1679509.patch b/SOURCES/0001-Set-default-to-skip_if_unavailablefalse-RhBug1679509.patch deleted file mode 100644 index b521599..0000000 --- a/SOURCES/0001-Set-default-to-skip_if_unavailablefalse-RhBug1679509.patch +++ /dev/null @@ -1,39 +0,0 @@ -From c04e8362708bbb7d14b7d9a9bdc8fd212af53c59 Mon Sep 17 00:00:00 2001 -From: Jaroslav Mracek -Date: Fri, 15 Mar 2019 14:02:23 +0100 -Subject: [PATCH] Set default to skip_if_unavailable=false (RhBug:1679509) - ---- - libdnf/conf/ConfigRepo.cpp | 2 +- - libdnf/dnf-repo.cpp | 2 ++ - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/libdnf/conf/ConfigRepo.cpp b/libdnf/conf/ConfigRepo.cpp -index e684940..43fe56b 100644 ---- a/libdnf/conf/ConfigRepo.cpp -+++ b/libdnf/conf/ConfigRepo.cpp -@@ -71,7 +71,7 @@ class ConfigRepo::Impl { - OptionChild sslclientkey{masterConfig.sslclientkey()}; - OptionChild deltarpm{masterConfig.deltarpm()}; - OptionChild > deltarpm_percentage{masterConfig.deltarpm_percentage()}; -- OptionBool skip_if_unavailable{true}; -+ OptionBool skip_if_unavailable{false}; - OptionString enabled_metadata{""}; - OptionEnum failovermethod{"priority", {"priority", "roundrobin"}}; - }; -diff --git a/libdnf/dnf-repo.cpp b/libdnf/dnf-repo.cpp -index dfe161d..34bbc8f 100644 ---- a/libdnf/dnf-repo.cpp -+++ b/libdnf/dnf-repo.cpp -@@ -966,6 +966,8 @@ dnf_repo_set_keyfile_data(DnfRepo *repo, GError **error) - priv->required = FALSE; - else - priv->required = TRUE; -+ } else { -+ priv->required = TRUE; - } - - /* cost is optional */ --- -libgit2 0.27.7 - diff --git a/SOURCES/0001-user-agent-Drop-the-whitelist.patch b/SOURCES/0001-user-agent-Drop-the-whitelist.patch new file mode 100644 index 0000000..f897cb6 --- /dev/null +++ b/SOURCES/0001-user-agent-Drop-the-whitelist.patch @@ -0,0 +1,131 @@ +From 1dffef87fc2f07763f64eeabc1ea891e68d23541 Mon Sep 17 00:00:00 2001 +From: Michal Domonkos +Date: Tue, 26 Nov 2019 13:05:49 +0100 +Subject: [PATCH] [user-agent] Drop the whitelist + + - Stop checking os-release(5) data against a hard-coded whitelist and + just use them as they are, to avoid a maintenance burden in the + future (see [1] for details) + + - Clean up the getUserAgent() function a bit + +Note that, by removing the whitelist, there's a risk of leaking a +"unique" value from the os-release file now, but a rather small one. + +[1] https://github.com/rpm-software-management/libdnf/pull/851 +--- + libdnf/utils/os-release.cpp | 58 ++++++++++++++++++++-------------------------------------- + libdnf/utils/os-release.hpp | 7 ++----- + 2 files changed, 22 insertions(+), 43 deletions(-) + +diff --git a/libdnf/utils/os-release.cpp b/libdnf/utils/os-release.cpp +index 57be110..1d8a95b 100644 +--- a/libdnf/utils/os-release.cpp ++++ b/libdnf/utils/os-release.cpp +@@ -36,17 +36,8 @@ + namespace libdnf { + + // sorted by precedence (see os-release(5) for details) +-static const std::array paths = {"/etc/os-release", "/usr/lib/os-release"}; +-// whitelists used for sanity-checking the os-release data when constructing a +-// User-Agent string (to avoid reporting rare systems or platforms that could +-// be tracked) +-static const std::map> distros = { +- // taken from the {fedora,generic}-release.spec files +- { "Fedora", { "cinnamon", "cloud", "container", "coreos", "generic", "iot", +- "kde", "matecompiz", "server", "silverblue", "snappy", "soas", +- "workstation", "xfce" } }, +-}; +-std::array canons = { "Linux" }; ++static const std::array ++paths = {"/etc/os-release", "/usr/lib/os-release"}; + + std::map getOsReleaseData() + { +@@ -118,47 +109,38 @@ std::string getUserAgent(const std::map & osReleaseDat + { + std::ostringstream oss; + auto logger(Log::getLogger()); +- std::string msg = "os-release: falling back to basic User-Agent"; + +- // start with the basic libdnf string + oss << USER_AGENT; ++ std::string fallback = oss.str(); + +- // mandatory OS data (bail out if missing or unknown) + if (!osReleaseData.count("NAME") || !osReleaseData.count("VERSION_ID")) { +- logger->debug(tfm::format("%s: missing NAME or VERSION_ID", msg)); +- return oss.str(); ++ logger->debug(tfm::format( ++ "User-Agent: falling back to '%s': missing NAME or VERSION_ID", ++ fallback ++ )); ++ return fallback; + } + std::string name = osReleaseData.at("NAME"); + std::string version = osReleaseData.at("VERSION_ID"); +- if (!distros.count(name)) { +- logger->debug(tfm::format("%s: distro %s not whitelisted", msg, name)); +- return oss.str(); +- } ++ std::string variant = "generic"; ++ if (osReleaseData.count("VARIANT_ID")) ++ variant = osReleaseData.at("VARIANT_ID"); + +- // mandatory platform data from RPM (bail out if missing or unknown) + std::string canon = getCanonOs(); + std::string arch = getBaseArch(); +- if (canon.empty() || arch.empty() +- || std::find(canons.begin(), canons.end(), canon) == canons.end()) { +- logger->debug(tfm::format("%s: could not detect canonical OS or basearch", msg)); +- return oss.str(); +- } +- +- // optional OS data (use fallback values if missing or unknown) +- std::string variant = "generic"; +- auto list = distros.at(name); +- if (osReleaseData.count("VARIANT_ID")) { +- std::string value = osReleaseData.at("VARIANT_ID"); +- if (std::find(list.begin(), list.end(), value) != list.end()) +- variant = value; ++ if (canon.empty() || arch.empty()) { ++ logger->debug(tfm::format( ++ "User-Agent: falling back to '%s': could not detect OS or basearch", ++ fallback ++ )); ++ return fallback; + } + +- // good to go! +- oss << " (" << name << " " << version << "; " << variant << "; " +- << canon << "." << arch << ")"; ++ oss << " (" << name << " " << version << "; " << variant << "; " << canon ++ << "." << arch << ")"; + + std::string result = oss.str(); +- logger->debug(tfm::format("os-release: User-Agent constructed: %s", result)); ++ logger->debug(tfm::format("User-Agent: constructed: '%s'", result)); + return result; + } + +diff --git a/libdnf/utils/os-release.hpp b/libdnf/utils/os-release.hpp +index ef4d14f..e7b24a7 100644 +--- a/libdnf/utils/os-release.hpp ++++ b/libdnf/utils/os-release.hpp +@@ -50,11 +50,8 @@ getOsReleaseData(); + * libdnf (NAME VERSION_ID; VARIANT_ID; OS.BASEARCH) + * + * where NAME, VERSION_ID and VARIANT_ID are OS identifiers read from the +- * passed os-release data, and OS and BASEARCH (if found) are the canonical OS +- * name and base architecture, respectively, detected using RPM. +- * +- * Note that the OS part (enclosed in parentheses) will only be included for +- * whitelisted values. ++ * passed os-release data, and OS and BASEARCH are the canonical OS name and ++ * base architecture, respectively, detected using RPM. + * + * @param osReleaseData a map containing os-release data (will be loaded from + * disk if not specified) +-- +libgit2 0.28.2 + diff --git a/SOURCES/0002-Add-configuration-option-skip_if_unavailable-RhBug1689931.patch b/SOURCES/0002-Add-configuration-option-skip_if_unavailable-RhBug1689931.patch deleted file mode 100644 index 7f59740..0000000 --- a/SOURCES/0002-Add-configuration-option-skip_if_unavailable-RhBug1689931.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 7e8a01dc9408cc48700f3d2a75cff67b3364d0c5 Mon Sep 17 00:00:00 2001 -From: Jaroslav Mracek -Date: Wed, 20 Mar 2019 09:06:15 +0100 -Subject: [PATCH] Add configuration option skip_if_unavailable (RhBug:1689931) - ---- - libdnf/conf/ConfigMain.cpp | 3 +++ - libdnf/conf/ConfigMain.hpp | 1 + - libdnf/conf/ConfigRepo.cpp | 4 ++-- - libdnf/conf/ConfigRepo.hpp | 2 +- - 4 files changed, 7 insertions(+), 3 deletions(-) - -diff --git a/libdnf/conf/ConfigMain.cpp b/libdnf/conf/ConfigMain.cpp -index 2fc1f11..39cf8ab 100644 ---- a/libdnf/conf/ConfigMain.cpp -+++ b/libdnf/conf/ConfigMain.cpp -@@ -333,6 +333,7 @@ class ConfigMain::Impl { - OptionString sslclientkey{""}; - OptionBool deltarpm{true}; - OptionNumber deltarpm_percentage{75}; -+ OptionBool skip_if_unavailable{false}; - }; - - ConfigMain::Impl::Impl(Config & owner) -@@ -469,6 +470,7 @@ ConfigMain::Impl::Impl(Config & owner) - owner.optBinds().add("sslclientkey", sslclientkey); - owner.optBinds().add("deltarpm", deltarpm); - owner.optBinds().add("deltarpm_percentage", deltarpm_percentage); -+ owner.optBinds().add("skip_if_unavailable", skip_if_unavailable); - } - - ConfigMain::ConfigMain() { pImpl = std::unique_ptr(new Impl(*this)); } -@@ -572,5 +574,6 @@ OptionString & ConfigMain::sslclientcert() { return pImpl->sslclientcert; } - OptionString & ConfigMain::sslclientkey() { return pImpl->sslclientkey; } - OptionBool & ConfigMain::deltarpm() { return pImpl->deltarpm; } - OptionNumber & ConfigMain::deltarpm_percentage() { return pImpl->deltarpm_percentage; } -+OptionBool & ConfigMain::skip_if_unavailable() { return pImpl->skip_if_unavailable; } - - } -diff --git a/libdnf/conf/ConfigMain.hpp b/libdnf/conf/ConfigMain.hpp -index 331cdec..c2ead25 100644 ---- a/libdnf/conf/ConfigMain.hpp -+++ b/libdnf/conf/ConfigMain.hpp -@@ -151,6 +151,7 @@ public: - OptionString & sslclientkey(); - OptionBool & deltarpm(); - OptionNumber & deltarpm_percentage(); -+ OptionBool & skip_if_unavailable(); - - private: - class Impl; -diff --git a/libdnf/conf/ConfigRepo.cpp b/libdnf/conf/ConfigRepo.cpp -index 43fe56b..e86cdff 100644 ---- a/libdnf/conf/ConfigRepo.cpp -+++ b/libdnf/conf/ConfigRepo.cpp -@@ -71,7 +71,7 @@ class ConfigRepo::Impl { - OptionChild sslclientkey{masterConfig.sslclientkey()}; - OptionChild deltarpm{masterConfig.deltarpm()}; - OptionChild > deltarpm_percentage{masterConfig.deltarpm_percentage()}; -- OptionBool skip_if_unavailable{false}; -+ OptionChild skip_if_unavailable{masterConfig.skip_if_unavailable()}; - OptionString enabled_metadata{""}; - OptionEnum failovermethod{"priority", {"priority", "roundrobin"}}; - }; -@@ -195,7 +195,7 @@ OptionChild & ConfigRepo::sslclientcert() { return pImpl->sslclien - OptionChild & ConfigRepo::sslclientkey() { return pImpl->sslclientkey; } - OptionChild & ConfigRepo::deltarpm() { return pImpl->deltarpm; } - OptionChild > & ConfigRepo::deltarpm_percentage() { return pImpl->deltarpm_percentage; } --OptionBool & ConfigRepo::skip_if_unavailable() { return pImpl->skip_if_unavailable; } -+OptionChild & ConfigRepo::skip_if_unavailable() { return pImpl->skip_if_unavailable; } - OptionString & ConfigRepo::enabled_metadata() { return pImpl->enabled_metadata; } - OptionEnum & ConfigRepo::failovermethod() { return pImpl->failovermethod; } - -diff --git a/libdnf/conf/ConfigRepo.hpp b/libdnf/conf/ConfigRepo.hpp -index c3e992b..a47030b 100644 ---- a/libdnf/conf/ConfigRepo.hpp -+++ b/libdnf/conf/ConfigRepo.hpp -@@ -85,7 +85,7 @@ public: - OptionChild & sslclientkey(); - OptionChild & deltarpm(); - OptionChild > & deltarpm_percentage(); -- OptionBool & skip_if_unavailable(); -+ OptionChild & skip_if_unavailable(); - // option recognized by other tools, e.g. gnome-software, but unused in dnf - OptionString & enabled_metadata(); - // yum compatibility options --- -libgit2 0.27.7 - diff --git a/SPECS/libdnf.spec b/SPECS/libdnf.spec index 7c9d294..2ccbcb6 100644 --- a/SPECS/libdnf.spec +++ b/SPECS/libdnf.spec @@ -1,9 +1,20 @@ -%global libsolv_version 0.7.4-1 +%global libsolv_version 0.7.7 %global libmodulemd_version 1.6.1 -%global librepo_version 1.9.5 -%global dnf_conflict 4.2.5 +%global librepo_version 1.11.0 +%global dnf_conflict 4.2.13 %global swig_version 3.0.12 +# set sphinx package name according to distro +%global requires_python2_sphinx python2-sphinx +%global requires_python3_sphinx python3-sphinx +%if 0%{?rhel} == 7 + %global requires_python2_sphinx python-sphinx +%endif +%if 0%{?suse_version} + %global requires_python2_sphinx python2-Sphinx + %global requires_python3_sphinx python3-Sphinx +%endif + %bcond_with valgrind # Do not build bindings for python3 for RHEL <= 7 @@ -26,19 +37,24 @@ %bcond_with rhsm %endif +%if 0%{?rhel} +%bcond_with zchunk +%else +%bcond_without zchunk +%endif + %global _cmake_opts \\\ -DENABLE_RHSM_SUPPORT=%{?with_rhsm:ON}%{!?with_rhsm:OFF} \\\ %{nil} Name: libdnf -Version: 0.33.0 -Release: 1%{?dist} +Version: 0.39.1 +Release: 2%{?dist} Summary: Library providing simplified C and Python API to libsolv License: LGPLv2+ URL: https://github.com/rpm-software-management/libdnf Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz -Patch0001: 0001-Set-default-to-skip_if_unavailablefalse-RhBug1679509.patch -Patch0002: 0002-Add-configuration-option-skip_if_unavailable-RhBug1689931.patch +Patch1: 0001-user-agent-Drop-the-whitelist.patch BuildRequires: cmake BuildRequires: gcc @@ -55,6 +71,9 @@ BuildRequires: rpm-devel >= 4.11.0 %if %{with rhsm} BuildRequires: pkgconfig(librhsm) >= 0.0.3 %endif +%if %{with zchunk} +BuildRequires: pkgconfig(zck) >= 0.9.11 +%endif BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(json-c) BuildRequires: pkgconfig(cppunit) @@ -68,6 +87,16 @@ Requires: libmodulemd%{?_isa} >= %{libmodulemd_version} Requires: libsolv%{?_isa} >= %{libsolv_version} Requires: librepo%{?_isa} >= %{librepo_version} +%if %{without python2} +# Obsoleted from here so we can track the fast growing version easily. +# We intentionally only obsolete and not provide, this is a broken upgrade +# prevention, not providing the removed functionality. +Obsoletes: python2-%{name} < %{version}-%{release} +Obsoletes: python2-hawkey < %{version}-%{release} +Obsoletes: python2-hawkey-debuginfo < %{version}-%{release} +Obsoletes: python2-libdnf-debuginfo < %{version}-%{release} +%endif + %description A Library providing simplified C and Python API to libsolv. @@ -85,11 +114,12 @@ Development files for %{name}. Summary: Python 2 bindings for the libdnf library. Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: python2-devel +%if !0%{?mageia} +BuildRequires: %{requires_python2_sphinx} +%endif %if 0%{?rhel} == 7 -BuildRequires: python-sphinx BuildRequires: swig3 >= %{swig_version} %else -BuildRequires: python2-sphinx BuildRequires: swig >= %{swig_version} %endif @@ -103,7 +133,7 @@ Python 2 bindings for the libdnf library. Summary: Python 3 bindings for the libdnf library. Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: python3-devel -BuildRequires: python3-sphinx +BuildRequires: %{requires_python3_sphinx} BuildRequires: swig >= %{swig_version} %description -n python3-%{name} @@ -161,39 +191,49 @@ mkdir build-py3 %build %if %{with python2} pushd build-py2 - %cmake -DPYTHON_DESIRED:FILEPATH=%{__python2} -DWITH_MAN=OFF ../ %{!?with_valgrind:-DDISABLE_VALGRIND=1} %{_cmake_opts} + %if 0%{?mageia} || 0%{?suse_version} + cd .. + %define _cmake_builddir build-py2 + %define __builddir build-py2 + %endif + %cmake -DPYTHON_DESIRED:FILEPATH=%{__python2} -DWITH_MAN=OFF ../ %{!?with_zchunk:-DWITH_ZCHUNK=OFF} %{!?with_valgrind:-DDISABLE_VALGRIND=1} %{_cmake_opts} %make_build popd %endif # with python2 %if %{with python3} pushd build-py3 - %cmake -DPYTHON_DESIRED:FILEPATH=%{__python3} -DWITH_GIR=0 -DWITH_MAN=0 -Dgtkdoc=0 ../ %{!?with_valgrind:-DDISABLE_VALGRIND=1} %{_cmake_opts} + %if 0%{?mageia} || 0%{?suse_version} + cd .. + %define _cmake_builddir build-py3 + %define __builddir build-py3 + %endif + %cmake -DPYTHON_DESIRED:FILEPATH=%{__python3} -DWITH_GIR=0 -DWITH_MAN=0 -Dgtkdoc=0 ../ %{!?with_zchunk:-DWITH_ZCHUNK=OFF} %{!?with_valgrind:-DDISABLE_VALGRIND=1} %{_cmake_opts} %make_build popd %endif %check -if [ "$(id -u)" == "0" ] ; then - cat <&2 -Package tests cannot be run under superuser account. -Please build the package as non-root user. -ERROR - exit 1 -fi - %if %{with python2} pushd build-py2 make ARGS="-V" test popd %endif # with python2 %if %{with python3} -# Run just the Python tests, not all of them, since -# we have coverage of the core from the first build +# If we didn't run the general tests yet, do it now. +%if %{without python2} +pushd build-py3 + make ARGS="-V" test +popd +%else +# Otherwise, run just the Python tests, not all of +# them, since we have coverage of the core from the +# first build pushd build-py3/python/hawkey/tests make ARGS="-V" test popd %endif +%endif %install %if %{with python2} @@ -209,7 +249,7 @@ popd %find_lang %{name} -%if 0%{?rhel} && 0%{?rhel} <= 7 +%if (0%{?rhel} && 0%{?rhel} <= 7) || 0%{?suse_version} %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %else @@ -220,6 +260,8 @@ popd %license COPYING %doc README.md AUTHORS %{_libdir}/%{name}.so.* +%dir %{_libdir}/libdnf/ +%dir %{_libdir}/libdnf/plugins/ %{_libdir}/libdnf/plugins/README %files devel @@ -249,6 +291,99 @@ popd %endif %changelog +* Thu Dec 12 2019 Pavla Kratochvilova - 0.39.1-2 +- [user-agent] Stop checking os-release(5) data against a hard-coded whitelist (RhBug:1777255) + +* Mon Nov 25 2019 Ales Matej - 0.39.1-1 +- Update to 0.39.1 +- Report reason how package was excluded (RhBug:1649754) +- Additional Arm detection improvements (RhBug:1691430) +- Set skip_if_unavailable for media repos to skip their update (RhBug:1716067) +- Add support of xml:base for remote and local url in context (RhBug:1734350,1717865) + +* Wed Nov 13 2019 Ales Matej - 0.38.1-1 +- Update to 0.38.1 +- Change the best option default to false +- Use more descriptive message when failed to retrieve GPG key (RhBug:1605117) +- Add removeMetadataTypeFromDownload function to the API +- Context part of libdnf can now read vars (urlvars) from dirs and environment +- Throw exception immediately if file cannot be opened +- Add test when there is no primary metadata in compatible format (RhBug:1744960) +- Various improvements to countme features +- Don't abort on rpmdb checksum calculation failure +- Enable module dependency trees when using set_modules_enabled_by_pkgset() (RhBug:1762314) +- Resolve problem with --best and search in provides (RhBug:1737469) +- New method "Query::filterSubject()", replaces Solution::getBestSolution() +- The Solution class was removed +- Add query argument into get_best_query and get_best_solution +- Add module reset function into dnf_context +- Add method to get all repository metadata locations +- Catch NoModuleException in case of not existent value was used in persistor (RhBug:1761773) + +* Tue Oct 22 2019 Ales Matej - 0.35.5-1 +- Update to 0.35.5 +- Make libdnf own its plugin directory (RhBug:1714265) +- Set priority of dnf.conf.d drop-ins +- Fix toString() to not insert [] (RhBug:1584442) +- Fix handling large number of filenames on input (RhBug:1690915) +- Detect armv7 with crypto extension only on arm version >= 8 +- A new standardized User-Agent field consisting of the libdnf and OS version + (including the variant) (RhBug:1156007) +- Add basic countme support (RhBug:1647454) +- Fix crash in PackageKit (RhBug:1636803) +- Do not create @System.solv files (RhBug:1707995) +- Set LRO_CACHEDIR so zchunk works again (RhBug:1739867) +- Improve detection of extras packages by comparing (name, arch) pair instead + of full NEVRA (RhBuh:1684517) +- Improve handling multilib packages in the history command (RhBug:1728637) +- Repo download: use full error description into the exception text (RhBug:1741442) +- Properly close hawkey.log (RhBug:1594016) +- Fix dnf updateinfo --update to not list advisories for packages updatable + only from non-enabled modules +- Apply modular filtering by package name (RhBug:1702729) + +* Wed Oct 16 2019 Pavla Kratochvilova - 0.35.1-9 +- Prevent reinstalling modified packages with same NEVRA (RhBug:1728252,1644241,1760825) + +* Fri Sep 06 2019 Marek Blaha - 0.35.1-8 +- Enhanced fix of moving directories in minimal container (RhBug:1700341) + +* Thu Sep 05 2019 Jaroslav Mracek - 0.35.1-7 +- Remove patch to not fail when installing modular RPMs without modular metadata + +* Thu Sep 05 2019 Marek Blaha - 0.35.1-6 +- Fix moving directories in minimal container (RhBug:1700341) + +* Tue Aug 06 2019 Pavla Kratochvilova - 0.35.1-5 +- Add suport for query sequence conversions + +* Thu Aug 01 2019 Pavla Kratochvilova - 0.35.1-4 +- Fix typo in error message (RhBug:1726661) +- Update localizations from zanata (RhBug:1689991) +- Don't disable nonexistent but required repositories (RhBug:1689331) +- Ignore trailing blank lines of multiline value (RhBug:1722493) +- Re-size includes map before re-computation (RhBug:1725213) + +* Tue Jul 16 2019 Marek Blaha - 0.35.1-3 +- Fix attaching and detaching of libsolvRepo and repo_internalize_trigger() + (RhBug:1730224) + +* Thu Jul 04 2019 Pavla Kratochvilova - 0.35.1-2 +- Add patch to not fail when installing modular RPMs without modular metadata + +* Tue Jun 11 2019 Pavla Kratochvilova - 0.35.1-1 +- Update to 0.35.1 +- Skip invalid key files in "/etc/pki/rpm-gpg" with warning (RhBug:1644040) +- Enable timestamp preserving for downloaded data (RhBug:1688537) +- Fix 'database is locked' error (RhBug:1631533) +- Replace the 'Failed to synchronize cache' message (RhBug:1712055) +- Fix 'no such table: main.trans_cmdline' error (RhBug:1596540) +- Fix: skip_if_unavailable=true for local repositories (RhBug:1716313) +- Add support of modular FailSafe (RhBug:1623128) +- Add support of DNF main config file in context; used by PackageKit and + microdnf (RhBug:1689331) +- Exit gpg-agent after repokey import (RhBug:1650266) + * Mon May 13 2019 Pavla Kratochvilova - 0.33.0-1 - Update to 0.33.0 - Enhance sorting for module list (RhBug:1590358)