# By default, dotests are run.
# No tests: rpmbuild -ba --without dotests *.spec
%bcond_with dotests

# Use 3.8 - 3.9 or 3.9 - 3.10
%global python3_version     3.12
%global python3_version_not 3.10

%bcond_without with_python3

%bcond_without with_zchunk

# What is RHSM ?
%global _cmake_opts \\\
    -DENABLE_RHSM_SUPPORT=%{?with_rhsm:ON}%{!?with_rhsm:OFF} \\\
    %{nil}


%global libsolv_version 0.7.35
%global libsolv_version_dy 0.7.35-32_50
%global libmodulemd_version 2.15.2
%global libmodulemd_version_dy 2.15.2-100
%global librepo_version 1.20.0
%global librepo_version_dy 1.20.0-100
%global libzstd_version 1.5.7
%global libzstd_version_dy 1.5.7-100
%global dnf_conflict 4.2.17
%global swig_version 4.3.0
%global libdnf_major_version 0
%global libdnf_minor_version 74 
%global libdnf_micro_version 0

Name:           libdnf
Version:        %{libdnf_major_version}.%{libdnf_minor_version}.%{libdnf_micro_version}
#Release:        0.2beta_static
Release:	32_52
Summary:        Library providing simplified C and Python API to libsolv
License:        LGPLv2+, Public Domain
#strcasestr from public domain 
# https://unixpapa.com/incnote/string.html
URL:            https://github.com/rpm-software-management/libdnf
Source0:        %{url}/archive/%{version}/%{name}-%{version}.tar.gz

Patch0:		libdnf-0.74.0-aix_dnf_repo.patch
Patch1:		libdnf-0.74.0-dnf_repo.patch
#Patch2:	libdnf-0.74.0-mkdtemp.patch
Patch2:		libdnf-0.74.0-yum_sqlite_history.patch
Patch3:		libdnf-0.74.0-group_repo.patch
#Patch5:		libdnf-0.74.0-check.patch
#Patch6:		libdnf-0.74.0-CMake.patch
# Work-around
#Patch7:		libdnf-0.74.0-skipBzeroAsprintf.patch
Patch4:     libdnf-0.74.0-tests.patch
# One of newest python module _error.so if exporting libdnf_error.
# But other modules to resolve this symbol we need to enable runtime linking.
# runtime linking can cause issues if we are building with two different versions
# of openssl library libcrypto.a.
# As a workaround export this symbol fro the main libdnf.a library.
# One problem with this approach is that all the symbol from libpython reference will be
# added to libdnf.a.
Patch5:     libdnf-0.74.0-export_libdnf_error_without_runtmelinking.patch
Patch6:     libdnf-0.74.0-zchunk.patch   
Patch7:		libdnf-0.74.0-repo-etc-paths.patch 
Patch8:		libdnf-0.74.0-gnupg_opt_path.patch
#Patch7:     libdnf-0.74.0-python.patch
 
BuildRequires:  cmake >= 4.0.3
BuildRequires:  gcc
BuildRequires:  gcc-c++
BuildRequires:  libsolv-devel >= %{libsolv_version}
BuildRequires:  librepo-devel >= %{librepo_version}
BuildRequires:  check-devel >= 0.13.0
BuildRequires:  sed
%if %{with with_valgrind}
BuildRequires:  valgrind
%endif
BuildRequires:  glib2-devel >= 2.86.0
#BuildRequires:  pkgconfig(gtk-doc)
BuildRequires:  rpm-devel >= 4.15.1
%if %{with with_rhsm}
BuildRequires:  pkgconfig(librhsm) >= 0.0.3
%endif
%if %{with with_zchunk}
BuildRequires:  zchunk-devel >= 1.5.2
%endif
BuildRequires:  sqlite-devel >= 3.45.3
BuildRequires:  cppunit
#BuildRequires:  pkgconfig(cppunit)
#BuildRequires:  pkgconfig(libcrypto)
BuildRequires:  libmodulemd-devel >= 2.15.0
BuildRequires:  libsmartcols >= 2.41
BuildRequires:  gettext >= 0.21
BuildRequires:  gpgme-devel >= 1.24.3
#BuildRequires:  popt >= 1.16-3
BuildRequires:  libffi-devel >= 3.4.4
BuildRequires:  json-c-devel >= 0.17
BuildRequires:  curl-devel >=  8.9.1
BuildRequires:  gettext-devel >= 0.21
BuildRequires:  popt >= 1.19
BuildRequires:  libsmartcols-devel >= 2.41
BuildRequires:	libassuan >= 2.5.6
BuildRequires:	libgpg-error >= 1.51
BuildRequires:	zlib >= 1.2.13
BuildRequires:	zlib-devel >= 1.2.13
BuildRequires:  libzstd-devel >= %{libzstd_version}

