Skip to content

Releases: rpm-software-management/dnf5

5.4.0.0

17 Feb 00:10

Choose a tag to compare

What's Changed

  • Fix build on various architectures by @kontura in #2499
  • When upgrading group, upgrade all packages that are part of it by @pkratoch in #2482
  • Fix: OptionStringContainer::to_string delimiter and implement escaping by @jrohel in #2502
  • rotating logger: Preserve file mode and ACL by @ppisar in #2494
  • dnf5: Argument "--from-vendor=" for commands by @jrohel in #2475
  • Trivial spelling fixes in dnf5.conf.5 by @goeranu in #2505
  • Implement escape character support in OptionStringContainer::from_string by @jrohel in #2485
  • manifest: Add --use-host-repos by @evan-goode in #2504
  • Improve sharing of temporary_files.toml among multiple processes by @evan-goode in #2488
  • Add is_dep_satisfied to PackageQuery and use it for repoclosure by @kontura in #2375
  • Use newer version of packit/pre-commit-hooks by @kontura in #2516
  • CONTRIBUTING: add AI contributions policy by @evan-goode in #2514
  • fix: do not prefilter when querying for SRPMs by @mfocko in #2511
  • spec: Postrelease version bump by @ppisar in #2524
  • fix(cli): adjust the description of list and info by @mfocko in #2526
  • Bindings: add iterator to libdnf5::OptionBinds by @kontura in #2527
  • Musl support by @aduskett in #2532
  • Move libdnf5/conf/config.h creation after feature detection by @pmatilai in #2542
  • spec: remove libpkgmanifest-devel dep from dnf5-plugin-manifest by @yselkowitz in #2546
  • spec: Disable building libdnf5-plugin-local on RHEL >= 10 by @ppisar in #2548
  • comps: Do not install already installed groups and environments by @pkratoch in #2530
  • Lock from the time system repository is loaded until exit by @evan-goode in #2519
  • Support for Multiple Plugin Configuration Directories by @jrohel in #2537
  • transaction: sort packages when SOURCE_DATE_EPOCH set by @jlebon in #2522
  • Change package state when the reason changes to GROUP by @pkratoch in #2549
  • --json for check-upgrade by @mfocko in #2508
  • doc: link to GitHub by @abitrolly in #2567
  • Fix builds on rawhide by @kontura in #2564
  • Fix typo for color_update_local by @grumpey in #2575
  • fix(pkg_list): add description of used colors by @mfocko in #2531
  • Mark all protected packages as user installed for all transactions by @kontura in #2563
  • Add --debuginfo option to download command by @fhbash in #2529
  • Sort repos_for_processing which are otherwise sorted by their pointers by @kontura in #2583
  • transaction: honor SOURCE_DATE_EPOCH for history timestamps by @jlebon in #2584
  • Add translated_name and translated_description for comps groups in dnf5daemon by @fhbash in #2585
  • Fix changing package reasons to and from group by @pkratoch in #2588
  • autoremove: switch unneeded protected warning to stderr by @kontura in #2589
  • Clarify advisory filtering documentation in dnf5daemon by @Userfrom1995 in #2592
  • Add --debugsource option to download command by @fhbash in #2547
  • Documenting dnf updateinfo subcommands by @fhbash in #2596
  • VendorChangeManager: Configuration version 1.1 with package-based filtering and enhanced flexibility by @jrohel in #2579
  • do-release workflow: use correct base branch by @evan-goode in #2597
  • Require rpm>=4.19.0 for sysusers, {pre,post}untrans RPM tags by @shastah in #2599
  • transaction: sort history db packages when SOURCE_DATE_EPOCH is set by @jlebon in #2593
  • Use StdCStreamLogger when DNF5_LOGGER_FILENAME isn't readable by @krydos in #2590
  • feat(cli): JSON output for list by @mfocko in #2603
  • Make userconfirm prompt strings translatable by @Userfrom1995 in #2518
  • NeedsRestartingTest.cpp: use bool values directly by @kontura in #2607
  • Release 5.4.0.0 by @github-actions[bot] in #2612

New Contributors

