diff options
Diffstat (limited to 'dnf5.spec')
-rw-r--r-- | dnf5.spec | 1427 |
1 files changed, 1427 insertions, 0 deletions
diff --git a/dnf5.spec b/dnf5.spec new file mode 100644 index 0000000..c118356 --- /dev/null +++ b/dnf5.spec @@ -0,0 +1,1427 @@ +%global project_version_major 5 +%global project_version_minor 1 +%global project_version_patch 17 + +%bcond dnf5_obsoletes_dnf %[0%{?fedora} > 41 || 0%{?rhel} > 11] + +Name: dnf5 +Version: %{project_version_major}.%{project_version_minor}.%{project_version_patch} +Release: 2%{?dist} +Summary: Command-line package manager +License: GPL-2.0-or-later +URL: https://github.com/rpm-software-management/dnf5 +Source0: %{url}/archive/%{version}/dnf5-%{version}.tar.gz +Patch0: 0001-Fix-a-use-after-free-in-EmitterEmail-notify.patch + +Requires: libdnf5%{?_isa} = %{version}-%{release} +Requires: libdnf5-cli%{?_isa} = %{version}-%{release} +%if %{without dnf5_obsoletes_dnf} +Requires: dnf-data +%endif +Recommends: bash-completion +Requires: coreutils + +# Remove if condition when Fedora 37 is EOL +%if 0%{?fedora} > 37 || 0%{?rhel} > 10 +Provides: microdnf = %{version}-%{release} +Obsoletes: microdnf < 4 +%endif + +%if %{with dnf5_obsoletes_dnf} +Provides: dnf = %{version}-%{release} +Obsoletes: dnf < 5 + +Provides: yum = %{version}-%{release} +Obsoletes: yum < 5 +%endif + +Provides: dnf5-command(advisory) +Provides: dnf5-command(autoremove) +Provides: dnf5-command(check) +Provides: dnf5-command(check-upgrade) +Provides: dnf5-command(clean) +Provides: dnf5-command(distro-sync) +Provides: dnf5-command(downgrade) +Provides: dnf5-command(download) +Provides: dnf5-command(environment) +Provides: dnf5-command(group) +Provides: dnf5-command(history) +Provides: dnf5-command(info) +Provides: dnf5-command(install) +Provides: dnf5-command(leaves) +Provides: dnf5-command(list) +Provides: dnf5-command(makecache) +Provides: dnf5-command(mark) +Provides: dnf5-command(module) +Provides: dnf5-command(offline) +Provides: dnf5-command(provides) +Provides: dnf5-command(reinstall) +Provides: dnf5-command(remove) +Provides: dnf5-command(repo) +Provides: dnf5-command(repoquery) +Provides: dnf5-command(search) +Provides: dnf5-command(swap) +Provides: dnf5-command(system-upgrade) +Provides: dnf5-command(upgrade) +Provides: dnf5-command(versionlock) + + +# ========== build options ========== + +%bcond_without dnf5daemon_client +%bcond_without dnf5daemon_server +%bcond_without libdnf_cli +%bcond_without dnf5 +%bcond_without dnf5_plugins +%bcond_without plugin_actions +%bcond_with plugin_rhsm +%bcond_without python_plugins_loader + +%bcond_without comps +%bcond_without modulemd +%if 0%{?rhel} +%bcond_with zchunk +%else +%bcond_without zchunk +%endif +%bcond_without systemd + +%bcond_with html +%if 0%{?rhel} == 8 +%bcond_with man +%else +%bcond_without man +%endif + +# TODO Go bindings fail to build, disable for now +%bcond_with go +%bcond_without perl5 +%bcond_without python3 +%bcond_without ruby + +%bcond_with clang +%bcond_with sanitizers +%bcond_without tests +%bcond_with performance_tests +%bcond_with dnf5daemon_tests + +%if %{with clang} + %global toolchain clang +%endif + +# ========== versions of dependencies ========== + +%global libmodulemd_version 2.5.0 +%global librepo_version 1.15.0 +%global libsolv_version 0.7.25 +%global sqlite_version 3.35.0 +%global swig_version 4 +%global zchunk_version 0.9.11 + + +# ========== build requires ========== + +%if 0%{?fedora} > 40 || 0%{?rhel} > 10 +BuildRequires: bash-completion-devel +%else +BuildRequires: bash-completion +%endif +BuildRequires: cmake +BuildRequires: doxygen +BuildRequires: gettext +BuildRequires: pkgconfig(check) +BuildRequires: pkgconfig(fmt) +BuildRequires: pkgconfig(json-c) +BuildRequires: pkgconfig(libcrypto) +BuildRequires: pkgconfig(librepo) >= %{librepo_version} +BuildRequires: pkgconfig(libsolv) >= %{libsolv_version} +BuildRequires: pkgconfig(libsolvext) >= %{libsolv_version} +BuildRequires: pkgconfig(rpm) >= 4.17.0 +BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version} +BuildRequires: toml11-static + +%if %{with clang} +BuildRequires: clang +%else +BuildRequires: gcc-c++ >= 10.1 +%endif + +%if %{with tests} +BuildRequires: createrepo_c +BuildRequires: pkgconfig(cppunit) +BuildRequires: rpm-build +%endif + +%if %{with comps} +BuildRequires: pkgconfig(libcomps) +%endif + +%if %{with modulemd} +BuildRequires: pkgconfig(modulemd-2.0) >= %{libmodulemd_version} +%endif + +%if %{with zchunk} +BuildRequires: pkgconfig(zck) >= %{zchunk_version} +%endif + +%if %{with systemd} +BuildRequires: pkgconfig(sdbus-c++) >= 0.8.1 +BuildRequires: systemd-devel + + # We need to get the SYSTEMD_SYSTEM_UNIT_DIR from + # /usr/share/pkgconfig/systemd.pc +BuildRequires: systemd +%endif + +%if %{with html} || %{with man} +BuildRequires: python3dist(breathe) +BuildRequires: python3dist(sphinx) >= 4.1.2 +BuildRequires: python3dist(sphinx-rtd-theme) +%endif + +%if %{with sanitizers} +# compiler-rt is required by sanitizers in clang +BuildRequires: compiler-rt +BuildRequires: libasan +BuildRequires: liblsan +BuildRequires: libubsan +%endif + +%if %{with libdnf_cli} +# required for libdnf5-cli +BuildRequires: pkgconfig(smartcols) +%endif + +%if %{with dnf5_plugins} +BuildRequires: libcurl-devel >= 7.62.0 +%endif + +%if %{with dnf5daemon_server} +# required for dnf5daemon-server +BuildRequires: pkgconfig(sdbus-c++) >= 0.9.0 +BuildRequires: systemd +%if %{with dnf5daemon_tests} +BuildRequires: dbus-daemon +BuildRequires: polkit +BuildRequires: python3-devel +BuildRequires: python3dist(dbus-python) +%endif +%endif + +%if %{with plugin_rhsm} +BuildRequires: pkgconfig(librhsm) >= 0.0.3 +BuildRequires: pkgconfig(glib-2.0) >= 2.44.0 +%endif + +# ========== language bindings section ========== + +%if %{with perl5} || %{with ruby} || %{with python3} +BuildRequires: swig >= %{swig_version} +%endif + +%if %{with perl5} +# required for perl-libdnf5 and perl-libdnf5-cli +BuildRequires: perl-devel +BuildRequires: perl-generators +%if %{with tests} +BuildRequires: perl(strict) +BuildRequires: perl(Test::More) +BuildRequires: perl(Test::Exception) +BuildRequires: perl(warnings) +%endif +%endif + +%if %{with ruby} +# required for ruby-libdnf5 and ruby-libdnf5-cli +BuildRequires: pkgconfig(ruby) +%if %{with tests} +BuildRequires: rubygem-test-unit +%endif +%endif + +%if %{with python3} +# required for python3-libdnf5 and python3-libdnf5-cli +BuildRequires: python3-devel +%endif + +%description +DNF5 is a command-line package manager that automates the process of installing, +upgrading, configuring, and removing computer programs in a consistent manner. +It supports RPM packages, modulemd modules, and comps groups & environments. + +%files -f dnf5.lang +%{_bindir}/dnf5 +%if %{with dnf5_obsoletes_dnf} +%{_bindir}/dnf +%{_bindir}/yum +%endif + +# Remove if condition when Fedora 37 is EOL +%if 0%{?fedora} > 37 || 0%{?rhel} > 10 +%{_bindir}/microdnf +%endif + +%dir %{_sysconfdir}/dnf/dnf5-aliases.d +%doc %{_sysconfdir}/dnf/dnf5-aliases.d/README +%dir %{_datadir}/dnf5 +%dir %{_datadir}/dnf5/aliases.d +%config %{_datadir}/dnf5/aliases.d/compatibility.conf +%dir %{_libdir}/dnf5 +%dir %{_libdir}/dnf5/plugins +%dir %{_datadir}/dnf5/dnf5-plugins +%dir %{_sysconfdir}/dnf/dnf5-plugins +%doc %{_libdir}/dnf5/plugins/README +%dir %{_libdir}/libdnf5/plugins +%dir %{_datadir}/bash-completion/ +%dir %{_datadir}/bash-completion/completions/ +%{_datadir}/bash-completion/completions/dnf5 +%if %{with dnf5_obsoletes_dnf} +%{_datadir}/bash-completion/completions/dnf +%endif +%dir %{_prefix}/lib/sysimage/dnf +%verify(not md5 size mtime) %ghost %{_prefix}/lib/sysimage/dnf/* +%license COPYING.md +%license gpl-2.0.txt +%{_mandir}/man8/dnf5.8.* +%{_mandir}/man8/dnf5-advisory.8.* +%{_mandir}/man8/dnf5-autoremove.8.* +%{_mandir}/man8/dnf5-check.8.* +%{_mandir}/man8/dnf5-check-upgrade.8.* +%{_mandir}/man8/dnf5-clean.8.* +%{_mandir}/man8/dnf5-distro-sync.8.* +%{_mandir}/man8/dnf5-downgrade.8.* +%{_mandir}/man8/dnf5-download.8.* +%{_mandir}/man8/dnf5-environment.8.* +%{_mandir}/man8/dnf5-group.8.* +# TODO(jkolarik): history is not ready yet +# %%{_mandir}/man8/dnf5-history.8.* +%{_mandir}/man8/dnf5-info.8.* +%{_mandir}/man8/dnf5-install.8.* +%{_mandir}/man8/dnf5-leaves.8.* +%{_mandir}/man8/dnf5-list.8.* +%{_mandir}/man8/dnf5-makecache.8.* +%{_mandir}/man8/dnf5-mark.8.* +%{_mandir}/man8/dnf5-module.8.* +%{_mandir}/man8/dnf5-offline.8.* +%{_mandir}/man8/dnf5-provides.8.* +%{_mandir}/man8/dnf5-reinstall.8.* +%{_mandir}/man8/dnf5-remove.8.* +%{_mandir}/man8/dnf5-repo.8.* +%{_mandir}/man8/dnf5-repoquery.8.* +%{_mandir}/man8/dnf5-search.8.* +%{_mandir}/man8/dnf5-swap.8.* +%{_mandir}/man8/dnf5-system-upgrade.8.* +%{_mandir}/man8/dnf5-upgrade.8.* +%{_mandir}/man8/dnf5-versionlock.8.* +%{_mandir}/man7/dnf5-aliases.7.* +%{_mandir}/man7/dnf5-caching.7.* +%{_mandir}/man7/dnf5-comps.7.* +# TODO(jkolarik): filtering is not ready yet +# %%{_mandir}/man7/dnf5-filtering.7.* +%{_mandir}/man7/dnf5-forcearch.7.* +%{_mandir}/man7/dnf5-installroot.7.* +# TODO(jkolarik): modularity is not ready yet +# %%{_mandir}/man7/dnf5-modularity.7.* +%{_mandir}/man7/dnf5-specs.7.* +%{_mandir}/man5/dnf5.conf.5.* +%{_mandir}/man5/dnf5.conf-todo.5.* +%{_mandir}/man5/dnf5.conf-deprecated.5.* + +%if %{with systemd} +%{_unitdir}/dnf5-offline-transaction.service +%{_unitdir}/dnf5-offline-transaction-cleanup.service +%{_unitdir}/system-update.target.wants/dnf5-offline-transaction.service +%endif + +# ========== libdnf5 ========== +%package -n libdnf5 +Summary: Package management library +License: LGPL-2.1-or-later +#Requires: libmodulemd{?_isa} >= {libmodulemd_version} +Requires: libsolv%{?_isa} >= %{libsolv_version} +Requires: librepo%{?_isa} >= %{librepo_version} +Requires: sqlite-libs%{?_isa} >= %{sqlite_version} +%if %{with dnf5_obsoletes_dnf} +Conflicts: dnf-data < 4.16.0 +%endif + +%description -n libdnf5 +Package management library. + +%files -n libdnf5 -f libdnf5.lang +%if %{with dnf5_obsoletes_dnf} +%config(noreplace) %{_sysconfdir}/dnf/dnf.conf +%dir %{_sysconfdir}/dnf/vars +%dir %{_sysconfdir}/dnf/protected.d +%else +%exclude %{_sysconfdir}/dnf/dnf.conf +%endif +%dir %{_datadir}/dnf5/libdnf.conf.d +%dir %{_sysconfdir}/dnf/libdnf5.conf.d +%dir %{_datadir}/dnf5/repos.override.d +%dir %{_sysconfdir}/dnf/repos.override.d +%dir %{_sysconfdir}/dnf/libdnf5-plugins +%dir %{_datadir}/dnf5/repos.d +%dir %{_datadir}/dnf5/vars.d +%dir %{_libdir}/libdnf5 +%{_libdir}/libdnf5.so.1* +%license lgpl-2.1.txt +%{_var}/cache/libdnf5/ + +# ========== libdnf5-cli ========== + +%if %{with libdnf_cli} +%package -n libdnf5-cli +Summary: Library for working with a terminal in a command-line package manager +License: LGPL-2.1-or-later +Requires: libdnf5%{?_isa} = %{version}-%{release} + +%description -n libdnf5-cli +Library for working with a terminal in a command-line package manager. + +%files -n libdnf5-cli -f libdnf5-cli.lang +%{_libdir}/libdnf5-cli.so.1* +%license COPYING.md +%license lgpl-2.1.txt +%endif + +# ========== dnf5-devel ========== + +%package -n dnf5-devel +Summary: Development files for dnf5 +License: LGPL-2.1-or-later +Requires: dnf5%{?_isa} = %{version}-%{release} +Requires: libdnf5-devel%{?_isa} = %{version}-%{release} +Requires: libdnf5-cli-devel%{?_isa} = %{version}-%{release} + +%description -n dnf5-devel +Development files for dnf5. + +%files -n dnf5-devel +%{_includedir}/dnf5/ +%license COPYING.md +%license lgpl-2.1.txt + + +# ========== libdnf5-devel ========== + +%package -n libdnf5-devel +Summary: Development files for libdnf +License: LGPL-2.1-or-later +Requires: libdnf5%{?_isa} = %{version}-%{release} +Requires: libsolv-devel%{?_isa} >= %{libsolv_version} + +%description -n libdnf5-devel +Development files for libdnf. + +%files -n libdnf5-devel +%{_includedir}/libdnf5/ +%dir %{_libdir}/libdnf5 +%{_libdir}/libdnf5.so +%{_libdir}/pkgconfig/libdnf5.pc +%license COPYING.md +%license lgpl-2.1.txt + + +# ========== libdnf5-cli-devel ========== + +%package -n libdnf5-cli-devel +Summary: Development files for libdnf5-cli +License: LGPL-2.1-or-later +Requires: libdnf5-cli%{?_isa} = %{version}-%{release} + +%description -n libdnf5-cli-devel +Development files for libdnf5-cli. + +%files -n libdnf5-cli-devel +%{_includedir}/libdnf5-cli/ +%{_libdir}/libdnf5-cli.so +%{_libdir}/pkgconfig/libdnf5-cli.pc +%license COPYING.md +%license lgpl-2.1.txt + + +# ========== perl-libdnf5 ========== + +%if %{with perl5} +%package -n perl-libdnf5 +Summary: Perl 5 bindings for the libdnf library +License: LGPL-2.1-or-later +Requires: libdnf5%{?_isa} = %{version}-%{release} + + +%description -n perl-libdnf5 +Perl 5 bindings for the libdnf library. + +%files -n perl-libdnf5 +%{perl_vendorarch}/libdnf5 +%{perl_vendorarch}/auto/libdnf5 +%license COPYING.md +%license lgpl-2.1.txt +%endif + + +# ========== perl-libdnf5-cli ========== + +%if %{with perl5} && %{with libdnf_cli} +%package -n perl-libdnf5-cli +Summary: Perl 5 bindings for the libdnf5-cli library +License: LGPL-2.1-or-later +Requires: libdnf5-cli%{?_isa} = %{version}-%{release} + + +%description -n perl-libdnf5-cli +Perl 5 bindings for the libdnf5-cli library. + +%files -n perl-libdnf5-cli +%{perl_vendorarch}/libdnf5_cli +%{perl_vendorarch}/auto/libdnf5_cli +%license COPYING.md +%license lgpl-2.1.txt +%endif + + +# ========== python3-libdnf5 ========== + +%if %{with python3} +%package -n python3-libdnf5 +%{?python_provide:%python_provide python3-libdnf} +Summary: Python 3 bindings for the libdnf library +License: LGPL-2.1-or-later +Requires: libdnf5%{?_isa} = %{version}-%{release} + +%description -n python3-libdnf5 +Python 3 bindings for the libdnf library. + +%files -n python3-libdnf5 +%{python3_sitearch}/libdnf5 +%{python3_sitearch}/libdnf5-*.dist-info +%license COPYING.md +%license lgpl-2.1.txt +%endif + + +# ========== python3-libdnf5-cli ========== + +%if %{with python3} && %{with libdnf_cli} +%package -n python3-libdnf5-cli +%{?python_provide:%python_provide python3-libdnf5-cli} +Summary: Python 3 bindings for the libdnf5-cli library +License: LGPL-2.1-or-later +Requires: libdnf5-cli%{?_isa} = %{version}-%{release} + +%description -n python3-libdnf5-cli +Python 3 bindings for the libdnf5-cli library. + +%files -n python3-libdnf5-cli +%{python3_sitearch}/libdnf5_cli +%{python3_sitearch}/libdnf5_cli-*.dist-info +%license COPYING.md +%license lgpl-2.1.txt +%endif + + +# ========== ruby-libdnf5 ========== + +%if %{with ruby} +%package -n ruby-libdnf5 +Summary: Ruby bindings for the libdnf library +License: LGPL-2.1-or-later +Provides: ruby(libdnf) = %{version}-%{release} +Requires: libdnf5%{?_isa} = %{version}-%{release} +Requires: ruby(release) + +%description -n ruby-libdnf5 +Ruby bindings for the libdnf library. + +%files -n ruby-libdnf5 +%{ruby_vendorarchdir}/libdnf5 +%license COPYING.md +%license lgpl-2.1.txt +%endif + + +# ========== ruby-libdnf5-cli ========== + +%if %{with ruby} && %{with libdnf_cli} +%package -n ruby-libdnf5-cli +Summary: Ruby bindings for the libdnf5-cli library +License: LGPL-2.1-or-later +Provides: ruby(libdnf_cli) = %{version}-%{release} +Requires: libdnf5-cli%{?_isa} = %{version}-%{release} +Requires: ruby(release) + +%description -n ruby-libdnf5-cli +Ruby bindings for the libdnf5-cli library. + +%files -n ruby-libdnf5-cli +%{ruby_vendorarchdir}/libdnf5_cli +%license COPYING.md +%license lgpl-2.1.txt +%endif + + +# ========== libdnf5-plugin-actions ========== + +%if %{with plugin_actions} +%package -n libdnf5-plugin-actions +Summary: Libdnf5 plugin that allows to run actions (external executables) on hooks +License: LGPL-2.1-or-later +Requires: libdnf5%{?_isa} = %{version}-%{release} + +%description -n libdnf5-plugin-actions +Libdnf5 plugin that allows to run actions (external executables) on hooks. + +%files -n libdnf5-plugin-actions -f libdnf5-plugin-actions.lang +%{_libdir}/libdnf5/plugins/actions.* +%config %{_sysconfdir}/dnf/libdnf5-plugins/actions.conf +%dir %{_sysconfdir}/dnf/libdnf5-plugins/actions.d +%{_mandir}/man8/libdnf5-actions.8.* +%endif + + +# ========== libdnf5-plugin-plugin_rhsm ========== + +%if %{with plugin_rhsm} +%package -n libdnf5-plugin-rhsm +Summary: Libdnf5 rhsm (Red Hat Subscription Manager) plugin +License: LGPL-2.1-or-later +Requires: libdnf5%{?_isa} = %{version}-%{release} + +%description -n libdnf5-plugin-rhsm +Libdnf5 plugin with basic support for Red Hat subscriptions. +Synchronizes the the enrollment with the vendor system. This can change +the contents of the repositories configuration files according +to the subscription levels. + +%files -n libdnf5-plugin-rhsm -f libdnf5-plugin-rhsm.lang +%{_libdir}/libdnf5/plugins/rhsm.* +%config %{_sysconfdir}/dnf/libdnf5-plugins/rhsm.conf +%endif + + +# ========== python3-libdnf5-plugins-loader ========== + +%if %{with python_plugins_loader} +%package -n python3-libdnf5-python-plugins-loader +Summary: Libdnf5 plugin that allows loading Python plugins +License: LGPL-2.1-or-later +Requires: libdnf5%{?_isa} = %{version}-%{release} +Requires: python3-libdnf5%{?_isa} = %{version}-%{release} + +%description -n python3-libdnf5-python-plugins-loader +Libdnf5 plugin that allows loading Python plugins. + +%files -n python3-libdnf5-python-plugins-loader +%{_libdir}/libdnf5/plugins/python_plugins_loader.* +%dir %{python3_sitelib}/libdnf_plugins/ +%doc %{python3_sitelib}/libdnf_plugins/README +%endif + + +# ========== dnf5daemon-client ========== + +%if %{with dnf5daemon_client} +%package -n dnf5daemon-client +Summary: Command-line interface for dnf5daemon-server +License: GPL-2.0-or-later +Requires: libdnf5%{?_isa} = %{version}-%{release} +Requires: libdnf5-cli%{?_isa} = %{version}-%{release} +Requires: dnf5daemon-server + +%description -n dnf5daemon-client +Command-line interface for dnf5daemon-server. + +%files -n dnf5daemon-client -f dnf5daemon-client.lang +%{_bindir}/dnf5daemon-client +%license COPYING.md +%license gpl-2.0.txt +%{_mandir}/man8/dnf5daemon-client.8.* +%endif + + +# ========== dnf5daemon-server ========== + +%if %{with dnf5daemon_server} +%package -n dnf5daemon-server +Summary: Package management service with a DBus interface +License: GPL-2.0-or-later +Requires: libdnf5%{?_isa} = %{version}-%{release} +Requires: libdnf5-cli%{?_isa} = %{version}-%{release} +Requires: dbus +Requires: polkit +%if %{without dnf5_obsoletes_dnf} +Requires: dnf-data +%endif + +%description -n dnf5daemon-server +Package management service with a DBus interface. + +%post -n dnf5daemon-server +%systemd_post dnf5daemon-server.service + +%preun -n dnf5daemon-server +%systemd_preun dnf5daemon-server.service + +%postun -n dnf5daemon-server +%systemd_postun_with_restart dnf5daemon-server.service + +%files -n dnf5daemon-server -f dnf5daemon-server.lang +%{_sbindir}/dnf5daemon-server +%{_unitdir}/dnf5daemon-server.service +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.rpm.dnf.v0.conf +%{_datadir}/dbus-1/system-services/org.rpm.dnf.v0.service +%{_datadir}/dbus-1/interfaces/org.rpm.dnf.v0.*.xml +%{_datadir}/polkit-1/actions/org.rpm.dnf.v0.policy +%license COPYING.md +%license gpl-2.0.txt +%{_mandir}/man8/dnf5daemon-server.8.* +%{_mandir}/man8/dnf5daemon-dbus-api.8.* +%endif + + +# ========== dnf5-plugins ========== +%if %{with dnf5_plugins} + +%package -n dnf5-plugins +Summary: Plugins for dnf5 +License: LGPL-2.1-or-later +Requires: dnf5%{?_isa} = %{version}-%{release} +Requires: libcurl%{?_isa} >= 7.62.0 +Requires: libdnf5-cli%{?_isa} = %{version}-%{release} +Provides: dnf5-command(builddep) +Provides: dnf5-command(changelog) +Provides: dnf5-command(config-manager) +Provides: dnf5-command(copr) +Provides: dnf5-command(needs-restarting) +Provides: dnf5-command(repoclosure) + +%description -n dnf5-plugins +Core DNF5 plugins that enhance dnf5 with builddep, changelog, +config-manager, copr, and repoclosure commands. + +%files -n dnf5-plugins -f dnf5-plugin-builddep.lang -f dnf5-plugin-changelog.lang -f dnf5-plugin-config-manager.lang -f dnf5-plugin-copr.lang -f dnf5-plugin-needs-restarting.lang -f dnf5-plugin-repoclosure.lang +%{_libdir}/dnf5/plugins/builddep_cmd_plugin.so +%{_libdir}/dnf5/plugins/changelog_cmd_plugin.so +%{_libdir}/dnf5/plugins/config-manager_cmd_plugin.so +%{_libdir}/dnf5/plugins/copr_cmd_plugin.so +%{_libdir}/dnf5/plugins/needs_restarting_cmd_plugin.so +%{_libdir}/dnf5/plugins/repoclosure_cmd_plugin.so +%{_mandir}/man8/dnf5-builddep.8.* +%{_mandir}/man8/dnf5-changelog.8.* +%{_mandir}/man8/dnf5-copr.8.* +%{_mandir}/man8/dnf5-needs-restarting.8.* +%{_mandir}/man8/dnf5-repoclosure.8.* + + +# ========== dnf5-automatic plugin ========== + +%package plugin-automatic +Summary: Package manager - automated upgrades +License: LGPL-2.1-or-later +Requires: dnf5%{?_isa} = %{version}-%{release} +Requires: libcurl-full%{?_isa} +Provides: dnf5-command(automatic) +%if %{with dnf5_obsoletes_dnf} +Provides: dnf-automatic = %{version}-%{release} +Obsoletes: dnf-automatic < 5 +%else +Conflicts: dnf-automatic < 5 +%endif + +%description plugin-automatic +Alternative command-line interface "dnf upgrade" suitable to be executed +automatically and regularly from systemd timers, cron jobs or similar. + +%files plugin-automatic -f dnf5-plugin-automatic.lang +%ghost %{_sysconfdir}/motd.d/dnf5-automatic +%{_libdir}/dnf5/plugins/automatic_cmd_plugin.so +%{_mandir}/man8/dnf5-automatic.8.* +%{_unitdir}/dnf5-automatic.service +%{_unitdir}/dnf5-automatic.timer +%{_unitdir}/dnf-automatic.service +%{_unitdir}/dnf-automatic.timer +%if %{with dnf5_obsoletes_dnf} +%{_bindir}/dnf-automatic +%else +%exclude %{_bindir}/dnf-automatic +%endif + +%endif + + +# ========== unpack, build, check & install ========== + +%prep +%autosetup -p1 -n dnf5-%{version} + + +%build +%cmake \ + -DPACKAGE_VERSION=%{version} \ + -DPERL_INSTALLDIRS=vendor \ + \ + -DWITH_DNF5DAEMON_CLIENT=%{?with_dnf5daemon_client:ON}%{!?with_dnf5daemon_client:OFF} \ + -DWITH_DNF5DAEMON_SERVER=%{?with_dnf5daemon_server:ON}%{!?with_dnf5daemon_server:OFF} \ + -DWITH_LIBDNF5_CLI=%{?with_libdnf_cli:ON}%{!?with_libdnf_cli:OFF} \ + -DWITH_DNF5=%{?with_dnf5:ON}%{!?with_dnf5:OFF} \ + -DWITH_PLUGIN_ACTIONS=%{?with_plugin_actions:ON}%{!?with_plugin_actions:OFF} \ + -DWITH_PLUGIN_RHSM=%{?with_plugin_rhsm:ON}%{!?with_plugin_rhsm:OFF} \ + -DWITH_PYTHON_PLUGINS_LOADER=%{?with_python_plugins_loader:ON}%{!?with_python_plugins_loader:OFF} \ + \ + -DWITH_COMPS=%{?with_comps:ON}%{!?with_comps:OFF} \ + -DWITH_MODULEMD=%{?with_modulemd:ON}%{!?with_modulemd:OFF} \ + -DWITH_ZCHUNK=%{?with_zchunk:ON}%{!?with_zchunk:OFF} \ + -DWITH_SYSTEMD=%{?with_systemd:ON}%{!?with_systemd:OFF} \ + \ + -DWITH_HTML=%{?with_html:ON}%{!?with_html:OFF} \ + -DWITH_MAN=%{?with_man:ON}%{!?with_man:OFF} \ + \ + -DWITH_GO=%{?with_go:ON}%{!?with_go:OFF} \ + -DWITH_PERL5=%{?with_perl5:ON}%{!?with_perl5:OFF} \ + -DWITH_PYTHON3=%{?with_python3:ON}%{!?with_python3:OFF} \ + -DWITH_RUBY=%{?with_ruby:ON}%{!?with_ruby:OFF} \ + \ + -DWITH_SANITIZERS=%{?with_sanitizers:ON}%{!?with_sanitizers:OFF} \ + -DWITH_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \ + -DWITH_PERFORMANCE_TESTS=%{?with_performance_tests:ON}%{!?with_performance_tests:OFF} \ + -DWITH_DNF5DAEMON_TESTS=%{?with_dnf5daemon_tests:ON}%{!?with_dnf5daemon_tests:OFF} \ + \ + -DPROJECT_VERSION_MAJOR=%{project_version_major} \ + -DPROJECT_VERSION_MINOR=%{project_version_minor} \ + -DPROJECT_VERSION_PATCH=%{project_version_patch} +%make_build +%if %{with man} + %make_build doc-man +%endif + + +%check +%if %{with tests} + ctest +%endif + + +%install +%make_install + +%if %{with dnf5_obsoletes_dnf} +ln -sr %{buildroot}%{_bindir}/dnf5 %{buildroot}%{_bindir}/dnf +ln -sr %{buildroot}%{_bindir}/dnf5 %{buildroot}%{_bindir}/yum +ln -sr %{buildroot}%{_datadir}/bash-completion/completions/dnf5 %{buildroot}%{_datadir}/bash-completion/completions/dnf +%endif + +# own dirs and files that dnf5 creates on runtime +mkdir -p %{buildroot}%{_prefix}/lib/sysimage/dnf +for files in \ + groups.toml modules.toml nevras.toml packages.toml \ + system.toml transaction_history.sqlite \ + transaction_history.sqlite-shm \ + transaction_history.sqlite-wal userinstalled.toml +do + touch %{buildroot}%{_prefix}/lib/sysimage/dnf/$files +done + +# Remove if condition when Fedora 37 is EOL +%if 0%{?fedora} > 37 || 0%{?rhel} > 10 +ln -sr %{buildroot}%{_bindir}/dnf5 %{buildroot}%{_bindir}/microdnf +%endif + +%if %{with systemd} +mkdir -p %{buildroot}%{_unitdir}/system-update.target.wants/ +pushd %{buildroot}%{_unitdir}/system-update.target.wants/ + ln -sr ../dnf5-offline-transaction.service +popd +%endif + +%find_lang dnf5 +%find_lang dnf5-plugin-automatic +%find_lang dnf5-plugin-builddep +%find_lang dnf5-plugin-changelog +%find_lang dnf5-plugin-config-manager +%find_lang dnf5-plugin-copr +%find_lang dnf5-plugin-needs-restarting +%find_lang dnf5-plugin-repoclosure +%find_lang dnf5daemon-client +%find_lang dnf5daemon-server +%find_lang libdnf5 +%find_lang libdnf5-cli +%find_lang libdnf5-plugin-actions + +%ldconfig_scriptlets + +%changelog +* Fri Aug 02 2024 Petr Pisar <ppisar@redhat.com> - 5.1.17-2 +- Fix a crash when sending e-mail notifications by the automatic plugin + (bug #2298385) + +* Wed Apr 03 2024 Packit <hello@packit.dev> - 5.1.17-1 +- Update translations from weblate +- dnf5daemon: Remove reposdir from allowed config overrides + +* Tue Apr 02 2024 Packit <hello@packit.dev> - 5.1.16-1 +- Update translations from weblate +- Document system-upgrade aliases +- Improved Bash Completion +- Print command line hints after resolve failure +- Docuent Advisory.list() API usage +- Add NEVRA field to advisory packages in dnf5daemon +- Review and fix missing commands +- Document dnf5daemon advisory +- Document system-upgrade +- system-upgrade: offline status subcommand +- Add aliases `offline-distrosync`, `offline-upgrade` +- Add `system-upgrade --offline` option +- Add `offline`, `system-upgrade` commands + +* Fri Mar 15 2024 Packit <hello@packit.dev> - 5.1.15-1 +- Update translations from weblate +- Automatically set `upgrade --downloadonly` when `--destdir` is used +- Write warnings to stderr too in config-manager plugin +- Add repoid to generated repository name in config-manager plugin +- Bump sdbus-cpp requirement to 0.9.0 +- Document and implement dnf5daemon Rpm interface +- Document and implement dnf5daemon Goal interface +- Document and implement dnf5daemon Repo interface +- Document and implement dnf5daemon Base interface +- Document and implement dnf5daemon Advisory interface +- Document and implement dnf5daemon SessionManager interface +- Add `dnf5daemon repo --enable/--disable` commands +- automatic: Skip network availability check without remote repo +- dnf5daemon: Rpm.list() works with commandline pkgs + +* Tue Mar 05 2024 Packit <hello@packit.dev> - 5.1.14-1 +- Update translations from weblate +- Make the error to resolve module metadata more descriptive +- Switch off deltarpm support +- Limit number of dnf5daemon simultaneously active sessions +- Make info and list commands case insesitive +- Allow dnf5daemon configuration overrides for root +- Add repoquery.hpp for swig-4.2.1 support + +* Tue Feb 20 2024 Packit <hello@packit.dev> - 5.1.13-1 +- Release 5.1.13 +- build: Adapt to changes in Fedora packaging of bash-completion +- Change location of automatic.conf +- Limit message log to one on dnf5 start +- Implement waiting for network for dnf5 automatic +- Write dnf5 commandline to the log +- Implement dnf5-automatic: Tool for managing automatic upgrades +- Parametrize output stream in transaction table +- Add `download --srpm` option +- Add missing dbus signal registations +- Add new versionlock bindings +- Implement `dnf5 versionlock` command + +* Fri Feb 09 2024 Packit <hello@packit.dev> - 5.1.12-1 +- Release 5.1.12 +- Update translations from weblate +- Drop dnf obsoletion temporarily +- Use regex for tmt plan names +- Add tmt tests identifiers +- PackageQuery: Add `filter_{latest,earliest}_evr_ignore_arch` +- Suggest to use dnf5 command to install dnf5 plugins +- Added arch option to the download command +- CI: Upgrade action/checkout to a version with Node.js 20 +- Document explicit nevra remove commands and aliases dropped +- build: Include <unistd.h> for isatty() +- Change user info display on history command to include display name and username +- Revert "Use focusbest: prefer latest deps versions over smaller transactions" +- Fix a warning when building docs. +- modules: Add a test for enabling default modules +- modules: Add a new module stream to test data +- modules: Respect defaults when enabling multiple streams of a module +- modules: Fix TransactionItemType for not found modules +- Build: Require GCC 10.1 for std::in_range<>() +- Add --urlprotocol option to download command +- dnfdaemon: Explicitly specify allowed config overrides +- Disable dnf and dnf5daemon tests +- needs-restarting: get systemd boot time from UnitsLoadStartTimestamp +- doc: Add --destdir option to upgrade command manual +- Move number placeholder to postposition in copr_repo.cpp +- Added url option +- Load protected packages from installroot +- Make protected_packages an append options +- doc: Create a man page for Aliases +- I18N: Annotate literals in advisory command +- Extend filter_release and filter_version tests +- package_query: Fix filter_version with non EQ comparator +- Fix clang format +- Fix code for string deduplication +- Use placeholders to deduplicate strings +- Add __hash__(), __str__(), and __repr__() for Package +- Add __hash__() for Reldep Python binding +- Add __repr__() to python bindings of Reldep +- Define tp_str slot for Reldep Class +- group: Fix using allowerasing option +- Fix misspellings +- I18N: Remove duplicate empty message IDs from catalogs +- I18N: Do not mark empty strings for a translation + +* Thu Jan 11 2024 Packit <hello@packit.dev> - 5.1.11-1 +- Release 5.1.11 +- Update translations from weblate +- Fix `--skip-unavailable` documentation +- Make `cachedir`, `system_cachedir` relative to `installroot` +- Workaround for swig-4.2.0 missing fragment dependency +- Add `repoquery --recursive` option +- Add `repoquery --providers-of=PACKAGE_ATTRIBUTE` option +- Update documentation of repoquery +- Update documentation for remove command behavior +- Limit search pattern for remove command to NEVRAs and files +- Packaging: Require an exact release of libdnf5-cli by dnf5-plugins +- Disable zchunk on RHEL +- Add dnf5.conf man page +- Add RPM package Group attribute to dnf5daemon-server +- Document changes related to caching +- Document caching man page +- Document Global Option `--help-cmd` dropped +- log_event: Correct message for HINT_ICASE + +* Tue Jan 02 2024 Packit <hello@packit.dev> - 5.1.10-1 +- Release 5.1.10 +- Document dnf5 plugins +- Document How-to write libdnf5 plugin tutorial +- Document How-to write dnf5 plugin tutorial +- Document Templates for libdnf5 plugin +- Document Templates for dnf5 plugin +- Sort the module info table +- `module info` print hint for active modules +- `module info` print "[a]" for active modules +- Ensure write permission before importing packages +- Change module dependency string to be the same as in dnf4 +- `module info`: improve summary and description +- Escape glob characters in pkg specs for `builddep` +- Add `mc` alias for `makecache` +- Implement `logdir`, `log_size` and `log_rotate` config options +- remove redundant "all" in command `check` +- Improve bash completion +- Fix progress bars miss newlines on non-interactive output + +* Fri Dec 08 2023 Packit <hello@packit.dev> - 5.1.9-1 +- Release 5.1.9 +- Update translations from weblate +- Fix builds for RISC-V arch +- Fix architecture autodetection +- Move `am_i_root` function to common library +- Implement `module info` command +- Add user confirmation request if `history store` overwrites a file +- Add `history store` command +- Add API to serialize base::transaction in JSON +- Add API to serialize transaction::transaction in JSON +- Add docs for `provides` +- Implement command `provides` +- Read `copr.vendor.conf` in `/usr/share` first +- Add docs for `check` command +- Implement `check` command +- Expose `utis/fs/file.hpp` and `temp.hpp` on API +- Document dropping of the `skip-broken` for `upgrade` +- Update man pages with missing dependency resolving-related options +- Document `skip-broken` option only for related commands +- Test for adding an empty list to memory file +- Check serialized temporary files memory is non-empty +- Add `microcode_ctl` to needs-restarting's reboot list +- Fix reporting spec matches only source + +* Fri Nov 24 2023 Packit <hello@packit.dev> - 5.1.8-1 +- Release 5.1.8 +- Update translations from weblate +- Don't run infinitely when enabling dependent modules and module is not found +- Always print "[d]" in module list for default streams +- Fix transaction table headers for module operations +- Implement `config-manager addrepo --add-or-replace` +- Implement plugin `config-manager` +- Allow globs in module_spec arguments +- Document needs-restarting plugin +- Add no-op `needs-restarting -r` for DNF 4 compat +- Implement `needs-restarting --services` +- Initial implementation of needs-restarting + +* Thu Nov 09 2023 Packit <hello@packit.dev> - 5.1.7-1 +- Release 5.1.7 +- Actions plugin's actions.conf can set "Enabled" for each action separately +- Actions plugin now supports action options +- Implement `get_reason()` for groups and environments +- Disable the RHSM plugin by default and enable it in the RPM spec +- Add missing docs for `get_advisory_packages_sorted_by_name_arch_evr(bool)` +- Update documentation about maintained coprs +- modules: Test `ModuleProfile::is_default()` method +- modules: Simplify finding whether profile is default in module list +- modules: Fix `ModuleProfile::is_default` method +- modules: Store if profile is default in ModuleProfile object +- Generate docs for undocummented functions so they at least show up +- Add python advisory docs +- Add advisory python API tests +- Enable AdvisoryModule bindings + +* Thu Oct 26 2023 Packit <hello@packit.dev> - 5.1.6-1 +- Release 5.1.6 +- Document aliases for command line arguments +- Don't print missing positional argument error with `--help` +- Improve error handling for missing arguments +- Document `--forcearch` as a global argument +- Make `--forcearch` a global argument +- Avoid reinstalling installonly packages marked for ERASE +- Add `filter_installonly` to PackageQuery +- Implement new argument `--show-new-leaves` +- advisory: document advisory command changes and few clean ups +- Document `--dump-main-config` and `--dump-repo-config` +- Implement new argument `--dump-repo-config` +- Implement new argument `--dump-main-config` +- Show default profiles in `module list` +- Print hint for the `module list` table +- Show information about default streams in `module list` +- Document `module list` options +- Add `enabled` and `disabled` arguments to `module list` +- Add module spec filtering to `module list` +- Add `module list` command +- Document `group upgrade` + +* Thu Oct 05 2023 Packit <hello@packit.dev> - 5.1.5-1 +- Improved ConfigParser +- Improved docs for `group install` and `group remove` +- Fix man pages deployment +- Update API doc related to keepcache +- Implement `rhsm` (Red Hat Subscription Manager) plugin +- Document `--dump-variables` +- Implement `dnf5 --dump-variables` +- Improve contributing guidelines: don't mention "ready-for-review" +- Allow specifying upper-case tags in `repoquery --queryformat` +- api: Make get_base_arch() public +- Improve input for large epochs that don't fit into `time_t` + +* Mon Sep 18 2023 Nicola Sella <nsella@redhat.com> - 5.1.4-1 +- Release 5.1.4 +- Fix Builds on i386 +- Print error if unsupported architecture used +- argument_parser: New error class for invalid value +- Allow obsoletion of protected packages +- Add support for repository configuration in /usr +- Release 5.1.2 +- Print error messages in nested errors +- Implement `dnf5daemon-server` introspection xml for Advisory interface +- Implement `dnf5daemon-client advisory info` command +- Implement `dnf5daemon-client advisory list` command +- Implement `dnf5daemon-server` advisory service +- Improve `dnf5daemon-client --help` +- Enable `--repofrompath` repos by default +- Fix error on creating repo with duplicate id + +* Fri Aug 04 2023 Packit <hello@packit.dev> - 5.1.1-1 +- Postpone replace of DNF to Fedora 41 +- Add a description of `with_binaries` option for dnf5daemon +- Include RPM logs in KeyImportError +- Abort PGP checking immediately if any checks fail +- Display warning message when any PGP checks skipped +- Don't allow main gpgcheck=0 to override repo config +- gups and environments to `history info` ouput +- Store missing id and repoid in db for groups/environments +- Fix out-of-bounds access in Goal::Impl::add_install_to_goal +- Fix repoquery `--list` +- `allow_vendor_change` was reverted back to true +- Doc update to allow `logdir` outside the installroot +- Remove `grouplist` and `groupinfo` aliases +- Add `grp` alias for group command +- `repoquery --exactdeps` needs `--whatdepends` or `--whatrequires` +- Update and unify repoquery manpage +- Document replace of `-v` option by `repoinfo` command +- Add `remove --no-autoremove` option +- Document dropped `if` alias of `info` command +- document `actions` plugin +- Fix printing advisories for the running kernel +- Revert "advisory: add running kernel before pkg_specs filtering" + +* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 18 2023 Packit <hello@packit.dev> - 5.1.0-1 +- Minor version update. API is considered stable +- Remove unneeded unused configuration priority +- Don't show dnf5-command hint for unknown options, only commands +- Add hint to install missing command with dnf5-command(<name>) +- Add dnf5-command(<command-name>) provides to dnf5 +- Add dnf5-command(<command-name>) provides to dnf5-plugins +- Document several methods as deprecated +- Fix core dump on `--refresh` switch usage +- Add `repoquery -l`/`--list` aliases for `--files` for rpm compat +- Add `vendor` attr to package in `dnfdaemon-server` +- Document `dnf5-plugins` package in man pages + +* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 5.0.15-4 +- Perl 5.38 rebuild + +* Sat Jul 01 2023 Python Maint <python-maint@redhat.com> - 5.0.15-3 +- Rebuilt for Python 3.12 + +* Fri Jun 30 2023 Adam Williamson <awilliam@redhat.com> - 5.0.15-2 +- Rebuild for fmt 10 again + +* Thu Jun 29 2023 Packit <hello@packit.dev> - 5.0.15-1 +- Add `module enable` subcommand +- Add `--repofrompath` option +- Add `--forcearch` option to multiple commands +- Add `reinstall --allowerasing` option +- Add `repoquery --sourcerpm` option +- Add `repoquery --srpm` option +- Add `chacheonly` configuration option +- Add `--cacheonly` option +- Add `--refresh` option +- Change default value for `best` configuration to true +- Change default value for `allow_vendor_change` configuration to false +- changelog: Fix behavior of `--since` option +- builddep: Fix handling BuildRequires in spec files +- swig: Return None for unset options in Python +- Verify transaction PGP signatures automatically +- Fix checking whether updateinfo metadata are required +- Fix handling empty epoch when comparing nevra +- Fix building with upcoming fmt-10 library +- Rename namespace, includes and directories from libdnf to libdnf5 +- Provide /var/cache/libdnf5 instead of /var/cache/libdnf (RhBug:2216849) + +* Wed Jun 28 2023 Vitaly Zaitsev <vitaly@easycoding.org> - 5.0.14-2 +- Rebuilt due to fmt 10 update. +- Added upstream patches with fmt 10 build fixes. + +* Wed Jun 14 2023 Packit <hello@packit.dev> - 5.0.14-1 +- Modify libdnf5-devel to generate pkgconf(libdnf5) +- Handle unnamed environments in transaction table +- Return error exit code on RPM transaction failure +- Add `repoquery --file` option +- Add `repoquery --arch` option +- Add `repoquery --installonly` option +- Add `repoquery --extras`, `--upgrades` and `--recent` options +- Add `repoquery --changelogs` formatting option +- Don't complete ls alias +- Add rq command alias for `repoquery` +- Exclude dnf.conf when not installed +- Improve the download methods API + - Switch to parameterless download methods and introduce setters for fail_fast and resume + - Affected classes: libdnf::repo::FileDownloader, libdnf::repo::PackageDownloader + +* Tue May 30 2023 Packit <nsella@redhat.com> - 5.0.13-2 +- Update specfile to exclude dnf.conf for fedora < 39 + +* Mon May 29 2023 Packit <hello@packit.dev> - 5.0.13-1 +- Release 5.0.13 +- Fix resolve behavior for `download` +- Add a message when `--downloadonly` is used +- Add `--downloadonly` option to multiple commands + +* Thu May 25 2023 Nicola Sella <nsella@redhat.com> - 5.0.12-1 +- Release 5.0.12 +- Have DNF update to DNF5 +- Add dnf, yum obsoletes and provides +- Symlinks for `dnf` and `yum` binaries +- Move ownership of /etc/dnf/dnf.conf, /etc/dnf/vars, and /etc/dnf/protected.d from dnf-data to libdnf5 +- Conflict with older versions of dnf-data that own these files/directories +- Print environments in the transaction table +- Add support for environmantal groups in dnf5daemon +- Handle unnamed groups in transaction table +- Update documentation for `distro-sync --skip-unavailable` +- Update documentation for `downgrade --skip-unavailable` +- Update documentation for `upgrade --skip-unavailable` +- Add repoquery `--files` and `files` querytag instead of `--list` +- Add getters to package for: debug, source, repo-name +- Add `repoquery --querytags` option +- Document `repoquery --queryformat` +- Add `repoquery --qf` alias to `repoquery --queryformat` +- Add get_depends() to package and --depends to repoquery +- Implement keepcache functionality (RhBug:2176384) +- API changes: +- libdnf::repo::PackageDownloader default ctor dropped (now accepting the Base object) +- libdnf::base::Transaction not accepting dest_dir anymore (implicitly taken from configuration) +- A note for existing users: +- Regardless of the keepcache option, all downloaded packages have been cached up until now. +- Starting from now, downloaded packages will be kept only until the next successful transaction (keepcache=False by default). +- To remove all existing packages from the cache, use the `dnf5 clean packages` command. +- goal: Split group specs resolution to separate method +- comps: Possibility to create an empty EnvironmentQuery +- `remove` command accepts `remove spec` +- Refactor remove positional arguments +- Remove duplicates from `group list` output +- Document `copr` plugin command +- Document `builddep` plugin command + +* Fri May 19 2023 Petr Pisar <ppisar@redhat.com> - 5.0.11-3 +- Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19) + +* Fri May 19 2023 Nicola Sella <nsella@redhat.com> - 5.0.11-2 +- Fix builds for arch non x86_64 + +* Thu May 18 2023 Packit <hello@packit.dev> - 5.0.11-1 +- Release 5.0.11 +- Add --contains-pkgs option to group info +- Add filter for containing package names +- Fix parameter names in documentation +- Document create parameter of RelDep::get_id method +- Document RepoQuery::filter_local +- Document repoclosure in man pages +- Document repoclosure command +- Implement repoclosure plugin +- package_query: filter_provides accepts also Reldep +- Fix download callbacks and many segfaults in dnf5daemon +- Add allow-downgrade configuration option +- Release 5.0.10 +- dnf5-plugins: implement 'dnf5 copr' +- Add new configuration option exclude_from_weak_autodetect +- Add new config option exclude_from_weak +- Add repoquery --unneeded +- Fix handling of incorrect argument (RhBug:2192854) +- Add detect_release to public API +- Add group --no-packages option +- Add group upgrade command +- Enable group upgrades in transaction table +- Add --destdir option to download command +- Filter latest per argument for download command +- Add builddep --allowerasing +- download command: filter by priority, latest +- Remove --unneeded option from remove command +- Document autoremove differences from dnf4 +- Add autoremove command +- state: Add package_types attribute to GroupState +- comps: Add conversion of PackageType to string(s) +- Add check-update alias for check-upgrade +- Add `check-upgrade --changelogs` + +* Tue May 02 2023 Richard W.M. Jones <rjones@redhat.com> - 5.0.9-3 +- Default tests off (temporarily, hopefully) on riscv64 arch. + +* Wed Apr 26 2023 Nicola Sella <nsella@redhat.com> - 5.0.9-2 +- Release 5.0.9 (Nicola Sella) +- Add `--userinstalled` to `repoquery` man page +- Implement `repoquery -userinstalled` +- Fix: progressbar: Prevent length_error exception (RhBug:2184271) +- Add dnf5-plugins directory in documentation +- Document `repoquery --leaves` +- Implement `repoquery --leaves` +- Implement new filters rpm::filter_leaves and rpm::filter_leaves_groups + +* Thu Apr 13 2023 Nicola Sella <nsella@redhat.com> - 5.0.8-1 +- Update to 5.0.8 +- Improve error message in download command +- Add repoquery --latest-limit option +- Add dg, in, rei, rm aliases +- Add "up" and "update" aliases for "upgrade" command +- Update documentation with info about package spec expressions (RhBug:2160420) +- Add formatting options repoquery --requires, --provides.. +- Remove unused repoquery nevra option +- Add `--queryformat` option to repoquery +- Improved progress bars +- Fix logic of installroot with deduplication +- Correctly load repos from installroot config file +- Improved loading and downloading of key files +- Improved modules: Change State to set and get the whole ModuleState +- New API method rpm::Package::is_available_locally +- Move description of DNF5 changes to doc +- Improved dnf5daemon logic and removed unused code +- Improved progress bar +- Improved handling of obsolete package installation +- Remove showdupesfromrepos config option +- man: Add info about download command destination +- Print resolve logs to stderr +- Fix double loading of system repo in dnf5daemon +- Set a minimal sqlite version +- Change to --use-host-config, warning suggesting --use-host-config +- Add capability to find binaries to resolve_spec +- Add pre-commit file +- Improved by fixing memory leaks +- Improved tests by enabling with multithreading +- Improve documentation for list command +- Add compatibility alias ls->list +- Implement info command +- Implement list command +- Fix --exactdeps argument description + +* Wed Mar 8 2023 Nicola Sella <nsella@redhat.com> - 5.0.7-1 +- Document set/get vars in python api +- Document --strict deprecation +- New configuration option "disable_multithreading" +- Improved dnf5daemon to handle support groups and modules in return value +- Ignore inaccessible config unless path specified as --config=... +- Includes reordering and tweaks in advisories +- Add support for package changelogs in swig and tests +- Add many unit tests for dnf5 and python api +- Add new --skip-unavailable command line option +- Add search command +- Add new error for incorrect API usages +- Add a new method whether base was correctly initialized +- Improved python exceptions on undefined var +- transaction: Change API to run transaction without args +- Add explicit package version for libdnf5-cli +- Improved performance of packagequery + +* Tue Feb 14 2023 Nicola Sella <nsella@redhat.com> - 5.0.6-1 +- Add obsoletes of microdnf +- Many improvements related to internal logic and bugfixes +- Improvements in specfile +- Improved API, drop std::optional +- Use Autoapi instead of Autodoc to generate Python docs +- Improved documentation for modules + +* Thu Jan 26 2023 Nicola Sella <nsella@redhat.com> - 5.0.5-1 +- Fix build fail in rawhide +- Fixes in the concerning filesystem +- Fixes in the concerning modules +- Fixes in the concerning api + +* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jan 18 2023 Nicola Sella <nsella@redhat.com> - 5.0.4-2 +- Backport downstream patch to disable unit tests for python tutorials +- Fix build in rawhide + +* Thu Jan 12 2023 Nicola Sella <nsella@redhat.com> - 5.0.4-1 +- Many fixes in perl bindings +- Test functions enhanced +- Extend unit tests for OptionString and OptionStringList + +* Wed Jan 04 2023 Nicola Sella <nsella@redhat.com> - 5.0.3-1 +- Add Python docs for: Base, Goal, RepoQuery, Package and PackageQuery +- Add docs for Python bindings: they are auto generated now +- Add --what* and --exactdeps options to repoquery +- Add "user enter password" to dnf5daemon functionalities +- Fix: remove repeating headers in transaction table +- Fix: Set status of download progress bar after successful download +- Fix: RepoDownloader::get_cache_handle: Don't set callbacks in LibrepoHandle +- Refactor internal utils +- Improved GlobalLogger +- Improved C++ API docs + +* Thu Dec 08 2022 Nicola Sella <nsella@redhat.com> - 5.0.2-1 +- Implement group remove command +- Improved options in config +- Add support for any number of user IDs in a PGP key +- Use new librepo PGP API +- remove gpgme dependency +- Improved exceptions and dnf5 errors +- Add dnf5-devel package +- Update README.md with up to date information +- Repoquery: Add --duplicates option +- Improved documentation for Repoquery, Upgrande and About section +- Add tutorials for python3 bindings +- dnf5-changes-doc: Add more structure using different headings +- Add ModuleQuery +- Improvements in comps logic + +* Fri Nov 25 2022 Nicola Sella <nsella@rehat.com> - 5.0.1-1 +- Update to 5.0.1 +- Fix loading known keys for RepoGpgme +- Fix dnf5 progress_bar +- Improve modules: conflicting packages, weak resolve, active modules resolving +- plugins.hpp moved away from public headers and improvements logic +- Fix failing builds for i686 arch +- Add man pages to dnf5 +- Fix non x86_64 builds +- Remove unimplemented commands + +* Wed Nov 2 2022 Nicola Sella <nsella@redhat.com> - 5.0.0-2~pre +- Fix failing builds for i686 arch + +* Mon Oct 31 2022 Nicola Sella <nsella@redhat.com> - 5.0.0-1~pre +- Add man pages to dnf5 +- Fix non x86_64 builds +- Remove unimplemented commands + +* Fri Sep 16 2022 Nicola Sella - <nsella@redhat.com> - 5.0.0-0~pre +- Dnf pre release build for Fedora |