Requires:       libmodulemd%{?_isa} >= %{libmodulemd_version_dy}
Requires:       libsolv%{?_isa} >= %{libsolv_version_dy}
Requires:       librepo%{?_isa} >= %{librepo_version_dy}
Requires:	libzstd >= %{libzstd_version_dy}
#Requires:	python%{python3_version} >= %{python3_version}.11
#Requires:	libassuan >= 2.5.6
Requires:	glib2 >= 2.86.0
Requires:	libgpg-error >= 1.51
Requires:	gettext >= 0.21
Requires:	libiconv >= 1.17
Requires:	json-c >= 0.17
Requires:	rpm-python3 >= 4.15.1-32_2
Requires:	libsmartcols >= 2.41-100
Requires:	sqlite >= 3.45.3
Requires:	gpgme >= 1.24.3-100
Requires:	zlib >= 1.2.13
Requires:	check >= 0.13.0
Requires:	libffi >= 3.4.4
Requires:	libgcc >= 10.3.0
Requires:	libstdc++ >= 10.3.0


%description
A Library providing simplified C and Python API to libsolv.

%package devel
Summary:        Development files for %{name}
Requires:       %{name}%{?_isa} = %{version}-%{release}
Requires:       libsolv-devel%{?_isa} >= %{libsolv_version_dy}

%description devel
Development files for %{name}.

%if %{with with_python3}
%package -n python%{python3_version}-%{name}
%{?python_provide:%python_provide python3-%{name}}
Summary:        Python 3 bindings for the libdnf library.
Requires:       %{name}%{?_isa} = %{version}-%{release}
BuildRequires:  python%{python3_version}-devel >= %{python3_version}.11
#BuildRequires:  %{requires_python3_sphinx}
BuildRequires:  swig >= %{swig_version}
Requires:  python%{python3_version} >= %{python3_version}.11
Obsoletes: python3.9-%{name} <= 0.39.1-32_52

%description -n python%{python3_version}-%{name}
Python 3 bindings for the libdnf library.
%endif

%if %{with with_python3}
%package -n python3-%{name}
%{?python_provide:%python_provide python3-%{name}}
Summary:        Meta package for Python 3 bindings for the libdnf library.
Requires:	python%{python3_version}-%{name} = %{version}-%{release}
Requires:	python3 >= %{python3_version}.11

%description -n python3-%{name}
Meta package for Python 3 bindings for the libdnf library.
%endif

%if %{with with_python3}
%package -n python%{python3_version}-hawkey
Summary:        Python 3 bindings for the hawkey library
%{?python_provide:%python_provide python3-hawkey}
BuildRequires:  python%{python3_version}-devel
#BuildRequires:  python3-nose
Requires:       %{name}%{?_isa} = %{version}-%{release}
Requires:       python%{python3_version}-%{name} = %{version}-%{release}
# Fix problem with hawkey - dnf version incompatibility
# Can be deleted for distros where only python3-dnf >= 2.0.0
Conflicts:      python3-dnf < %{dnf_conflict}
# Obsoletes F27 packages
Obsoletes:      platform-python-hawkey < %{version}-%{release}
Obsoletes:      python3.9-hawkey <= 0.39.1-32_52