Full Changelog: 5.3.0.0...5.4.0.0

5.2.18.0

04 Feb 23:14

Choose a tag to compare

What's Changed

  • [Backport release-5.2.x.x] repo: When repo age matches metadata_expire exactly expire it by @rsm-ci[bot] in #2572
  • Rewrite .packit.yaml for release-5.2.x.x branch by @evan-goode in #2577
  • Release 5.2.18.0 by @github-actions[bot] in #2571

Full Changelog: 5.2.17.0...5.2.18.0

5.3.0.0

04 Nov 14:01

Choose a tag to compare

  • Update translations from weblate
  • Document 5.3.0.0 API changes
  • copr: support '$distname' replacement in baseurls
  • advisory: Add JSON documentation, standardize timestamps, and suppress error messages in JSON format
  • fix: unify epoch display across all DNF5 commands
  • doc: mention libpkgmanifest in the CONTRIBUTING.md
  • Add JSON output support to history list and info commands
  • manifest docs: mark as experimental
  • comps: Store comps xml files in groups and environments subdirectories
  • comps: Add environment install, remove and upgrade commands
  • comps: Add CompsTypePreferred to set preference for comps operations
  • comps: Fix descriptions of group and environment specs
  • needs-restarting: use std::string to own pid
  • needs-restarting: Drop unnecessary logging; display PID and cmdline for -p
  • needs-restarting: Correctly use sdbus_compat
  • needs-restarting: use org.freedesktop.systemd1.Service interface
  • test: Add framework for needs-restarting plugin tests
  • needs-restarting: Update the man page to reflect current options
  • needs-restarting: Implement the --processes and --exclude-services options
  • doc: document output of --json for repo command
  • docs: Use only multiline comments in RST files
  • docs: Document vendor change policy TOML config
  • Add directories for vendor change policies configuration to the package
  • Load vendor change policies from configuration files
  • solv::VendorChangeManager: Remove limit on vendor change policies
  • Add unit test for "solv::SolvMap::is_intersection_empty"
  • Add "solv::SolvMap::is_intersection_empty" for optimized bitwise checks
  • New VendorChangeManager: Supports vendor change policies.
  • Pool: Set appdata pointer in libsolv pool to its managing solv::Pool
  • packit: move getting dnf5 version to package config
  • Fix typo in DNF4 and DNF5 documentation
  • Drop mentions of dnf5-testing-nightly and dnf5-testing
  • offline: Store downloaded packages in /var/lib/dnf
  • libdnf5::base::transaction::serialize: don't prefix system repo
  • doc: describe repo mangling for --store option
  • Prefix repository names for --storeed transactions
  • Simplify a help text for package arguments
  • manifest: remove BOOTSTRAP_REPO_ID logic
  • manifest: descriptive error for duplicate repository IDs
  • manifest: split new and resolve subcommands
  • manifest: error when srpm is missing
  • manifest: s/source/srpm, s/archs/arch, cleanup
  • spec: add %bcond_without plugin_manifest
  • manifest: port documentation from dnf-plugins-core
  • manifest: add --source argument
  • manifest: implement existing commands from DNF4 plugin
  • manifest: create plugin skeleton
  • Fix too long line of new max_downloads_per_mirror
  • Expose librepo max_downloads_per_mirror configuration
  • vars: add doc comments for detect_release, detect_releasevers
  • Add --releasever-{major,minor} options
  • Override releasever_{major,minor} with provides
  • vars: make releasever_{major,minor} writable
  • tutorial: libdnf5 plugins: fix enable options
  • Add local plugin
  • libdnf5 actions plugin: Document "json" communication mode, polishing
  • python_plugins_loader: require and read config files for python plugins
  • python_plugins_loader: add python_plugins_loader.d config directory
  • libdnf5::Base: add back similar API for loading plugins
  • Inline Plugins::load_plugin, its too small to be worth a separate method
  • libdnf5::Base: Separate plugin config loading into a new Base API
  • Extend unused libdnf5::plugin::Plugin constructor with cfg parser
  • python_plugins_loader: Fix invalid path read bug
  • python_plugins_loader: update example plugin.py
  • python_plugins_loader: pass wrapped libdnf5::plugin::IPluginData
  • python_plugins_loader: store libdnf5::plugin::IPluginData
  • python_plugins_loader: the library module is now called libdnf5
  • python_plugins_loader: fix the name to match the rest of code and rpm pkg
  • python_plugins_loader: add default config to enable the plugin
  • GHA: Fix weblate-sync-pot workflow
  • RepoSack: only attempt fix_group_missing_xml if system_repo loaded
  • ConfigMain: deprecate enabled option
  • daemon: Protect libdnf5 access in D-Bus services with mutex
  • libdnf5 actions plugin: Reply with actual values after set configuration
  • Add .mailmap to set preferred user names and email addresses
  • libdnf5 actions plugin: Add snapshot description in snapper impl example
  • doc: Add Tutorial: API changes in callbacks between DNF and DNF5
  • test: Add tests for code examples for API changes in callbacks tutorial
  • test ConfigMain::load_from_config
  • ConfigMain: add load_from_config
  • pre-commit: Increase autopep8 line length
  • Bump libdnf5-cli rpm and so version
  • Add unit tests for long progress bar messages
  • cli: Clear the screen instead of padding messages
  • progressbar: Do not trim messages to terminal width
  • cli: Add pImpl to libdnf5::cli::progressbar::DownloadProgressBar
  • cli: Add pImpl to libdnf5::cli::progressbar::ProgressBar
  • cli: Add pImpl to libdnf5::cli::progressbar::MultiProgressBar
  • feat: add field-specific search options (--name-only, --summary-only)
  • Add license header requirement to CONTRIBUTING.md
  • Add "Copyright Contributors to the DNF5 project."
  • Add SPDX-License-Identifier
  • repo: When repo age matches metadata_expire exactly expire it

