Releases: rpm-software-management/dnf5
Releases Β· rpm-software-management/dnf5
5.4.0.0
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_stringdelimiter 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-reposby @evan-goode in #2504 - Improve sharing of temporary_files.toml among multiple processes by @evan-goode in #2488
- Add
is_dep_satisfiedtoPackageQueryand 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
--jsonforcheck-upgradeby @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.1with 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
listby @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
- @goeranu made their first contribution in #2505
- @aduskett made their first contribution in #2532
- @abitrolly made their first contribution in #2567
- @grumpey made their first contribution in #2575
- @shastah made their first contribution in #2599
- @krydos made their first contribution in #2590
Full Changelog: 5.3.0.0...5.4.0.0
5.2.18.0
What's Changed
- [Backport release-5.2.x.x] repo: When repo age matches
metadata_expireexactly 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
- 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
--jsonforrepocommand - 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
--storeoption - 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
enableoptions - Add
localplugin - 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.dconfig 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::Pluginconstructor 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
enabledoption - 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_expireexactly expire it
5.2.17.0
- Update translations from weblate
- Add
repomanageplugin - 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
libdnf5list plugins on--versionparameter - 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
replayto 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
shellcmd superseded bydocmd - 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
--storeoption: 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
- 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
SetConstIteratorworks 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
- 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_DIRvariable - 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
- Update translations from weblate
- Unify system state module saving
- Make system state files writing more robust
- Add
Basetosystem::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-Busname 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_downloadsdoc, it now affects also repo downloads - Remove no longer needed
RepoDownloader::perform - Use new RepoDownloader API to download repo descriptions
- Add new
RepoDownloaderAPI to donwload only repomd/metalink - Rename
end_cbtoend_cb_full_download, there will be more end cbs - Move
lr_targets tocallback_dataand move setup toadd - Name
load_repofunction type and addreusingoption - Extract
librepohandle dlist configuration - Extract error handling of
RepoDownloader::download()report - Turn
handle_repo_exceptiontostaticRepoSack::Implmethod - 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_metadataAPI withAddandDownload - Update users of
RepoDownloaderto match new API - Rework is_repomd_in_sync and is_metalink_in_sync to use new perform
- Make
RepoDownloader::performstatic and rework callbacks - Convert several of
RepoDownloadermethods that to static ones - Extract callback data from
RepoDownloader - Remove unused
RepoDownloaderdefines - Split
DownloadDataout ofRepoDownloader - 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_ZCHUNKoption - 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
5.2.13.0
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
--colorflag by @alimirjamali in #1750 - Add
-iand-fshoft 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_passwordmessage 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 listwith 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 cleanby @alimirjamali in #2175 - Disallow
dnf download non-sensewithout--skip-unavailableby @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
- @nikita-dubrovskii made their first contribution in #2188
Full Changelog: 5.2.12.0...5.2.13.0
5.2.12.0
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
baseinCoprRepoby @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
- @katexochen made their first contribution in #2125
- @nikromen made their first contribution in #2081
Full Changelog: 5.2.11.0...5.2.12.0