%description -n python%{python3_version}-hawkey
Python 3 bindings for the hawkey library.
%endif

%if %{with with_python3}
%package -n python3-hawkey
Summary:        Meta package for Python 3 bindings for the hawkey library
%{?python_provide:%python_provide python3-hawkey}
Requires:       python%{python3_version}-hawkey = %{version}-%{release}
Requires:       python3 >= %{python3_version}.11

%description -n python3-hawkey
Meta package for Python 3 bindings for the hawkey library.
%endif

%define         _libdir %{_prefix}/lib

%define is_python %(test -e /opt/freeware/libexec/python%{python3_version}_32 && echo 1 || echo 0)
%if %{is_python}
%define python3_sitelib %(/opt/freeware/libexec/python%{python3_version}_32 -c "from sysconfig import get_paths; print(get_paths()['purelib'])")
%define python3_libdir %{_libdir}
%endif

%prep
%autosetup -p1
%if %{with with_python3}
mkdir build-py3
%endif
echo "python3_sitelib: %{python3_sitelib}"
echo "python3_libdir : %{python3_libdir}"


%build
# For Swig during cmake
ulimit -d unlimited

export CC=gcc
export CXX=g++

%if %{with with_python3}
#cd build-py3
#PTIM="-O2"
#OPTIM="-O0 -g"
#OPTIM="-O0 -gdwarf"
export CFLAGS="${OPTIM} -fPIC -fpermissive -D_LARGE_FILES -pthread -D_XOPEN_SOURCE=700 -D_GETDELIM -Wdeprecated-declarations -Wint-to-pointer-cast -I/home/laxmi/rpmbuild/BUILD/libdnf-0.74.0/libdnf/conf/"
export CXXFLAGS="${OPTIM} -fPIC -fpermissive -D_LARGE_FILES -pthread -D_XOPEN_SOURCE=700 -D_GETDELIM -Wdeprecated-declarations -Wint-to-pointer-cast -I/home/laxmi/rpmbuild/BUILD/libdnf-0.74.0/libdnf/conf/"
export LDFLAGS="-Wl,-blibpath:/opt/freeware/lib:/usr/opt/rpm/lib:/opt/freeware/lib:/usr/lib:/lib -I/opt/freeware/include -L/opt/freeware/lib -lpython3.12 -L/opt/freeware/lib -lz -lzstd -lgmodule-2.0 -lffi -liconv -lsqlite3 -L/usr/opt/rpm/lib -lsmartcols -lmodulemd -lcrypto -lrepo -lcheck /usr/opt/rpm/lib/librpm.a /usr/opt/rpm/lib/librpmio.a"

export PKG_CONFIG_PATH=/opt/freeware/lib/pkgconfig:/usr/lib/pkgconfig
cmake -B build-py3 \
	-DBUILD_SHARED_LIBS:BOOL=ON \
        -DPYTHON_EXECUTABLE=/opt/freeware/libexec/python%{python3_version}_32 \
	-DPYTHON_INCLUDE_DIR=/opt/freeware/include/python%{python3_version} \
	-DPYTHON_LIBRARY=/opt/freeware/lib/libpython%{python3_version}.a \
	-DPYTHON_INCLUDE_PATH=/opt/freeware/include/python%{python3_version} \
	-DENABLE_DOCS=OFF \
	-DCMAKE_INSTALL_PREFIX=/opt/freeware \
	-DPYTHON_DESIRED="3" \
        -DPYTHON_VERSION_MAJOR="3" \
	-DWITH_GTKDOC=OFF \
	-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
	-DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \
	-DWITH_GIR=0 \
	-DWITH_MAN=0 \
	-Dgtkdoc=0 \
	-DDISABLE_VALGRIND=1 \
	-DBUILD_DOC=OFF \
	-DENABLE_RHSM_SUPPORT=OFF \
	-DWITH_SANITIZERS=OFF \
	-DLIBDNF_MAJOR_VERSION=%{libdnf_major_version} \
	-DLIBDNF_MINOR_VERSION=%{libdnf_minor_version} \
	-DLIBDNF_MICRO_VERSION=%{libdnf_micro_version} \
	-DWITH_HTML=OFF