5.2.17.0

02 Sep 07:14

Choose a tag to compare

  • Update translations from weblate
  • Add repomanage plugin
  • dnf5daemon-server: Allow RPM key import without password prompt for wheel users
  • doc: Add Tutorial: API changes between DNF and DNF5
  • test: Add tests for code examples for API changes tutorial
  • doc: Format API changes as paragraphs instead of sections
  • test: Keep the same working directory when running python tutorial tests
  • Introduces libdnf5 list plugins on --version parameter
  • cli: Fix use-after-free in NamedArg::parse_short
  • cli: Fix use-after-free issue in CommandAlias
  • libdnf5: Don't double format a transaction error
  • Unify docs for shared transactions options: --offline and --store
  • Add replay to the hardcoded set of commands that require privileges
  • All commands that compose a transaction should support offline and store
  • doc: Add a chapter about migrating to dnf5
  • doc: changes_from_dnf4: Info about shell cmd superseded by do cmd
  • DNF5: Documentation for "do" command
  • dnf5: Move create(_installed)_from_repo_option to public API
  • dnf5: builddep: Argument "--from-repo"
  • dnf5daemon-server: Correct repo::confirm_key_with_options D-Bus signature
  • --store option: override keepcache option not to remove packages
  • doc: fix references to dnf5.conf(5)
  • Replace locale-dependent std::isalnum checks
  • repo: Correctly URL-encode packages locations
  • test: Add unit tests for common/utils/url
  • utils: New url_path_encode() function
  • utils: Add url_decode() function
  • Move url_encode() to libdnf5::utils::url
  • dnfdaemon: Obey downloader D-Bus signal signature

5.2.16.0

07 Aug 19:18