#gmake VERBOSE=1 -j8
cmake --build build-py3 -j8

%endif


%if %{without dotests}
echo "*** Skipping tests"
exit 0
%endif # without dotests

%if %{with with_python3}
# If we didn't run the general tests yet, do it now.
#cd build-py3
(gmake ARGS="-V" test || true)
%endif

%install
%if %{with with_python3}
cd build-py3
gmake VERBOSE=1 install DESTDIR=${RPM_BUILD_ROOT}

cd ${RPM_BUILD_ROOT}/%{python3_libdir}/python%{python3_version}/site-packages/hawkey
  ar -x _hawkey.a _hawkey.so
  #rm _hawkey.a          # Needed at install by python3-hawkey-0.63.1-1.ppc

# Python is not able to handle .a files. .so files instead
#cd ${RPM_BUILD_ROOT}/%{python3_libdir}/python%{python3_version}/site-packages/libdnf
#  for a in _common_types _conf _error _module _repo _smartcols _transaction _utils
#  do
#    ar -x $a.a
#    if [ $a != "_error" ]
#    then
#	      # Both _error.a and _error.so are needed !
#      rm $a.a
#    fi
#  done
%endif

%files
%defattr(-,root,system,-)
%license COPYING
%doc README.md AUTHORS
%{_libdir}/%{name}.a
%dir %{_libdir}/libdnf/
%dir %{_libdir}/libdnf/plugins/
%{_libdir}/libdnf/plugins/README

%files devel
%defattr(-,root,system,-)
#%doc %{_datadir}/gtk-doc/html/%{name}/
#%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_includedir}/%{name}/

%if %{with with_python3}
%files -n python%{python3_version}-%{name}
%defattr(-,root,system,-)
%{python3_sitelib}/%{name}/
%endif

%if %{with with_python3}
%files -n python3-%{name}
%endif

%if %{with with_python3}
%files -n python%{python3_version}-hawkey
%defattr(-,root,system,-)
%{python3_sitelib}/hawkey/
%endif

%if %{with with_python3}
%files -n python3-hawkey
%endif

%changelog
* Wed Nov 19 2025 Lakshmi Surekha Kovvuri <Lakshmi.Kovvuri@ibm.com> - 0.74.0-32_52
- Add /opt/freeware/bin to PATH for gnupg to export GPG public key.
 
* Mon Nov 17 2025 Lakshmi Surekha Kovvuri <Lakshmi.Kovvuri@ibm.com> - 0.74.0-32_51
- Changing default repo paths from /etc/... to /opt/freeware/etc/...
 
* Sun Oct 19 2025 Lakshmi Surekha Kovvuri <Lakshmi.Kovvuri@ibm.com> - 0.74.0-32_50
- Update to latest version 0.74.0.
- Built with Python3.12.

* Mon Jan 23 2023 Sangamesh Mallayya <smallayy@in.ibm.com> - 0.39.1-32_52
- Rebuild with python3.9.
- Rebuild with librpm*.a instead of .so.
- Update libsolv, libgcc, libstdc++, rpm-python3 depndencies.

* Fri Nov 11 2022 Sangamesh Mallayya <smallayy@in.ibm.com> - 0.39.1-32_51
- Rebuild with openssl-1.1.2.

* Tue Mar 1 2022 Sangamesh Mallayya <smallayy@in.ibm.com> - 0.39.1-32_50
- Use Release as 32_50 so that 32bit  static dependencies can be
- update to this dynamic version.

* Mon Jul 12 2021 Sangamesh Mallayya <smallayy@in.ibm.com> - 0.39.1-32_1
- Rebuild with 32_ release to differentiate between 64-bit rpm.

- Add check if old version is installed. This check to be removed in
  next update.

* Tue Jan 21 2020 Sangamesh Mallayya <smallayy@in.ibm.com> 0.39.1-1
- Initial port to AIX.
 
* Wed Jan 15 2020 Ales Matej <amatej@redhat.com> - 0.43.1-1
- Allow excluding packages with "excludepkgs" and globs
- Add two new query filters: obsoletes_by_priority, upgrades_by_priority
- [context] Use installonly_limit from global config (RhBug:1256108)
- [context] Add API to get/set "install_weak_deps"
- [context] Add wildcard support for repo_id in dnf_context_repo_enable/disable (RhBug:1781420)
- [context] Adds support for includepkgs in repository configuration.
- [context] Adds support for excludepkgs, exclude, includepkgs, and disable_excludes in main configuration.
- [context] Added function dnf_transaction_set_dont_solve_goal
- [context] Added functions dnf_context_get/set_config_file_path
- [context] Respect "plugins" global conf value
- [context] Add API to disable/enable plugins

* Fri Nov 29 2019 Ales Matej <amatej@redhat.com> - 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)
- Handle NoModuleException in dnf_context_reset_modules (RhBug:1767453)
- Add missing C function hy_nevra_free() for HyNevra deallocation
- Context part of libdnf now uses metadata_expire from global configuration 

* Mon Nov 11 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.37.2-2
- Fix accidental code removal from hy_subject_get_best_solution()

* Wed Nov 06 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.37.2-1
- Update to 0.37.2
- Fix crash in PackageKit (RhBug:1636803)
- Do not create @System.solv files (RhBug:1707995)
- Set LRO_CACHEDIR so zchunk works again (RhBug:1739867)
- Don't reinstall modified packages with the same NEVRA (RhBug:1644241)
- Fix bug when moving temporary repository metadata after download (RhBug:1700341)
- 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)
- Fully enable the modular fail safe mechanism (RhBug:1616167)
- 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)

* Mon Oct 21 2019 Ales Matej <amatej@gmail.com> - 0.35.3-6
- Fixes for some issues on Arm platforms (RhBug:1691430) 

* Sat Sep 14 2019 Jonathan Dieter <jdieter@gmail.com> - 0.35.3-5
- Set LRO_CACHEDIR so zchunk works again

* Wed Sep 11 2019 Jaroslav Mracek <jmracek@redhat.com> - 0.35.3-4
- Backport patch to fix reinstalling packages with a different buildtime - part II

* Tue Sep 10 2019 Jaroslav Mracek <jmracek@redhat.com> - 0.35.3-3
- Backport patch to fix reinstalling packages with a different buildtime

* Thu Aug 15 2019 Miro Hrončok <mhroncok@redhat.com> - 0.35.3-2
- Rebuilt for Python 3.8

* Tue Aug 13 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.35.3-1
- Update to 0.35.3
- Make libdnf own its plugin directory (RhBug:1714265)
- Don't disable nonexistent but required repositories (RhBug:1689331)
- Set priority of dnf.conf.d drop-ins
- Fix toString() to not insert [] (RhBug:1584442)
- Ignore trailing blank lines in config (RhBug:1722493)
- 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)

* Mon Jul 29 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.35.1-4
- Rebuilt for librepo 1.10.5

* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.35.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Mon Jul 22 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.35.1-2
- Backport patch to fix attaching and detaching of libsolvRepo and
  repo_internalize_trigger() (RhBug:1727343,1727424)

* Thu Jul 04 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.35.1-1
- Update to 0.35.1
- Enhance logging handling
- Do not log DEBUG messages by default
- Also add subkeys when adding GPG keys
- [module] Fix swig binding for getModuleDependencies()
- Skip invalid key files in "/etc/pki/rpm-gpg" with warning (RhBug:1644040)
- Enable timestamp preserving for downloaded data (RhBug:1688537)
- Set default to skip_if_unavailable=false (RhBug:1679509)
- Add configuration option skip_if_unavailable (RhBug:1689931)
- 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)
- Add support of modular FailSafe (RhBug:1623128) (temporarily with warnings
  instead of errors when installing modular RPMs without modular metadata)