Choose a tag to compare

  • Update translations from weblate
  • Bump minor version to 5.2.16
  • dnfdaemon: Enable download-only transaction execution
  • dnfdaemon: Make it possible to set 'interactive' option for Rpm::system_upgrade()
  • dnfdaemon: Make it possible to set 'interactive' option for Offline::cancel(), Offline::clean(), Offline::set_finish_action()
  • dnfdaemon: Make it possible to set 'interactive' option for Repo::confirm_key(), Repo::enable(), Repo::disable()
  • dnfdaemon: Make it possible to set 'interactive' option for Goal::do_transaction()
  • dnfdaemon: Make it possible to set 'interactive' option for Base::clean()
  • test: Add test for temp files toml with missing key
  • repo: Do not fail on empty temporary files toml
  • actions: Replace L10N_SSH_KEY secret with RSM CI GitHub token
  • dnf5: Support --installed-from-repo= for "do"
  • Disable fastest_mirror callback for package downloading
  • Copy return value from SetConstIterator::operator*
  • tests: verify SetConstIterator works in Python bindings
  • test_nevra.py: change formatting to satisfy autopep8
  • Fix various typos found by Lintian
  • tests: fix compat with dash and other shellcheck warnings
  • dnf5: Support --installed-from-repo= for swap
  • dnf5: Support --installed-from-repo= for upgrade/downgrade/distro-sync
  • Goal: add_rpm_(upgrade/distro_sync) Improve support from_repo_ids
  • Goal: Honor set_from_repo_ids in add_up_down_distrosync_to_goal
  • dnf5: Support --installed-from-repo= for reinstall/remove
  • Goal: Honor set_from_repo_ids in add_(remove,reinstall)_to_goal
  • dnf5: Support --installed-from-repo= for repoquery/list/info
  • rpm::PackageQuery: New filter "filter_from_repo_id"
  • dnf5: "--from-repo=" option enables and validates source repositories
  • Goal::Impl::add_install_to_goal: Fix to_repo_ids handling
  • dnf5: upgrade/distro-sync: Apply --from-repo only if pkgs are specified
  • Goal::Impl::add_specs_to_goal: Skip processing of empty query in ALL
  • Goal::Impl::add_specs_to_goal: Apply to_repo_ids settings in ALL
  • Add unit tests for nevra parsing
  • swig: Add bindings for templated functions that convert nevra to string

5.2.15.0

11 Jul 11:41

Choose a tag to compare

  • Update translations from weblate
  • Adapt missing gpg key check for parallel downloading
  • repoclosure: skip rich dependencies
  • search: Do not separate a package from a summary with a colon
  • Fix: add_up_down_distrosync_to_goal: to_repo_ids filtering
  • dnf5: distro-sync: Argument "--from-repo"
  • swig: Add %thread directive for repo_sack.hpp for Python
  • dnfdaemon: Fix a crash under dnf5daemon::DownloadCB::create_signal_download()
  • Add dnf5daemon-server requirement for polkit subpkg
  • doc: Correct handling the translations
  • dnfdaemon-client: Call server methods asynchronously
  • offline: Require D-Bus socket service from dnf5-offline-transaction.service
  • offline: Perform gracefull powerof/reboot instead of immediate one
  • readthedocs: add swig include to fix doc builds
  • readthedocs: extract SOURCE_DIR variable
  • readthedocs: fix path joining
  • dnfdaemon: Make permission check more consistent
  • dnfdaemon: Removed incorrect output parameter names
  • dnfdaemon: support all_advisories option for recent_changes()
  • advisory: Add support for filtering advisories by Nevra
  • dnfdaemon: support installonly pkgs in recent_changes()
  • dnfdaemon: Add new History interface
  • dnf5: repoclosure: Support globs in "--check=" option
  • doc: Handling translations
  • Docs: enhance install command behavior description
  • Unify commands help with package specs
  • Introduce new format denoting package spec formats
  • test: ease path assertions in tests

5.2.14.0

20 Jun 08:22