- 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 Jun 10 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.31.0-5
- Rebuild for RPM 4.15

* Mon Jun 10 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.31.0-4
- Rebuild for RPM 4.15

* Fri May 03 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.31.0-3
- Backport patches to reintroduce hawkeyRepo

* Thu Apr 25 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.31.0-1
- Update to 0.31.0
- Installroot now requires absolute path
- Support "_none_" value for repo option "proxy" (RhBug:1680272)
- Add support for Module advisories
- Add support for xml:base attribute from primary.xml (RhBug:1691315)
- Improve detection of Platform ID (RhBug:1688462)

* Wed Mar 27 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.28.1-1
- Update to 0.28.1
- Return empty query if incorrect reldep (RhBug:1687135)
- ConfigParser: Improve compatibility with Python ConfigParser and dnf-plugin-spacewalk (RhBug:1692044)
- ConfigParser: Unify default set of string represenation of boolean values
- Fix segfault when interrupting dnf process (RhBug:1610456)

* Mon Mar 11 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.28.0-1
- Update to 0.28.0
- Exclude module pkgs that have conflict
- Enhance config parser to preserve order of data, and keep comments and format
- Improve ARM detection
- Add support for SHA-384

* Tue Feb 19 2019 Jaroslav Mracek <jmracek@redhat.com> - 0.26.0-2
- Backport patches for zchunk

* Wed Feb 13 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.26.0-1
- Update to 0.26.0-1
- Enhance modular solver to handle enabled and default module streams differently (RhBug:1648839)
- Add support of wild cards for modules (RhBug:1644588)
- Revert commit that adds best as default behavior

* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.24.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Wed Dec 12 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.24.1-1
- Update to 0.24.1
- Add support for zchunk
- Enhance LIBDNF plugins support
- Enhance sorting for module list (RhBug:1590358)
- [repo] Check whether metadata cache is expired (RhBug:1539620,1648274)
- [DnfRepo] Add methods for alternative repository metadata type and download (RhBug:1656314)
- Remove installed profile on module  enable or disable (RhBug:1653623)
- [sack] Implement dnf_sack_get_rpmdb_version()

* Thu Nov 22 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.22.3-1
- Permanently disable Python2 build for Fedora 30+
- Update to 0.22.3
- Modify solver_describe_decision to report cleaned (RhBug:1486749)
- [swdb] create persistent WAL files (RhBug:1640235)
- Relocate ModuleContainer save hook (RhBug:1632518)
- [transaction] Fix transaction item lookup for obsoleted packages (RhBug: 1642796)
- Fix memory leaks and memory allocations
- [repo] Possibility to extend downloaded repository metadata

* Wed Nov 07 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.22.0-8
- Backport fixes for RHBZ#1642796 from upstream master

* Tue Oct 30 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.22.0-7
- Rebuild for libsolv 0.7

* Tue Oct 23 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.22.0-6
- Add patch Relocate-ModuleContainer-save-hook-RhBug1632518
- Add patch Test-if-sack-is-present-and-run-save-module-persistor-RhBug1632518

* Sat Oct 20 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.22.0-5
- remove problematic patch Relocate-ModuleContainer-save-hook-RhBug1632518

* Fri Oct 19 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.22.0-4
- backport Relocate-ModuleContainer-save-hook-RhBug1632518

* Thu Oct 18 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.22.0-3
- bacport swdb-create-persistent-WAL-files-RhBug1640235

* Wed Oct 17 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.22.0-2
- backport Modify-solver_describe_decision-to-report-cleaned-RhBug1486749
- backport history-Fix-crash-in-TransactionItemaddReplacedBy

* Mon Oct 15 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.22.0-1
- Update to 0.22.0
- Fix segfault in repo_internalize_trigger (RhBug:1375895)
- Change sorting of installonly packages (RhBug:1627685)
- [swdb] Fixed pattern searching in history db (RhBug:1635542)
- Check correctly gpg for repomd when refresh is used (RhBug:1636743)
- [conf] Provide additional VectorString methods for compatibility with Python list.
- [plugins] add plugin loading and hooks into libdnf

* Sat Sep 29 2018 Kevin Fenzi <kevin@scrye.com> - 0.20.0-2
- Temp re-enable python2 subpackages to get rawhide composing again.

* 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
- Backport PR #585 for an update crash bug (#1629340)

* Fri Sep 14 2018 Kalev Lember <klember@redhat.com> - 0.19.1-2
- Backport a fix for a packagekit crasher / F29 Beta blocker (#1626851)

* Mon Sep 10 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.19.1-1
- Fix compilation errors on gcc-4.8.5
- [module] Allow module queries on disabled modules

* Fri Sep 07 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.19.0-1
- [query] Reldeps can contain a space char (RhBug:1612462)
- [transaction] Avoid adding duplicates via Transaction::addItem()
- Fix compilation errors on gcc-4.8.5
- [module] Make available ModuleProfile using SWIG
- [module] Redesign module disable and reset

* Mon Aug 13 2018 Daniel Mach <dmach@redhat.com> - 0.17.2-1
- [sqlite3] Change db locking mode to DEFAULT.
- [doc] Add libsmartcols-devel to devel deps.

* Mon Aug 13 2018 Daniel Mach <dmach@redhat.com> - 0.17.1-1
- [module] Solve a problem in python constructor of NSVCAP if no version.
- [translations] Update translations from zanata.
- [transaction] Fix crash after using dnf.comps.CompsQuery and forking the process in Anaconda.
- [module] Support for resetting module state.
- [output] Introduce wrapper for smartcols.

* Fri Aug 10 2018 Adam Williamson <awilliam@redhat.com> - 0.17.0-2
- Backport fix that prevented anaconda running dnf in a subprocess (#546)

* Tue Aug 07 2018 Daniel Mach <dmach@redhat.com> - 0.17.0-1
- [conf] Add module_platform_id option.
- [module] Add ModulePackageContainer class.
- [module] Add ModulePersistor class.
- [sack] Module filtering made available in python API
- [sack] Module auto-enabling according to installed packages

* Fri Jul 27 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.16.1-3
- Rebuild for new binutils

* Fri Jul 27 2018 Daniel Mach <dmach@redhat.com> - 0.16.1-2
- [module] Implement 'module_hotfixes' conf option to skip filtering RPMs from hotfix repos.
- [goal] Fix distupgrade filter, allow downgrades.
- [context] Allow to set module platform in context.
- [module] Introduce proper modular dependency solving.
- [module] Platform pseudo-module based on /etc/os-release.
- [goal] Add Goal::listSuggested().
- [l10n] Support for translations, add gettext build dependency.

* Sun Jul 22 2018 Daniel Mach <dmach@redhat.com> - 0.16.0-1
- Fix RHSM plugin
- Add support for logging
- Bump minimal libmodulemd version to 1.6.1

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.15.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Fri Jun 29 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.15.2-1
- Update to 0.15.1
- Resolves: rhbz#1595487

* Fri Jun 29 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.15.1-2
- Restore proper ldconfig_scriptlets

* Tue Jun 26 2018 Jaroslav Mracek <jmracek@redhat.com> - 0.15.1-1
- Update to 0.15.1

* Fri Jun 15 2018 Miro Hrončok <mhroncok@redhat.com> - 0.11.1-6
- Rebuilt for Python 3.7

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Tue Jan 30 2018 Igor Gnatenko <ignatenko@redhat.com> - 0.11.1-4
- Switch to %%ldconfig_scriptlets

* Tue Nov 07 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.11.1-3
- Use better Obsoletes for platform-python

* Fri Nov 03 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.11.1-2
- Remove platform-python subpackage

* Mon Oct 16 2017 Jaroslav Mracek <jmracek@redhat.com> - 0.11.1-1
- Rerelease of 0.11.1-1
- Improvement query performance
- Run file query in hy_subject_get_best_solution only for files (arguments that start with ``/`` or
  ``*/``)
- Resolves: rhbz#1498207 - DNF crash during upgrade installation F26 -> F27

* Tue Oct 10 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.11.0-1
- Update to 0.11.0

* Mon Oct 02 2017 Jaroslav Mracek <jmracek@redhat.com> - 0.10.1-2
- Rerelease of 0.10.1-1

* Wed Sep 27 2017 Jaroslav Mracek <jmracek@redhat.com> - 0.10.1-1
- Update to 0.10.1
- It improves query performance with name and arch filters. Also nevra filter will now
  handle string with or without epoch.
- Additionally for python bindings it renames NEVRA._has_just_name() to NEVRA.has_just_name() due
  to movement of code into c part of library.
- Resolves: rhbz#1260242 - --exclude does not affect dnf remove's removal of requirements
- Resolves: rhbz#1485881 - DNF claims it cannot install package, which have been already installed
- Resolves: rhbz#1361187 - [abrt] python-ipython-console: filter_updown(): python3.5 killed by SIGABRT

* Fri Sep 15 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.9.3-8
- Disable platform python on old releases

* Tue Aug 15 2017 Lumír Balhar <lbalhar@redhat.com> - 0.9.3-7
- Add platform-python subpackage

* Fri Aug 11 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.9.3-6
- Rebuilt after RPM update (№ 3)

* Thu Aug 10 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.9.3-5
- Rebuilt for RPM soname bump

* Thu Aug 10 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.9.3-4
- Rebuilt for RPM soname bump

* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Mon Jul 24 2017 Jaroslav Mracek <jmracek@redhat.com> - 0.9.3-1
- Update to 0.9.3

* Sat Jul 01 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.9.2-1
- Update to 0.9.2

* Mon Jun 12 2017 Jaroslav Mracek <jmracek@redhat.com> - 0.9.1-1
- Update to 0.9.1

* Mon May 22 2017 Jaroslav Mracek <jmracek@redhat.com> - 0.9.0-1
- Update to 0.9.0

* Tue May 02 2017 Jaroslav Mracek <jmracek@redhat.com> - 0.8.2-1
- Update to 0.8.2

* Fri Mar 24 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.8.1-1
- Update to 0.8.1

* Tue Mar 21 2017 Jaroslav Mracek <jmracek@redhat.com> - 0.8.0-1
- Update to 0.8.0

* Mon Feb 20 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.7.4-1
- Update to 0.7.4

* Fri Feb 10 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.7.3-1
- Update to 0.7.3

* Wed Feb 08 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.7.2-1
- 0.7.2

* Fri Jan 06 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.7.1-1
- 0.7.1

* Wed Dec 21 2016 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.0-0.7gitf9b798c
- Rebuild for Python 3.6

* Mon Dec 19 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 0.7.0-0.6gitf9b798c
- Use new upstream URL

* Tue Dec 13 2016 Stratakis Charalampos <cstratak@redhat.com> - 0.7.0-0.5gitf9b798c
- Rebuild for Python 3.6

* Tue Dec 06 2016 Martin Hatina <mhatina@redhat.com> - 0.7.0-0.4gitf9b798c
- Increase conflict version of dnf

* Thu Dec 01 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 0.7.0-0.3gitf9b798c
- Update to latest snapshot

* Fri Nov 04 2016 Igor Gnatenko <ignatenko@redhat.com> - 0.7.0-0.2git8bd77f8
- Update to latest snapshot

* Thu Sep 29 2016 Igor Gnatenko <ignatenko@redhat.com> - 0.7.0-0.1git179c0a6
- Initial package