Choose a tag to compare

  • Update translations from weblate
  • Unify system state module saving
  • Make system state files writing more robust
  • Add Base to system::State
  • automatic: Expand emit_via in command_email emitter to individual arguments
  • ci: Remove "Package Build" GitHub Action
  • [dnf5] cmdline_aliases: Fix TOML syntax err msg in build TOML11_COMPAT
  • doc: aliases: switch code-block language from 'none' to 'TOML'
  • cmdline_aliases: Support values consumed by command aliases
  • dnf5: Add support for localization of aliases
  • dnf5 cmdline_aliases: Print warnings to stderr
  • dnf5 cmdline_aliases: Localize printed error messages
  • dnf5 cmdline_aliases: Unify use of BasicValue type
  • dnf5 cmdline_aliases: Refactor to use shared location functions
  • Mark dnf5daemon-server-polkit as noarch
  • doc: Correct a typo in dnf-nightly repository URL
  • automatic: email emitter: Do not use fractional seconds in e-mail Date headers
  • Unify D-Bus name formatting
  • Expose dnf_daemon dbus Python example in docs
  • dnf5: download: Argument "--from-repo"
  • dnf5: install/upgrade/reinstall/downgrade/swap: Argument "--from-repo"
  • reposync: Spell "GPG" as "OpenPGP" in the usage text
  • Update max_parallel_downloads doc, it now affects also repo downloads
  • Remove no longer needed RepoDownloader::perform
  • Use new RepoDownloader API to download repo descriptions
  • Add new RepoDownloader API to donwload only repomd/metalink
  • Rename end_cb to end_cb_full_download, there will be more end cbs
  • Move lr_targets to callback_data and move setup to add
  • Name load_repo function type and add reusing option
  • Extract librepo handle dlist configuration
  • Extract error handling of RepoDownloader::download() report
  • Turn handle_repo_exception to static RepoSack::Impl method
  • dnf5: Reset cursor and formatting after SIGINT
  • dnf5daemon: Fix a missing reset method if built with sdbus-s++ version 2
  • pre-commit: Exclude .tito/tito.props from check-xml
  • Add missing interfaces and re-order interfaces in a more logical order
  • changes_from_dnf4: makecache doesn't always refresh
  • Honor per-repo pgp_gpgcheck=0 even in rpm's enforcing signature mode
  • doc: --use-host-config instead of --releasever=/
  • dnf5: Command "do": New argument "--from-repo"
  • dnf5: Command "do"
  • dnfdaemon: Add Polkit rule to allow wheel users to run transactions
  • dnfdaemon: Split-off polkit policy for trusted transactions
  • doc: Document '\n' sequence in repoquery --queryformat string
  • Include dnf-nightly in testing farm testing jobs
  • Require new librepo which has fix API for parallel downloads
  • Use new API for parallel downloading
  • Replace download_metadata API with Add and Download
  • Update users of RepoDownloader to match new API
  • Rework is_repomd_in_sync and is_metalink_in_sync to use new perform
  • Make RepoDownloader::perform static and rework callbacks
  • Convert several of RepoDownloader methods that to static ones
  • Extract callback data from RepoDownloader
  • Remove unused RepoDownloader defines
  • Split DownloadData out of RepoDownloader
  • Include dnf-nightly in packit copr builds
  • Fix clang build by disabling ruby deprecation warning
  • Fix package build workflow: use code from the tested PR
  • doc: Advisory filters can cause transaction commands to fail
  • dnf5: Strict handling of --bzs and --cves options
  • Add NOT_FOUND_IN_ADVISORIES to resolve log for UPGRADE_ALL
  • goal: Report specs filtered out by advisories
  • dnf5: Strict handling of --advisories=... option
  • dnf5: --no-gpgchecks overrides localpkg_gpgcheck
  • I18N: Do not glue sentences in offline command messages
  • Remove unused WITH_ZCHUNK option
  • dnfdaemon: Adjust wording of advisory options descriptions
  • dnf5: Adjust wording of advisory options descriptions
  • doc: Clarify advisories filters documentation
  • expired-pgp-keys: Do not use a deprecated way of removing keys with RPM v6
  • doc: "dnf4 config-manager" dropped --dump and --dump-variables options
  • Change scriptlet names to match spec designators
  • README: Mention #dnf IRC channel in first section
  • expired-pgp-keys: Use a temporary GnuPG home directory
  • download: Do not print "Downloading Packages:" header in quiet mode

5.2.13.1

24 Apr 18:00

Choose a tag to compare

  • RepoCacheRemoveStatistics::get_bytes_removed return uintmax_t
  • ci: Use RSM_CI_APP_PRIVATE_KEY in do-release.yaml

5.2.13.0

21 Apr 19:31

Choose a tag to compare

What's Changed

  • spec: Set mode to ghost files by @ppisar in #2140
  • spec: Package CHANGELOG and other project documentation files by @ppisar in #2098
  • Add group and environment excludes by @pkratoch in #2107
  • expired-pgp-keys: Respect install root by @m-blaha in #2147
  • Reimplement --color flag by @alimirjamali in #1750
  • Add -i and -f shoft options for repoquery by @alimirjamali in #2150
  • doc: Environment variables for a terminal and temporary files by @ppisar in #2148
  • doc: DNF_SYSTEM_UPGRADE_NO_REBOOT environment variable by @ppisar in #2151
  • Various fixes for the dnf5.spec file by @m-blaha in #2152
  • expired-pgp-keys: Drop braced initialization to fix clang build by @jan-kolarik in #2145
  • RepoDownloader: remove unused code by @kontura in #2144
  • Ask for superuser privileges on history <undo|redo|rollback> by @alimirjamali in #2149
  • Improve missing proxy_password message by @alimirjamali in #2154
  • solv: Drop the size check from swap_considered_map by @m-blaha in #2163
  • Add missing rpm scriptlet types: sysusers and pre/postuntrans by @pmatilai in #2169
  • Fix invalid hint for unknown short argument by @alimirjamali in #2171
  • dnfdaemon: Allow Base::clean("expire-cache") without admin privileges by @mcrha in #2055
  • spec: Correct libdnf5-plugin-appstream description by @ppisar in #2173
  • comps: Respect the display_order with listing groups and environments by @pkratoch in #2164
  • Fix history list with unknown terminal size by @alimirjamali in #2162
  • spec: Remove a duplicate record for %{_prefix}/lib/sysimage/libdnf5 by @ppisar in #2172
  • Show cleaned space bytes for dnf clean by @alimirjamali in #2175
  • Disallow dnf download non-sense without --skip-unavailable by @alimirjamali in #2174
  • Swig exceptions handling by @jrohel in #2118
  • nevra: Fix description of evrcmp and rpmvercmp functions by @nikita-dubrovskii in #2188
  • comps: Merging packagelists, grouplists and optionlists by @pkratoch in #2156
  • Add group ordering by orider_int to dnf5daemon by @kontura in #2179
  • repo: Log correct path when loading system repo by @m-blaha in #2196
  • Fix conditional which assumed RHEL 10 could support SOLVER_FLAG_FOCUS_NEW by @ppisar in #2194
  • dnfdaemon: Configure separate cache directory by @m-blaha in #2185
  • Release 5.2.13.0 by @github-actions in #2208

New Contributors

Full Changelog: 5.2.12.0...5.2.13.0

5.2.12.0

18 Mar 19:10

Choose a tag to compare

What's Changed

  • Remove a warning from a code about an internal use of "dnf5 offline _execute" by @ppisar in #2123
  • spec: Set cmake minimal version to 3.21 by @ppisar in #2119
  • offline: only define systemd constants when building with systemd by @katexochen in #2125
  • Fix dnf5 copr_plugin: always set base in CoprRepo by @jrohel in #2131
  • Fix a memory leak when looking up for an OpenPGP key in RPM database by @ppisar in #2132
  • Rename dnf5-makecache timer to dnf-makecache when dnf5_obsoletes_dnf by @gordonmessmer in #2092
  • Fix: let copr plugin to respect the installroot option by @nikromen in #2081
  • libdnf5 and libdnf5-cli: Move exception declarations to own header files, unification by @jrohel in #2124
  • spec: Move /usr/lib/sysimage/libdnf5 from dnf5 to libdnf5 by @ppisar in #2137
  • Implement libdnf5::throw_with_nested: throws our nested exception type by @jrohel in #2128
  • CI: Support releasing from stable branches (release-5.2.x.x) by @evan-goode in #2139
  • repo: fix bad GPG error handling by @evan-goode in #2138
  • expired-pgp-keys: Fix checking expiration of keys in RPM database by @ppisar in #2135
  • Release 5.2.12.0 by @github-actions in #2141

New Contributors

Full Changelog: 5.2.11.0...5.2.12.0